自宅の検証環境は外からアクセスする際には TMG (Threat Management Gateway) を経由してアクセスする構成にしています。
ここ数日 Office 365 の調査をしており、自宅の検証環境に構築した、AD FS を使用して SSO (シングルサインオン)? をするためには TMG を経由しないといけませんでした。
この際に調べた内容をメモとして残しておきたいと思います。
本来は、TMG → AD FS Proxy → AD FS という形にしたほうが良いかと思うのですが、今回は TMG → AD FS という経路でアクセスをしています。
Office 365 環境用 ID フェデレーション実装ガイド に記載されている、 Firewall-published AD FS のシナリオになると思います。
今回の投稿を書く際には、以下の情報を参考にさせていただきました。
Publishing ADFS Through ISA or TMG Server
■TMG のルールを設定
TMG のファイアウォールタスクでは AD FS 用のルールのテンプレートは提供されていませんので Web サイトの公開ルールとして作成する必要があります。
[/adfs] のパスに対しての要求を AD FS にリダイレクトするルールを設定しておくことで AD FS に要求を渡すことが可能です。
また、Office 365 から AD FS にアクセスされる際には HTTPS でのアクセスとなりますので、リスナーは HTTPS を使用するように設定しておきます。
# リスナーで使用している証明書の一般名は フェデレーションサービス名のものを設定しておきます。
認証の委任に関しては、今回は [委任できません。クライアントは直接認証できます] を選択しています。
ルールが設定できたら Office 365 のポータルからサインインしてみます。
■Office 365 からサインイン
それでは、Office 365 からサインインしてみたいと思います。
シングルサインオン用のドメインとして設定してありますのでパスワードに関してはグレーアウトしています。
サインインのリンクをクリックすると AD FS にリダイレクトされるのですが、この時に以下のエラーが発生します。
このエラーは TMG が出力しているものになります。
このメッセージだけでは何に起因しているかわかりませんので TMG のログを確認してみると詳細なメッセージが表示されています。
[HTTP セキュリティ フィルターでブロックされました。1 回のパスで URL の正規化を完了できません。] というエラーになっていますね。
■エラーを回避するための設定
エラーを回避するためには HTTP の構成の設定を一部変更する必要があります。
AD FS 用に作成したルールを右クリックして [HTTP の構成] をクリックします。
HTTP の構成の中に、[正規化を検証するという] [ハイビット文字をブロックする] という設定があり、デフォルトではこの設定が有効になっています。
今回のエラーを回避するために、これらの設定を無効にします。
場合によっては、AD FS の IIS の [ls] のWindows 認証の拡張保護をオフにしておかないと先ほどのエラーが出なくなっても、認証ダイアログが繰り返し表示され、正しい資格情報を入力しても認証を通すことができないかもしれません。
ここまでの設定をすることで AD FS に要求をリダイレクトすることが可能なのですが、このままの設定では [あなたの組織では、このサービスjにサインインすることはできません。] というメッセージが表示され、サインインすることができませんでした。
この現象を回避するためには、TMG のルールの [リンクの変換] から [このルールにリンク変換を適用する] を無効にすることで対応ができます。
これらの設定をすることで TMG を経由して AD FS にアクセスし、Office 365 を使用することができました。
今回の設定の詳細に関しては以下の技術文書に記載がされています。
Active Directory フェデレーション サービス (AD FS) を構成した後「ファイアウォール発行」の構成でインターネット ベースのクライアント コンピューターが認証されません。
今回、AD FS を初めて触ったのですが、SaaS にオンプレミスのアカウントを使用してアクセスできるのって面白いですね~。
時間があるときに TMG → AD FS Proxy の場合も試してみたいと思います。
[…] (TMG を経由して AD FS にアクセスして Office 365 にサインイン) の環境に AD FS Proxy を追加した環境になります。 AD FS Proxy […]
フェデレーション ID を使用して Windows Phone から Office 365 にアクセス « SE の雑記
3 12月 11 at 16:08