다음을 통해 공유


PowerShell 및 클레임 매핑 정책을 사용하여 클레임 사용자 지정

‘클레임’은 해당 사용자에 대해 발급하는 토큰 내에서 ID 공급자가 사용자에 대해 나타내는 정보입니다. 클레임 사용자 지정은 테넌트 관리자가 테넌트의 특정 애플리케이션에 대한 토큰에 내보내는 클레임을 사용자 지정하는 데 사용됩니다. 클레임 매핑 정책을 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 토큰에 포함할 클레임을 선택합니다.
  • 아직 존재하지 않는 클레임 형식을 만듭니다.
  • 특정 클레임에 내보내는 데이터 원본을 선택하거나 변경합니다.

클레임 사용자 지정은 SAML, OAuth 및 OpenID Connect 프로토콜용 클레임 매핑 정책 구성을 지원합니다.

참고 항목

클레임 매핑 정책은 사용자 지정 클레임 정책과 Microsoft Entra 관리 센터를 통해 제공되는 클레임 사용자 지정을 모두 대체합니다. 클레임 매핑 정책을 사용하여 애플리케이션에 대한 클레임을 사용자 지정한다는 것은 해당 애플리케이션에 대해 발급된 토큰이 사용자 지정 클레임 정책의 구성 또는 Microsoft Entra 관리 센터의 클레임 사용자 지정 블레이드 구성을 무시함을 의미합니다.

필수 조건

시작하기

다음 예제에서는 서비스 주체에 대한 정책을 만들고, 업데이트, 연결 및 삭제합니다. 클레임 매핑 정책은 서비스 주체 개체에만 할당할 수 있습니다.

클레임 매핑 정책을 만들 때 토큰의 디렉터리 확장 특성에서 클레임을 내보낼 수도 있습니다. ClaimsSchema 요소의 ID 대신 확장 특성에 ExtensionID을(를) 사용합니다. 확장 특성에 대한 자세한 내용은 디렉터리 확장 특성 사용을 참조하세요.

참고 항목

클레임 매핑 정책을 구성하려면 Microsoft Graph PowerShell SDK가 필요합니다.

터미널을 열고 다음 명령을 실행하여 Microsoft Entra 관리자 계정에 로그인합니다. 새 세션을 시작할 때마다 이 명령을 실행합니다.

Import-Module Microsoft.Graph.Identity.SignIns

Connect-MgGraph -Scopes "Policy.ReadWrite.ApplicationConfiguration", "Policy.Read.All"

이제 클레임 매핑 정책을 만들고 이를 서비스 주체에 할당할 수 있습니다. 일반적인 시나리오는 다음 예를 참조하세요.

클레임 매핑 정책을 만든 후에는 해당 토큰에 사용자 지정된 클레임이 포함됨을 애플리케이션이 인식하도록 구성합니다. 자세한 내용은 보안 고려 사항을 참조하세요.

토큰에서 기본 클레임 생략

이 예제에서는 연결된 서비스 주체에 발급된 토큰에서 기본 클레임 집합을 제거하는 정책을 만듭니다.

  1. 클레임 매핑 정책을 만듭니다. 특정 서비스 주체에 연결되는 이 정책은 토큰에서 기본 클레임 집합을 제거합니다.

  2. 열려 있는 터미널을 사용하여 다음 명령을 실행하여 정책을 만듭니다.

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"false"}}') -DisplayName "OmitBasicClaims"
    
  3. 새 정책을 보고 ObjectId 정책을 가져오려면 다음 명령을 실행합니다.

    Get-MgPolicyClaimMappingPolicy
    
    Definition                    DeletedDateTime Description DisplayName      Id
    ----------                    --------------- ----------- -----------      --
    {"ClaimsMappingPolicy":{..}}                              OmitBasicClaims  36d1aa10-f9ac...
    

EmployeeIDTenantCountry를 토큰에서 클레임으로 포함

이 예에서는 연결된 서비스 주체에 발급된 토큰에 EmployeeIDTenantCountry를 추가하는 정책을 만듭니다. EmployeeID는 SAML 토큰 및 JWT 둘 다에서 이름 클레임 형식으로 내보내집니다. TenantCountry는 SAML 토큰 및 JWT 둘 다에서 국가/지역 클레임 형식으로 내보내집니다. 이 예제에서는 토큰에 기본 클레임 집합을 계속 포함합니다.

  1. 클레임 매핑 정책을 만듭니다. 특정 서비스 주체에 연결되는 이 정책은 토큰에 EmployeeID 및 TenantCountry 클레임을 추가합니다.

  2. 정책을 만들려면 터미널에서 다음 명령을 실행합니다.

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema": [{"Source":"user","ID":"employeeid","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/employeeid","JwtClaimType":"employeeid"},{"Source":"company","ID":"tenantcountry","SamlClaimType":"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country","JwtClaimType":"country"}]}}') -DisplayName "ExtraClaimsExample"
    
  3. 새 정책을 보고 ObjectId 정책을 가져오려면 다음 명령을 실행합니다.

    Get-MgPolicyClaimMappingPolicy
    

토큰에서 클레임 변환 사용

이 예제에서는 연결된 서비스 주체에 발급된 JWT에 사용자 지정 클레임 “JoinedData”를 내보내는 정책을 만듭니다. 이 클레임에는 사용자 개체의 extensionattribute1 특성에 저장된 데이터와 "-ext"를 조인하여 만든 값이 포함됩니다. 이 예제에서는 토큰에 기본 클레임 집합을 제외합니다.

  1. 클레임 매핑 정책을 만듭니다. 특정 서비스 주체에 연결된 이 정책은 토큰에 사용자 지정 클레임 JoinedData를 내보냅니다.

  2. 정책을 만들려면 다음 명령을 실행합니다.

    New-MgPolicyClaimMappingPolicy -Definition @('{"ClaimsMappingPolicy":{"Version":1,"IncludeBasicClaimSet":"true", "ClaimsSchema":[{"Source":"user","ID":"extensionattribute1"},{"Source":"transformation","ID":"DataJoin","TransformationId":"JoinTheData","JwtClaimType":"JoinedData"}],"ClaimsTransformations":[{"ID":"JoinTheData","TransformationMethod":"Join","InputClaims":[{"ClaimTypeReferenceId":"extensionattribute1","TransformationClaimType":"string1"}], "InputParameters": [{"ID":"string2","Value":"ext"},{"ID":"separator","Value":"-"}],"OutputClaims":[{"ClaimTypeReferenceId":"DataJoin","TransformationClaimType":"outputClaim"}]}]}}') -DisplayName "TransformClaimsExample"
    
  3. 새 정책을 보고 ObjectId 정책을 가져오려면 다음 명령을 실행합니다.

    Get-MgPolicyClaimMappingPolicy
    

서비스 주체에 클레임 매핑 정책 할당

서비스 주체에 정책을 할당하려면 클레임 매핑 정책의 ObjectId와 정책을 할당해야 하는 서비스 주체의 objectId가 필요합니다.

  1. 조직의 모든 서비스 주체를 보려면 Microsoft Graph API를 쿼리하거나, Microsoft Graph Explorer에서 확인합니다.

  2. 테넌트에서 모든 클레임 매핑 정책을 확인하고 정책 ObjectId를 얻으려면 다음 명령을 실행합니다.

    Get-MgPolicyClaimMappingPolicy
    
  3. 클레임 매핑 정책 및 서비스 주체의 ObjectId가 있는 경우 다음 명령을 실행합니다.

    New-MgServicePrincipalClaimMappingPolicyByRef -ServicePrincipalId <servicePrincipalId> -BodyParameter @{"@odata.id" = "https://graph.microsoft.com/v1.0/policies/claimsMappingPolicies/<claimsMappingPolicyId>"}