FirefoxでのOffice365へのシングルサインオンの記事では、各クライアントサイドのセキュリティ設定の緩和によって、シングルサインオンの機能を実現しました。ただ、この手法は全クライアントにレジストリの変更を強いることになるので、あまりスマートな実装ではございません。
今回、サーバサイドの設定変更でシングルサインオンが出来ないか試してみたいと思います。
Office365のオンラインマニュアルによると、各ブラウザが認証の拡張保護をサポートするまでIE8,9を利用するという他に解決策が2つがあるとのこと。
・認証の拡張保護の修正プログラムをコンピューターからアンインストールします。 ・AD FS 2.0サーバーの認証の拡張保護の設定を変更します。 ・統合Windows認証ではなくフォームベース認証を使用するように、各フェデレーションサーバーの AD FS2.0のWebページの認証設定を再構成します。
具体的な解決策がどれなのか分からないのですが、まあやってみましょう。1個目の項目はクライアントサイドの話ですし、Windows 7ではデフォルトで適用されている物になりますので、2個目と3個目を試してみます。
まず、AD FSの認証の設定をSet-ADFSPropertyコマンドレットで変更してみます。
Add-PSSnapin Microsoft.ADFS.PowerShell $ADFS = Get-ADFSProperties $ADFS.ExtendedProtectionTokenCheck Set-ADFSProperties -ExtendedProtectionTokenCheck None Restart-Service adfssrv $ADFS = Get-ADFSProperties $ADFS.ExtendedProtectionTokenCheck
コマンド実行後にはサービスの再起動が必要なようなので、AD FS 2.0 Windowsサービスを再起動します。ExtendedProtectionTokenCheckのパラメータがAllowからNoneに変更されたことを確認します。
早速Chromeからアクセスしてみますが、状況は変わりません。(何度も認証画面がポップアップする)
IISの方も設定しないといけないのでしょうかね? 続いて、IISの認証を統合Windows認証からフォームベース認証に変更してみます。
認証が設定されているのは/Default Web Site/adfs/lsのみWindows認証が有効に設定されているので、これをフォーム認証に設定します。再度アクセスしてみます。
あれ?悪化しました?仕方ないので切り戻ししますか…と思っていたら、IISの設定の中で同じように拡張保護の設定のところがWindows認証の詳細設定に有りました。試しに、拡張保護を許可からオフに変更してみます。
AD FS側の設定を戻してからアクセスしても、同じようにアクセスできるようになりました。GUIで出来ますし、こちらの設定の方が良さそうですかね?
Set-ADFSProperties -ExtendedProtectionTokenCheck Allow
Pingback: FirefoxでADFS認証を選択してもログイン出来る
Pingback: IE以外でADFSにSSOする(2012R2編) | 日々徒然