다음을 통해 공유


Windows Server 2016 이상에서 LDAP 디렉터리에 저장된 사용자를 인증하도록 AD FS 구성

다음 항목에서는 ID가 LDAP(Lightweight Directory Access Protocol) v3 규격 디렉터리에 저장된 사용자를 인증하기 위해 AD FS 인프라를 사용하도록 설정하는 데 필요한 구성에 대해 설명합니다.

대부분의 조직에서 ID 관리 솔루션은 Active Directory, AD LDS 및 타사 LDAP 디렉터리의 조합으로 구성됩니다. LDAP v3 규격 디렉터리에 저장된 사용자를 인증하기 위한 AD FS 지원이 추가되어 사용자 ID가 저장되는 위치에 관계없이 전체 엔터프라이즈급 AD FS 기능 집합을 활용할 수 있습니다. AD FS는 모든 LDAP v3 규격 디렉터리를 지원합니다.

참고 항목

일부 AD FS 기능에는 SSO(Single Sign-On), 디바이스 인증, 유연한 조건부 액세스 정책, 웹 애플리케이션 프록시 통합을 통한 어디서나 작업 지원, Microsoft Entra와의 원활한 페더레이션이 포함되며, 이를 통해 사용자와 사용자가 Office 365 및 기타 SaaS 애플리케이션을 포함하여 클라우드를 활용할 수 있습니다. 자세한 내용은 Active Directory Federation Services 개요를 참조하세요.

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 디렉터리에서 사용자를 인증하는 데는 양식 기반 인증만 지원됩니다. 인증서 기반 및 통합 Windows 인증 LDAP 디렉터리에서 사용자를 인증하는 데 지원되지 않습니다.

SAML, WS-Federation 및 OAuth를 포함하여 AD FS에서 지원하는 모든 수동 권한 부여 프로토콜은 LDAP 디렉터리에 저장된 ID에도 지원됩니다.

WS-Trust 활성 권한 부여 프로토콜은 LDAP 디렉터리에 저장된 ID에도 지원됩니다.

LDAP 디렉터리에 저장된 사용자를 인증하도록 AD FS 구성

LDAP 디렉터리에서 사용자를 인증하도록 AD FS 팜을 구성하려면 다음 단계를 완료할 수 있습니다.

  1. 먼저 New-AdfsLdapServerConnection cmdlet을 사용하여 LDAP 디렉터리에 대한 연결을 구성합니다.

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

    참고 항목

    연결하려는 각 LDAP 서버에 대한 새 연결 개체를 만드는 것이 좋습니다. AD FS는 여러 복제본 LDAP 서버에 연결하고 특정 LDAP 서버가 다운된 경우 자동으로 장애 조치(failover)할 수 있습니다. 이러한 경우 이러한 각 복제본 LDAP 서버에 대해 하나의 AdfsLdapServerConnection을 만든 다음 Add-AdfsLocalClaimsProviderTrust cmdlet의 -LdapServerConnection 매개 변수를 사용하여 연결 개체 배열을 추가할 수 있습니다.

    참고: Get-Credential을 사용하고 DN에 입력하고 LDAP 인스턴스에 바인딩하는 데 사용할 암호를 입력하려고 하면 특정 입력 형식(예: domain\username 또는 user@domain.tld)에 대한 사용자 인터페이스 요구 사항으로 인해 오류가 발생할 수 있습니다. 대신 다음과 같이 ConvertTo-SecureString cmdlet을 사용할 수 있습니다(아래 예제에서는 uid=admin,ou=system을 LDAP 인스턴스에 바인딩하는 데 사용할 자격 증명의 DN으로 가정).

    $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 cmdlet을 사용하여 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에서 조건부 액세스 제어 규칙을 만들기 위해 LDAP 저장소의 특성을 AD FS의 클레임으로 사용할 수 있도록 하기 위해 수행됩니다. 또한 AD FS는 LDAP 특성을 클레임에 쉽게 매핑할 수 있는 방법을 제공하여 LDAP 저장소의 사용자 지정 스키마를 사용할 수 있습니다.

  3. 마지막으로, Add-AdfsLocalClaimsProviderTrust cmdlet을 사용하여 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에서 발급한 보안 토큰의 클레임을 통한 발급에도 사용하도록 지정합니다. AD FS에서 Ws-Trust와 같은 활성 프로토콜을 사용하려면 활성 권한 부여 요청을 처리할 때 AD FS가 로컬 클레임 공급자 트러스트 간에 명확하게 구분할 수 있도록 하는 OrganizationalAccountSuffix 매개 변수를 지정해야 합니다.

참고 항목

AD FS 작업