次の方法で共有


Windows Server 2016 以降の LDAP ディレクトリに格納されているユーザーを認証するように AD FS を構成する

次のトピックでは、ID がライトウェイト ディレクトリ アクセス プロトコル (LDAP) v3 準拠ディレクトリに格納されているユーザーを AD FS インフラストラクチャで認証できるようにするために必要な構成について説明します。

多くの組織では、ID 管理ソリューションは、Active Directory、AD LDS、またはサード パーティの LDAP ディレクトリの組み合わせで構成されています。 LDAP v3 に準拠したディレクトリに格納されているユーザーの認証に対する AD FS サポートが追加されたので、ユーザー ID が格納されている場所に関係なく、エンタープライズ レベルの AD FS 機能セット全体からメリットを得ることができます。 AD FS では、LDAP v3 に準拠しているディレクトリがサポートされます。

AD FS の一部の機能には、シングル サインオン (SSO)、デバイス認証、柔軟な条件付きアクセス ポリシー、Web アプリケーション プロキシとの統合によるどこからでも作業のサポート、Microsoft Entra とのシームレスなフェデレーションが含まれます。これにより、ユーザーは Office 365 やその他の SaaS アプリケーションを含むクラウドを利用できます。 詳細については、「 Active Directory フェデレーション サービスの概要」を参照してください。

AD FS が LDAP ディレクトリからユーザーを認証するには、 ローカルクレームプロバイダーの信頼を作成して、この LDAP ディレクトリを AD FS ファームに接続する必要があります。 ローカルクレームプロバイダー信頼は、AD FS ファーム内の LDAP ディレクトリを表す信頼オブジェクトです。 ローカル クレーム プロバイダー信頼オブジェクトは、ローカル フェデレーション サービスに対するこの LDAP ディレクトリを識別するさまざまな識別子、名前、および規則で構成されます。

複数の ローカル クレーム プロバイダー信頼を追加することで、同じ AD FS ファーム内で、それぞれ独自の構成を持つ複数の LDAP ディレクトリをサポートできます。 また、AD FS が存在するフォレストによって信頼されていない AD DS フォレストは、ローカル要求プロバイダー信頼としてモデル化することもできます。 Windows PowerShell を使用して、ローカルクレームプロバイダーの信頼を作成できます。

LDAP ディレクトリ (ローカル クレーム プロバイダー信頼) は、同じ AD FS ファーム内の同じ AD FS サーバー上の AD ディレクトリ (クレーム プロバイダー信頼) と共存できるため、AD FS の単一インスタンスは、AD ディレクトリと非 AD ディレクトリの両方に格納されているユーザーのアクセスを認証および承認できます。

LDAP ディレクトリからユーザーを認証する場合は、フォーム ベースの認証のみがサポートされます。 LDAP ディレクトリでユーザーを認証する場合、証明書ベースおよび統合 Windows 認証はサポートされていません。

SAML、WS-Federation、OAuth など、AD FS でサポートされているすべてのパッシブ承認プロトコルは、LDAP ディレクトリに格納されている ID でもサポートされます。

WS-Trust アクティブな承認プロトコルは、LDAP ディレクトリに格納されている ID でもサポートされています。

LDAP ディレクトリに格納されているユーザーを認証するように AD FS を構成する

LDAP ディレクトリからユーザーを認証するように AD FS ファームを構成するには、次の手順を実行します。

  1. まず、 New-AdfsLdapServerConnection コマンドレットを使用して LDAP ディレクトリへの接続を構成します。

    $DirectoryCred = Get-Credential
    $vendorDirectory = New-AdfsLdapServerConnection -HostName dirserver -Port 50000 -SslMode None -AuthenticationMethod Basic -Credential $DirectoryCred
    

    接続先の LDAP サーバーごとに新しい接続オブジェクトを作成することをお勧めします。 AD FS は、複数のレプリカ LDAP サーバーに接続し、特定の LDAP サーバーがダウンした場合に自動的にフェールオーバーできます。 このような場合は、これらのレプリカ LDAP サーバーごとに 1 つの AdfsLdapServerConnection を作成し、Add-AdfsLocalClaimsProviderTrust コマンドレットの -LdapServerConnection パラメーターを使用して接続オブジェクトの配列を追加できます。

    手記: Get-Credential を使用し、DN とパスワードを LDAP インスタンスにバインドするために使用するパスワードを入力しようとすると、ドメイン\ユーザー名や user@___domain.tldなどの特定の入力形式のユーザー インターフェイス要件が原因でエラーが発生する可能性があります。 代わりに、次のように ConvertTo-SecureString コマンドレットを使用できます (次の例では、LDAP インスタンスへのバインドに使用する資格情報の DN として uid=admin,ou=system を想定しています)。

    $ldapuser = ConvertTo-SecureString -string "uid=admin,ou=system" -asplaintext -force
    $DirectoryCred = Get-Credential -username $ldapuser -Message "Enter the credentials to bind to the LDAP instance:"
    

    次に、uid=admin のパスワードを入力し、残りの手順を完了します。

  2. 次に、 New-AdfsLdapAttributeToClaimMapping コマンドレットを使用して、LDAP 属性を既存の AD FS 要求にマッピングするオプションの手順を実行できます。 次の例では、givenName、Surname、および CommonName LDAP 属性を AD FS 要求にマップします。

    #Map given name claim
    $GivenName = New-AdfsLdapAttributeToClaimMapping -LdapAttribute givenName -ClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
    # Map surname claim
    $Surname = New-AdfsLdapAttributeToClaimMapping -LdapAttribute sn -ClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"
    # Map common name claim
    $CommonName = New-AdfsLdapAttributeToClaimMapping -LdapAttribute cn -ClaimType "http://schemas.xmlsoap.org/claims/CommonName"
    

    このマッピングは、AD FS で条件付きアクセス制御規則を作成するために、AD FS で要求として LDAP ストアからの属性を使用できるようにするために行われます。 また、AD FS では、LDAP 属性をクレームにマップする簡単な方法を提供することで、LDAP ストア内のカスタム スキーマを操作することもできます。

  3. 最後に、 Add-AdfsLocalClaimsProviderTrust コマンドレットを使用して、AD FS にローカルクレーム プロバイダー信頼として LDAP ストアを登録する必要があります。

    Add-AdfsLocalClaimsProviderTrust -Name "Vendors" -Identifier "urn:vendors" -Type Ldap
    
    # Connection info
    -LdapServerConnection $vendorDirectory
    
    # How to locate user objects in directory
    -UserObjectClass inetOrgPerson -UserContainer "CN=VendorsContainer,CN=VendorsPartition" -LdapAuthenticationMethod Basic
    
    # Claims for authenticated users
    -AnchorClaimLdapAttribute mail -AnchorClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" -LdapAttributeToClaimMapping @($GivenName, $Surname, $CommonName)
    
    # General claims provider properties
    -AcceptanceTransformRules "c:[Type != ''] => issue(claim=c);" -Enabled $true
    
    # Optional - supply user name suffix if you want to use Ws-Trust
    -OrganizationalAccountSuffix "vendors.contoso.com"
    

    上記の例では、"Vendors" というローカルクレームプロバイダー信頼を作成しています。 $vendorDirectory パラメーターに -LdapServerConnection を割り当てることによって、このローカル要求プロバイダー信頼が表す LDAP ディレクトリに AD FS を接続するための接続情報を指定します。 手順 1 では、特定の LDAP ディレクトリに接続するときに使用する接続文字列 $vendorDirectory 割り当てたことに注意してください。 最後に、(AD FS 要求にマップした) $GivenName$Surname、および $CommonName LDAP 属性を条件付きアクセス制御 (多要素認証ポリシーや発行承認規則を含む) と、AD FS が発行したセキュリティ トークンの要求を介した発行に使用することを指定します。 AD FS で Ws-Trust などのアクティブなプロトコルを使用するには、アクティブな承認要求を処理するときに AD FS がローカルクレーム プロバイダーの信頼間であいまいさを解消できるようにする OrganizationalAccountSuffix パラメーターを指定する必要があります。

こちらもご覧ください

AD FS の運用