Microsoft Exchange 2010でシングルサインを構成する

以下のセクションでは、Citrix Gateway でのMicrosoft Exchange 2010のシングルサインオン(SSO)の構成について説明します。Outlook Web アクセス (OWA) 2010 の SSO は、次の条件では動作しません。

  • Microsoft Exchange 2010でフォームベースの認証を使用します。
  • 認証、認可、および監査トラフィック管理ポリシーを使用した仮想サーバのロードバランシング。

この設定は、認証、認可、および監査トラフィック管理ポリシーを持つロードバランシング仮想サーバに対してだけ機能します。クライアントレス VPN を使用した OWA 2010 の SSO では機能しません。

次の手順は、Citrix Gateway でMicrosoft Exchange 2010のSSOを構成する前に考慮する必要がある前提条件です。

  • SSO フォームのアクション URL は、OWA 2010 では異なります。トラフィック管理ポリシーを変更する必要があります。
  • logon.aspx 要求で PBack クッキーを設定するには、書き換えポリシーが必要です。通常のシナリオでは、クライアントで PBack クッキーを設定し、[送信] をクリックします。
  • SSOを使用している場合、logon.aspxへの応答が消費され、Citrix Gateway がフォーム要求を生成します。クッキーは、フォーム送信要求に添付されていません。
  • OWA サーバーは、フォーム送信要求で PBack クッキーを期待します。書き換えポリシーは、フォーム送信要求に PBack クッキーをアタッチするために必要です。

CLI を使用して、次の操作を実行します

  1. 認証、認可、および監査トラフィック管理の設定

    add tm formSSOAction OWA_Form_SSO_SSOPro -actionURL "/owa/auth.owa" -userField username -passwdField password -ssoSuccessRule "http.RES.SET_COOKIE.COOKIE(\"cadata\").VALUE(\"cadata\").LENGTH.GT(70" -responsesize 15000 -submitMethod POST

  2. トラフィック管理ポリシーを設定し、ポリシーをバインドする

    • add tm trafficAction OWA_2010_Prof -appTimeout 1 -SSO ON -formSSO Action OWA_Form_SSO_SSOPro

    • add tm trafficPolicy owa2k10_pol "HTTP.REQ.URL.CONTAINS(\"owa/auth/logon.aspx\")" OWA_2010_Prof

    • bind tm global -policyName owa2k10_pol -priority 100

CLI を使用した設定の書き換え

コマンドプロンプトで、次のように入力します。

  • add rewrite action set_pback_cookie insert_after "http.REQ.COOKIE.VALUE(\"OutlookSession\")" "\";PBack=0\"" -bypassSafetyCheck YES

  • add rewrite policy set_pback_cookie "http.REQ.URL.CONTAINS(\"logon.aspx\")" set_pback_cookie

  • bind rewrite global set_pback_cookie 100 END -type REQ_DEFAULT

代替書き換え構成

まれに、Microsoft Outlook が OWA セッションクッキーを発行しない可能性があり、Pback クッキーも挿入されないことがあります。この問題は、上記のコマンドを実行して書き換え構成を実装した後に発生する可能性があります。

このようなシナリオを克服し、回避策として、書き換え設定の代わりに次のコマンドを設定できます。

コマンドプロンプトで、次のように入力します。

  • add rewrite action set_pback_cookie insert_http_header "Cookie" '"PBack=0"'

  • add rewrite policy set_pback_cookie "http.REQ.URL.CONTAINS(\"logon.aspx\")" set_pback_cookie

  • set rewrite policy set_pback_cookie -action set_pback_cookie

  • bind rewrite global set_pback_cookie 100 END -type REQ_DEFAULT