Windows Server 2019 AD FS の新機能
こんにちは。Azure Identity チームの三浦です。
今回は、 Windows Server 2019 の AD FS に関する新機能についてリンク にあります公開情報に多少補足を含めて翻訳してみました。
AD FS も Azure Active Directory の進化に合わせて様々な機能が追加されています。既存 AD FS サーバーの更新、新規導入を検討する中で本情報が参考になれば幸いです。
カテゴリ | 項目 | 説明 |
ログインの保護 | 外部の認証プロバイダーをプライマリにすることができる | 3rd Party の認証プロバイダをプライマリにしてパスワード ベースの認証を取り除くことができます。また、 3rd Party は多要素認証を実施済みとクレームに含めることもできます。 |
パスワード ベースの認証を追加認証に設定可能 | パスワード以外の方式をプライマリに設定し、パスワード ベースの認証を追加の認証方式として指定することができます。(ADFS 2016 では Github からアダプタを入手する必要がありました) | |
脅威に対するプラグイン可能なモジュールへの対応 | 独自のプラグインを利用して実際の認証処理が開始される前に特定のタイプの認証要求をブロックできるようになりました。例えば Identity Protection のようなものを利用し、リスクと判断されたユーザーのログインをブロックするなどです。 | |
エクストラネット スマート ロックアウト (ESL = Extranet Smart Lockout) 機能の強化 | 2016 にて追加モジュールのインストールをすることで提供されている ESL をさらに強化しています。具体的には次のような機能強化が図られています。 ・ 2012R2 の ADFS で提供されていたクラシックなエクストラネット ロックアウト機能を有効にした状態でスマート ロックアウトを監査モードを有効にすることができるようになりました。現状の 2016 でも監査モードは用意されていますが、監査モードを利用すると従来のエクストラネット ロックアウトもオフになりました。 ・ 定義された場所に対して独立したロックアウトの閾値を指定可能になりました。 | |
その他セキュリティ | スマートカードを利用したリモート Powershell ログイン | リモートから AD FS に PowerShell で接続する際にスマートカード ログインが利用可能になりました。これはマルチノードに対するコマンド レットを含むすべての PowerShell コマンドを対象とします。 |
HTTP ヘッダーのカスタマイズ | AD FS が応答を返す際の HTTP ヘッダーをカスタマイズすることが可能になりました。これには次のようなものが含まれます。 ・ HSTS (HTTP Strict Transport Security): ADFS のエンドポイントへのアクセスを HTTPS にするよう、伝えるためのヘッダーです。 ・ x-frame-options: 特定の RP (Relying Party = ADFS からのトークンを受け取るアプリケーション側) が、AD FS の対話的なログイン ページを iFrames として埋め込むことを許可します (これまでは固定で Deny が入っていました)。利用には細心の注意と HTTPS を利用したホストでのみ利用すべき設定です。 ・ 今後利用されるヘッダー: 今後利用可能になるヘッダーも同様に構成可能です。 | |
認証 / ポリシーの機能 | 証明書利用者 (RP = Relying Party ) 毎に追加認証方式を指定可能 | どの追加認証を実施するかクレーム ルールで指定可能になりました。これにより次のようなことが可能になりました。 ・ 特定のグループについては、別の認証プロバイダーを利用する ・ 特定のアプリケーションを指定して追加の認証プロバイダーを指定する |
TLS でのデバイス認証を必要とするアプリケーションに限定 | TLS でのデバイス認証を特定のデバイス ベースの条件付きアクセスを構成したアプリケーションのみに制限することができるようになりました。これによりアプリケーションがデバイス認証に対応していない場合には除外するなどが可能になりました。 | |
MFA の有効期限のサポート | 二要素認証を前回の成功からの経過時間により、再度実施させることができるようになりました。これにより二要素認証を実施する際に、前回実施されてからある一定時間経過した場合に二要素の認証のみを要求することが可能になりました。これは AD FS 側では設定はできず、追加のパラメーターを渡すことができるアプリケーションでのみ利用可能です。Azure AD で利用される "MFA を X 日記憶する" が構成されている場合に設定される "supportsMFA" フラグがフェデレーション ドメイン信頼の設定で True に設定されていることが前提となります。 | |
SSO の改善 | サインイン ページの変更 (画面中央への表示とページフロー化されたユーザー エクスペリエンス) | AD FS は、Azure AD での認証のようにページフロー化されたユーザー エクスペリエンス フローに移行しました。これにより AD FS を利用した、よりスムーズなサインイン エクスペリエンスが提供されます。AD FS では、これまで画面の右側にサインインのためのユーザー名、パスワードの入力ボックスが表示されていましたが、中央に表示されるようになりました。この新しいユーザー インタフェースに合わせるために新しいロゴや背景画像が必要になる可能性があります。 |
バグ修正 : PRT (Primary Refresh Token) を利用する Windows 10 デバイスの SSO 状態の維持 | Windows 10 デバイスで PRT 認証を使用しているときに MFA が完了済みという情報が維持されない問題を解決します。 この問題によりエンドユーザーは MFA を頻繁に求められる状態となっていました。 この修正によりデバイス認証が完了していれば PRT を使用した一貫性のある操作性が提供されます。 | |
モダンアプリケーション開発のサポート | Oauth デバイス フロー / プロファイル | AD FS は Oauth デバイス フロープロファイルをサポートし、ログインのために最小限の UI しか持たないデバイスでログイン処理を実行できるようになりました。 これにより、ユーザーは別のデバイスでログインを完了させることができるようになりました。この機能は Azure Stack での Azure CLI で必要であり、他のケースでも使用できます。 |
リソース パラメータの削除 | AD FS は Oauth においてリソース パラメータを指定する要件を取り除きました。 クライアントは、要求されたアクセス許可に加えて、スコープ パラメータとして証明書利用者信頼 (Relying Party trust) ID を提供できるようになりました。 | |
ADFS からの応答に含まれる CORS (Cross Origin Resource Sharing) ヘッダー | AD FS の OIDC (OpenID Connect) ディスカバリ ドキュメントからの署名キーを照会することにより、クライアント サイド JS ライブラリが id_token の署名を検証できるように、シングル ページ アプリケーションを構築することができます。 | |
PKCE サポート | AD FS は PKCE をサポートし、Oauth 内での安全な認証コードフローを提供します。これによりコードのハイジャック、別のクライアントによるリプレイを防ぎます | |
バグ修正: x5t と kid クレームの送信 | マイナー バグ修正です。AD FS は署名を検証するためのキー ID ヒントを示すために kid クレームを送信します。 これまでは AD FS はこの目的のために x5t クレームのみ送信していました。 | |
サポータビリティ | AD FS 管理者へのエラー詳細送信 | AD FS に関わる認証に関しての問題が生じた場合にユーザーに ZIP 化されたデバッグ ログ ファイルを送信させるように構成できます。また、指定したアカウントにファイルを自動的に送信するようにする、あるいは、問い合わせチケットを自動的に作成したりするように構成することも可能です。 |
導入 | 新しいファーム動作レベル (FBL)、 2012R2->2019 & 2016->2019 | AD FS 2016 の場合と同様に 2019 でも新機能をサポートするために必要な AD FS ファームのレベルが定義されました。 |
SAML | バグ修正: 集約されたフェデレーション | 集約されたフェデレーション (InCommon) に関する多くのバグ修正が行われています。修正は、次の点を中心に行われています。 ・ 集約されたフェデレーションで利用されるメタデータの扱いについてスケーリングが改善されました。 以前は大規模になると "ADMIN0017" エラーで失敗することがありました。 ・ Get-AdfsRelyingPartyTrustsGroup コマンドレットで 'ScopeGroupID' パラメータでのクエリ ・ 重複する entityID に関するエラー条件の処理 |