#初めに
ADFSサーバーのセキュリティ監査などでHSTSヘッタの不備を指摘されることがあります。ADFSサーバーの場合、Webの認証トラフィックは、HTTPS経由で開かれるため、HSTSヘッタの設定がないこと自体は問題ないと考えられますが、セキュリティ監査では、ヘッタが返されることが監査のクリア条件などになることがあります。
本ドキュメントでは、HSTSヘッタ(HTTP Strict-Transport-Security)の設定手順に関して記載します。
#HSTSヘッターとは
HSTSヘッタは、HTTPとHTTPSの両方のエンドポイントを持つサービスにアクセスする際に必ずHTTPSアクセスを行い、HTTPでのアクセスを使用してはいけないこと宣言するヘッタです。
#事前確認
設定を行う前に、現在のADFSサービスのアクセスでHSTSヘッタ情報が含まれていないことを確認します。chromeなどを開きF12キークリックし、「ネットワーク」タブを開いてADFSサーバーの下記のURLにアクセスを行います。
https:// ADFSサーバーのURL/adfs/ls/IdpInitiatedSignon.aspx
「Name」の一番最初の通信をクリックし「Response Headers」のセクションの中に、「Strict-Transport-Security」ヘッタが無いことを確認します。
#設定
ADFSサーバー(複数台ADFSサーバーがある場合、プライマリのADFSサーバー)にログインします。 管理者権限で、PowerShellを起動します。
PowerShellで下記のコマンドを入力します。
Set-AdfsResponseHeaders -SetHeaderName "Strict-Transport-Security" -SetHeaderValue "max-age=31536000"
最後の「max-age」は、有効期限で1年です。この期間を短くすることは推奨されていません。下記のコマンドで設定を確認できます。「Strict-Transport-Security, max-age=31536000」の項目が表示されれば、設定ができています。
Get-AdfsResponseHeaders
ResponseHeaders : {[X-Frame-Options, DENY], [Content-Security-Policy, default-src 'self' 'unsafe-inline' 'unsafe
-eval'; img-src 'self';], [Strict-Transport-Security, max-age=31536000]}
ResponseHeadersEnabled : True
#確認
chromeなどを開きF12キークリックし、「ネットワーク」タブを開いてADFSサーバーの下記のURLにアクセスを行います。
https:// ADFSサーバーのURL/adfs/ls/IdpInitiatedSignon.aspx
ヘッタに「Strict-Transport-Security」があることを確認します。
#参考資料
[AD FS 2019 で HTTP セキュリティ応答ヘッダーをカスタマイズする][Link1]
[Link1]:https://docs.microsoft.com/ja-jp/windows-server/identity/ad-fs/operations/customize-http-security-headers-ad-fs