以前の投稿で、IE以外からADFSにシングルサインオンしようとした場合に、いくつか設定変更をしない部分があるということを紹介しました。
Windows Server 2012 R2のADFSにおいても、デフォルトの状態だとIE以外からはシングルサインオンできません。イントラネットのポータルからIDを入力すると、ADFS Proxy経由でアクセスした際と同じフォーム認証の画面に飛んでしまいます。(以下、Chromeでの画面例)
今回は、IE以外のブラウザからも入れるようにする方法を紹介します。
以前は、拡張認証の対応用にIISの設定を変更しましたが、Windows Server 2012 R2のADFSではそもそもIISを利用してません。この為、対応のための設定変更はADFSで実行します。
主に設定に関係するのはSet-ADFSPropertiesの以下のパラメータです。([ ]内はデフォルト値)
- ExtendedProtectionTokenCheck [Allow]
- WIASupportedUserAgents [MSAuthHost/1.0/In-Domain,MSIE 6.0,MSIE 7.0,MSIE 8.0,MSIE 9.0,MSIE 10.0,Trident/7.0,MSIPC,Windows Rights Management Client]
ExtendedProtectionTokenCheckは、拡張認証に対応している場合は利用を許可すると言う物ですが、昔調べた際はIE以外は対応しているブラウザが無かった為にWindows7では対応をしなくてはいけなかった物ですが、今回調べた限りではサードパーティのブラウザ側でも対応が進んでいるのか、特に設定変更の必要はありませんでした。
次に、WIASupportedUserAgentsのパラメータです。Windows Server 2012 R2のADFSは、このパラメータを見てシングルサインオンさせるかフォームベース認証にするかを判断しています。これを、ChromeやFirefox用にMozilla/5.0を設定してみます。ご利用の環境に合わせて “Safari/6.0”, “Safari/7.0” なども追加して頂ければ、と思います。
$old=(Get-AdfsProperties).WIASupportedUserAgents $new=$old+"Mozilla/5.0" Set-ADFSProperties -WIASupportedUserAgents $new
Chromeは、IEの設定をそのまま見て動作してくれますので、特に何も無くシングルサインオンできるようになりました。
ただし、Firefoxの場合は以下の様にID、PASSの入力画面がポップアップします。
これは、以前の投稿でも紹介した通りADFSのFQDNをIEでの「イントラネット」に設定しないといけないのと同じ理屈でセキュリティ上の問題からです。
about:configで設定画面に入った後、network.automatic-ntlm-auth.trusted-urisの項目にADFSのFQDNを設定すれば以下の様にシングルサインオンできるようになります。
注意点としては、ブラウザのバージョンアップによりUserAgentの値が変わった場合はシングルサインオンができなくなりますので、こちらの管理を運用の中でしていく必要があります。