Skip to content

MS_ADFS

nishi_74322014 edited this page Aug 4, 2026 · 1 revision

フェデレーション サービス (AD FS)

概要

クレームベース認証を行うための「STS」を構築する。

  • AD DS」を「IDP(CP)」として使用した「STS」を構築する。

  • Web アプリケーション(「SP(RP)」)は、
    AD FS の「STS」と信頼関係を結ぶ(フェデレーション メタデータ)。

  • 「SP(RP)」からの認証要求がリダイレクトされ
    AD DS」の「IDP(CP)」上で認証処理が行われ、

  • AD FS の「STS」の発行するクレームを使用して「SP(RP)」は認可処理を行う。

用語(STS / IDP(CP) / SP(RP))は
クレームベース認証を参照。

各種機能

プロトコル

以前は WS-Federationのみのサポートだったが、
最近は SAMLOpenID Connectなどの
プロトコルもサポートしている。

補足(最新化): AD FS のプロトコル対応は世代でおおよそ以下のとおり。

世代 対応
AD FS 1.x WS-Federation のみ
AD FS 2.0(Windows Server 2008 R2 用) WS-Federation、WS-Trust、SAML 2.0
AD FS 2012 R2 上記+ OAuth 2.0(認可コード)、デバイス認証
AD FS 2016 以降 上記+ OpenID Connect、各種 OAuth グラント

なお SAML 2.0 対応は「SAML-P(SAML Protocol)」として提供される。

クレーム

クレームの役割

AD FS はあらゆる種類のクレームをサポートする。
デフォルトで構成されているクレームの種類は以下のとおり。

名前 説明 URI
電子メール アドレス ユーザーの電子メール アドレス http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
ファースト ネーム ユーザーのファースト ネーム http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
名前 ユーザーの一意の名前 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name
UPN ユーザーのユーザー プリンシパル名 (UPN) http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
共通名 ユーザーの共通名 http://schemas.xmlsoap.org/claims/CommonName
AD FS 1.x 電子メール アドレス AD FS 1.x と相互運用する場合のユーザーの電子メール アドレス http://schemas.xmlsoap.org/claims/EmailAddress
グループ ユーザーが属しているグループ http://schemas.xmlsoap.org/claims/Group
AD FS 1.x UPN AD FS 1.x と相互運用する場合のユーザーの UPN http://schemas.xmlsoap.org/claims/UPN
ロール ユーザーが果たす役割 http://schemas.microsoft.com/ws/2008/06/identity/claims/role
ユーザーの姓 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
PPID ユーザーのプライベート識別子 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier
名前識別子 ユーザーの SAML 名識別子 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
認証方法 ユーザーの認証に使用される方法 http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod
拒否専用のグループ SID 拒否専用のユーザーのグループ SID http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid
拒否専用のプライマリ SID 拒否専用のユーザーのプライマリ SID http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid
拒否専用のプライマリ グループ SID 拒否専用のユーザーのプライマリ グループ SID http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid
グループ SID ユーザーのグループ SID http://schemas.microsoft.com/ws/2008/06/identity/claims/groupsid
プライマリ グループ SID ユーザーのプライマリ グループ SID http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid
プライマリ SID ユーザーのプライマリ SID http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid
Windows アカウント名 <domain>\<user> の形式で表されたユーザーのドメイン アカウント名 http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname

クレーム パイプライン

  • 受け付け変換規則 : 受信クレームの受け入れ
  • 発行承認規則 : クレーム要求者の承認
  • 発行変換規則 : 送信クレームの発行

参考:セキュリティトークンの発行処理(クレームパイプライン)(WS-Federationを参照)

クレーム ルール

  • 要求規則(Claim Rule : クレーム ルール)

    • AD FS の本質的な機能は、クレームのセットを含むトークンを発行すること。
    • 発行に関する決定は、クレーム ルール(要求規則)によって管理される。
    • 1 つまたは複数の受信クレームから 1 つまたは複数の送信クレームを生成する処理。
  • 要求規則セット(Claim Rule Set : クレーム ルール セット)

    • 受け付け変換規則(Acceptance Transform Rule Set : 受け入れ変換ルール セット)
      • 要求プロバイダーからクレームを収集しセキュリティ トークンを生成する。
      • 既定:Active Directory というクレーム プロバイダーの信頼。
      • 設定場所:クレーム プロバイダーの信頼

    ↓↓↓

    • 発行承認規則(Issuance Authorization Rule Set)
      • アクセス可能なユーザーを評価(トークン発行 OK/NG)する。
      • 設定場所:証明書利用者の信頼

    ↓↓↓

    • 発行変換規則(Issuance Transform Rule Set)

      • トークンに含めるクレームを生成する。
      • 設定場所:証明書利用者の信頼
    • 委任承認規則(Delegation Authorization Rule Set : 委任承認ルール セット)

      • 代理での SP(RP) アクセスの可・不可を判断する。
      • 設定場所:証明書利用者の信頼
    • 偽装承認規則(Impersonate Authorization Rule Set : 偽装承認ルール セット)

      • 偽装しての SP(RP) アクセスの可・不可を判断する。
      • 設定場所:証明書利用者の信頼

移行メモ(正誤): 元 Wiki では英語名の対訳が入れ替わっていた (「発行承認規則 = Issuance Authorization Rule Set : 発行変換ルール セット」、 「発行変換規則 = Issuance Transform Rule Set : 発行承認ルール セット」)。 上表では、Authorization = 発行承認、Transform = 発行変換 に修正した。

  • クレーム ルール テンプレート
    クレーム ルール テンプレートを使用してクレーム ルールを作成する。
    • Pass Through or Filter an Incoming Claim
    • Transform an Incoming Claim
    • Send LDAP Attributes as Claims
    • Send Group Membership as a Claim
    • Send Claims Using a Custom Rule
    • Permit or Deny Users Based on an Incoming Claim
    • Permit All Users

サポートする属性ストア

ストア

ユーザ ストアではなく、属性ストアという点がミソ。
認証を行う、ドメイン サービス (AD DS)が前提である点は崩れない。

クレームのカスタマイズ

要求規則セットのカスタマイズにより、
SAMLトークンに含まれる情報のカスタマイズが可能。

デバイス認証

  • デバイス認証サービス

    • DRS:Device Registration Service
    • AD FS が提供するデバイス認証機能
  • Workplace Join 機能

    • クライアント側から事前デバイス登録とデバイス認証を行う機能

    • Azure ADの Workplace Join 機能
      Azure AD(RP 側 STS)←→ AD FS(CP 側 STS)の
      Hybrid-Idp 構成でサポートされる。

      • デバイス登録だけ、Azure ADが担当する。
      • デバイス認証は、引き続き AD FS が担当する。

補足(最新化): Workplace Join は現在 デバイス登録(Microsoft Entra 登録/Entra ハイブリッド参加) に発展・改称されている。

多要素認証

Azure 多要素認証のライセンスを購入した場合
(または Azure AD Premium のライセンスを購入した場合)、
Azure の多要素認証機能(電話、SMS、モバイル アプリなど)を利用して、
AD FS での多要素認証ができる。

  • ユーザー名/パスワードと
    • クライアント証明書
    • 電話
    • SMS
    • モバイル アプリ

構成

WAP(旧AD FS Proxy)

AD FS Proxy

AD FS Proxy を経由させる方法は、
インターネット側から AD FS にアクセスする際のセキュリティを考慮した一般的な方法である
(AD FS 本体を内部ネットワークに置き、Proxy のみを DMZ に配置する)。

WAP:Web Application Proxy

WAP と組み合わせると、SAML トークンを Kerberos トークンに変換し、
クレームベース認証非対応 Web アプリケーションの SSO 対応と、
インターネット アクセスを可能にする。

補足: WAP は AD FS Proxy の後継(Windows Server 2012 R2 以降)で、 リバース プロキシ + AD FS 事前認証を担う。 Kerberos への変換は KCD(Kerberos 制約付き委任)によって実現される。

Single-Idp

最も基本的な、AD FS の構成。

WebServer (<---> AD FS Proxy) <---> ADFS <---> ADDS

Hybrid-Idp

ADFS <---> ADFS

要求プロバイダー信頼と証明書利用者信頼にそれぞれ異なる AD FS を登録して、連携させる。

WebServer (<---> AD FS Proxy) <---> ADFS <---> ADDS
                                    ↑↓
WebServer (<---> AD FS Proxy) <---> ADFS <---> ADDS

Azure AD(RP側STS) <---> ADFS(CP側STS)

  • 企業の AD DS上のアカウントを AD FS 経由で
    Azure ADに同期して、
  • アプリケーションは Azure ADに問い合わせを行い認証を受ける。
WebServer <---> Azure AD(RP側STS) (<---> AD FS Proxy) <---> ADFS(CP側STS) <---> ADDS

詳細はMicrosoft Azure Active Directoryを参照。

補足(最新化): 現在は、この構成の代替として パススルー認証(PTA)パスワード ハッシュ同期(PHS) が推奨されている (AD FS サーバー群を保守しなくてよいため)。 AD FS は「オンプレミス側で認証を完結させたい」 「独自の多要素認証や高度なクレーム ルールが必要」といった要件がある場合に選択する。 Microsoft も AD FS から Entra ID への移行を推奨している。

参考


Tags: Active Directory, 認証基盤, クレームベース認証

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally