다음 항목에서는 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 팜을 구성하려면 다음 단계를 완료할 수 있습니다.
먼저 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에 대한 암호를 입력하고 나머지 단계를 완료합니다.
다음으로 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 저장소의 사용자 지정 스키마를 사용할 수 있습니다.
마지막으로, 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"라는 로컬 클레임 공급자 트러스트를 만듭니다. AD FS가 이 로컬 클레임 제공자 트러스트가 대표하는 LDAP 디렉터리에 연결하기 위한 연결 정보를
$vendorDirectory
을(를)-LdapServerConnection
매개변수에 할당하여 지정하고 있습니다. 1단계에서는 특정 LDAP 디렉터리에 연결할 때 사용할$vendorDirectory
연결 문자열을 할당했습니다. 마지막으로, AD FS 클레임에 매핑된$GivenName
,$Surname
,$CommonName
LDAP 특성(AD FS 클레임에 매핑됨)을 다단계 인증 정책 및 발급 권한 부여 규칙을 비롯한 조건부 액세스 제어뿐만 아니라 AD FS에서 발급한 보안 토큰의 클레임을 통한 발급에도 사용하도록 지정합니다. AD FS에서 Ws-Trust와 같은 활성 프로토콜을 사용하려면 활성 권한 부여 요청을 처리할 때 AD FS가 로컬 클레임 공급자 트러스트 간에 명확하게 구분할 수 있도록 하는 OrganizationalAccountSuffix 매개 변수를 지정해야 합니다.