web-dev-qa-db-ja.com

Exchange2010のシングルサインオンオプション

私たちは、従業員の電子メールをUnix /オープンソース(宅配便IMAP、exim、squirrelmailなど)からExchange 2010に移行するプロジェクトに取り組んでおり、Outlook WebAccessのシングルサインオンのオプションを見つけようとしています。これまでのところ、私が見つけたすべてのオプションは非常に醜く「サポートできない」ものであり、Forefrontでは機能しない可能性があります。

トークンベースのシングルサインオンの場合は JA-SIG CAS 、SAMLの場合は Shibboleth がすでにあります。ユーザーは、ほとんどのものにサインインするために使用する単純な社内ポータル(実際にはPerl CGI)に誘導されます。別のADドメインに対してすでに同期されており、Exchangeが使用するADドメインと同期されるHAOpenLDAPクラスターがあります。 CASはLDAPに対して認証します。ポータルはCASに対して認証されます。 ShibbolethはCASで認証しますが、LDAPから追加のデータを取得します。私たちは、WebサービスをCASまたはShibbolethに対して認証する方向に進んでいます。 (学生はすでにSAML/Shibboleth認証済みのGoogleApps for Educationを利用しています)

Squirrelmailを使用すると、そのポータルページからリンクされた恐ろしいハックがあり、CASに対して認証され、元のプレーンテキストパスワードを取得し(はい、私は知っています、悪)、javaScriptで必要なすべてのsquirrelmailログイン詳細が事前に入力されたHTTPフォームを提供しますonLoadのものを使用して、フォームをすぐに送信します。

Exchange/OWAで何が可能かを正確に見つけようとするのは難しいようです。 「CAS」は、シングルサインオンサーバーとExchangeコンポーネントの両方の頭字語です。私が知ることができたのは、SAMLを実行するExchangeのアドオンがありますが、ユーザーの認証ではなく、空き時間情報などのフェデレーション専用です。さらに、追加の費用がかかるため、私たちがやりたいことを実行するように誘導できるかどうかを確認するために実験する方法はありません。

Exchangeクラスターの計画には、CASサーバーのDMZフロントエンド)にForefront Threat Management Gateway(新しいISA)が含まれます。

それで、本当の質問:誰かがExchangeをCAS(トークンベースのシングルサインオン)またはSAMLで、またはそれらの1つ(Apacheの認証を受け入れるものなど)で認証できる可能性が高いもので認証することに成功しましたか?最前線で?

それができない場合、OWAフォームベース認証(FBA)を説得して、ユーザーに何らかの方法で「事前ログイン」させるためのヒントがありますか? (それらとしてログインし、Cookieをユーザーに返すか、squirrelmailの場合のように自動送信する事前入力済みのフォームをユーザーに提供します)。これは、いくつかの理由で最も人気のないオプションですが、(かろうじて)私たちの要件を満たします。 Forefrontを実装している人から聞いたところによると、OWAを基本認証に設定し、認証のためにForefrontでフォームを作成する必要があるため、これが不可能な可能性もあります。

私は CasOwa を見つけましたが、Exchange 2007についてのみ言及していて、ちょっと怖いように見えます。私が知る限り、CASサーバーと少し統合することを検討していたOWAFBAハックとほぼ同じです。また、多くの人がそれで多くの成功を収めたようには見えませんでした。また、Forefrontでは機能しない場合があります。

" CASifying Outlook Web Access 2 "もありますが、それも私を怖がらせ、複雑なプロキシ構成を設定する必要があり、壊れやすいようです。また、Forefrontで機能するようには見えません。

フリー/ビジーアクセス認証だけでなく、ユーザー認証を行うように構成できるExchange SAML(OWA Federated whatchamacallit)で何かが足りませんか?

7
freiheit

CASに「ClearPass」を追加することとExchangeの設定を変更することの組み合わせは維持するのが非常に難しいと判断したため、最終的なソリューションは、私たちが気に入らなかったsquirrelmailソリューションのようなものです。

つまり、社内ポータルでユーザーが押すボタンから、このようなHTMLをユーザーに送信します($somethingは通常、すでに適切にエスケープされた変数を意味します)。これは、最前線が単純にストレートパススルーを実行しているバージョンです。

<html>
<body onLoad="javascript:document.forms[0].submit()">
<noscript>
 <h1>Redirecting you to $title</h1>
 <p>If you are not taken to $title within 15 seconds,<br />
    please click the button below:</p>
 </noscript>
 <form method="POST"
       action="https://$exchangehost/owa/auth/owaauth.dll" 
       name="logonForm" 
       enctype="application/x-www-form-urlencoded" autocomplete="off">
   <input type="hidden" name="destination" value="https://$exchangehost/OWA/" />
   <input type="hidden" name="flags" value="0" />
   <input type="hidden" name="forcedownlevel" value="0" />
   <input type="hidden" name="trusted" value="0" />
   <input type="hidden" name="username" value="$uid" />
   <input type="hidden" name="password" value="$password" />
   <input type="hidden" name="isUtf8" value="1" />
   <noscript>
     <input type="submit" value="$title" />
   </noscript>
 </form>
 </body>
 </html>

これは主に、ログインフォームをコピーしてすべてを非表示フィールドにすることによるものですが、アクションのURLを/owa/auth.owaから/owa/auth/owaauth.dllに変更する必要があります。

また、最前線でOWAへの認証を実行してみました。そのためのフォームは次のとおりです(<body onLoad=...>と残りは基本的に同じです)。

<form method="post" action="https://$exchangehost/CookieAuth.dll?Logon">
  <input type="hidden" name="curl" value="Z2FowaZ2F" />
  <input type="hidden" name="flags" value="0" />
  <input type="forcedownlevel" value="0" />
  <input type="formdir" value="1" />
  <input type="rdoPblc" value="1" />
  <input type="username" value="$domain\$uid" />
  <input type="password" value="$password" />
</form>
4
freiheit

Bill Thompsonのソリューション github上 は優れており、ClearPass CAS拡張機能に関する(私の)Jasig会議のプレゼンテーションで目立つように機能します。 ClearPass-資格情報の再生を許可するCAS拡張機能 というタイトルのVimeoでの録音。

1
Andrew Petro

Exchange2007にはCASシングルサインオンを使用しています。

MS Exchange IIS CASサーバーで、新しい仮想ディレクトリを追加するにはindex.aspxがあります。

リンクの使用 https://wiki.jasig.org/display/CAS/CASifying+Outlook+Web+Access+2

bean id="OWAConnection"
   p:Host="real-owa-server"
   p:port="443"
   p:scheme="https"
   p:owaauth="/exchweb/bin/auth/owaauth.dll"
   p:owalogon="/exchweb/bin/auth/owalogon.asp"
   p:trusted="4"
   p:flags="4"
   p:destination="/exchange/"

Owaauth.dllをこのindex.aspxに変更します。

Index.aspxは、ユーザーを受け取り、CASログインフローを介してCASから渡します。ユーザーを保存し、アプリケーション変数で暗号化して渡します。

MS Exchange OWAのlogin.aspxで、index.aspxファイルに移動するように構成します。

これにより、CASログインフォームにリダイレクトされていない場合、CASでのログインがチェックされます。

CASでユーザーが認証されると、ユーザーが送信され、インデックスファイルに渡され、メモリに保存されます。

ブラウザがindex.aspxにリダイレクトすると、ユーザーがCASによって認証されていることを確認し、CASからユーザー名を取得し、アプリケーションメモリからパスワードを取得し、owaauth.dllでユーザーを認証して、クライアントブラウザにCookieを保存します。

その後、ブラウザをOWAにリダイレクトします。

0
DoiVui