SAML 토큰 클레임 사용자 지정
Microsoft ID 플랫폼은 애플리케이션 갤러리에 미리 통합된 대부분의 애플리케이션에서 SSO(Single Sign-On)를 지원합니다. 사용자가 SAML 2.0 프로토콜을 사용하여 Microsoft ID 플랫폼을 통해 애플리케이션에 인증하면 토큰이 애플리케이션에 전송됩니다. 애플리케이션이 토큰의 유효성을 검사하고 사용하여 사용자 이름과 암호를 묻는 대신 사용자 로그인을 실행합니다.
이러한 SAML 토큰에는 클레임이라고 알려진 사용자에 대한 정보가 포함되어 있습니다. ‘클레임’은 해당 사용자에 대해 발급하는 토큰 내에서 ID 공급자가 사용자에 대해 나타내는 정보입니다. SAML 토큰에서 claims 데이터는 일반적으로 SAML 특성 설명에 포함됩니다. 사용자의 고유 ID는 일반적으로 이름 식별자(nameID
)라고도 하는 SAML 주체에 표시됩니다.
기본적으로 Microsoft ID 플랫폼은 사용자를 고유하게 식별할 수 있는 사용자의 사용자 이름(또는 사용자 계정 이름) 값과 함께 클레임이 포함된 SAML 토큰을 애플리케이션에 발급합니다. 또한 SAML 토큰에는 사용자의 이메일 주소, 이름 및 성을 포함하는 추가 클레임이 포함됩니다.
소유권 클레임 보기 또는 편집
SAML 토큰에서 발급된 애플리케이션에 대한 클레임을 보거나 편집하려면 다음을 수행합니다.
- 최소한 클라우드 애플리케이션 관리자로 Microsoft Entra 관리 센터에 로그인합니다.
- ID>애플리케이션>엔터프라이즈 애플리케이션>모든 애플리케이션으로 이동합니다.
- 애플리케이션을 선택하고 왼쪽 메뉴에서 Single Sign-On을 선택한 다음 특성 및 클레임 섹션에서 편집을 선택합니다.
다음과 같은 두 가지 이유로 인해 SAML 토큰에 발급된 클레임을 편집해야 할 수도 있습니다.
- 애플리케이션에서
NameIdentifier
또는nameID
클레임은 사용자 이름(또는 사용자 계정 이름) 이외의 것이어야 합니다. - 애플리케이션이 다른 클레임 URI 또는 클레임 값 집합을 요구하도록 작성되었습니다.
nameID
을 편집합니다.
이름 식별자 값 클레임을 편집하려면 다음을 수행합니다.
- 이름 식별자 값 페이지를 엽니다.
- 특성 또는 특성에 적용하려는 변환을 선택합니다. 필요에 따라
nameID
클레임에 적용할 형식을 지정할 수 있습니다.
NameID 형식
SAML 요청에 특정 형식의 NameIDPolicy
요소가 포함된 경우 Microsoft ID 플랫폼은 요청에 해당 형식을 적용합니다.
SAML 요청에 NameIDPolicy
에 대한 요소가 포함되지 않은 경우 Microsoft ID 플랫폼은 사용자가 지정한 형식으로 nameID
를 발급합니다. 형식이 지정되지 않으면 Microsoft ID 플랫폼은 선택한 클레임 원본과 연결된 기본 원본 형식을 사용합니다. 변환 결과 null 또는 잘못된 값이 생성되면 Microsoft Entra ID는 nameID
에 영구 쌍별 식별자를 보냅니다.
이름 식별자 형식 선택 드롭다운에서 다음 표의 옵션 중 하나를 선택합니다.
nameID 형식 |
설명 |
---|---|
기본값 | Microsoft ID 플랫폼이 기본 원본 형식을 사용합니다. |
Persistent | Microsoft ID 플랫폼은 Persistent 를 nameID 형식으로 사용합니다. |
메일 주소 | Microsoft ID 플랫폼은 EmailAddress 를 nameID 형식으로 사용합니다. |
Unspecified | Microsoft ID 플랫폼은 Unspecified 를 nameID 형식으로 사용합니다. |
Windows 도메인의 정규화된 이름 | Microsoft ID 플랫폼은 WindowsDomainQualifiedName 형식을 사용합니다. |
임시 nameID
도 지원되지만, 이 형식은 드롭다운에서 사용할 수 없으며 Azure 쪽에서 구성할 수 없습니다. NameIDPolicy
특성에 대한 자세한 내용은 Single Sign-on SAML 프로토콜을 참조하세요.
특성
팁
이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.
NameIdentifier
(또는 nameID
) 클레임의 원하는 소스를 선택합니다. 다음 표의 옵션 중에서 선택할 수 있습니다.
이름 | 설명 |
---|---|
Email |
사용자의 전자 메일 주소입니다. |
userprincipalName |
사용자의 UPN(사용자 계정 이름)입니다. |
onpremisessamaccountname |
온-프레미스 Microsoft Entra ID에서 동기화된 SAM 계정 이름입니다. |
objectid |
Microsoft Entra ID에 있는 사용자의 개체 ID입니다. |
employeeid |
사용자의 직원 ID입니다. |
Directory extensions |
Microsoft Entra Connect 동기화를 사용하여 온-프레미스 Active Directory에서 동기화되는 디렉터리 확장입니다. |
Extension Attributes 1-15 |
Microsoft Entra 스키마를 확장하는 데 사용되는 온-프레미스 확장 특성입니다. |
pairwiseid |
영구 형식의 사용자 식별자입니다. |
식별자 값에 대한 자세한 내용은 이 페이지의 뒷부분에 있는 원본당 유효한 ID 값을 나열하는 테이블을 참조하세요.
모든 상수(정적) 값은 모든 클레임에 할당할 수 있습니다. 다음 단계를 사용하여 상수 값을 할당합니다.
- 특성 및 클레임 블레이드에서 수정하려는 필수 클레임을 선택합니다.
- 조직에 따라 원본 특성에 따옴표 없이 상수 값을 입력하고 저장을 선택합니다. 상수 값이 표시됩니다.
디렉터리 스키마 확장
디렉터리 스키마 확장 특성을 비조건부/조건부 특성으로 구성할 수도 있습니다. 다음 단계를 사용하여 단일 또는 다중값 디렉터리 스키마 확장 특성을 클레임으로 구성합니다.
- 특성 및 클레임 블레이드에서 새 클레임을 추가하거나 기존 클레임을 편집합니다.
- 확장 속성이 정의된 애플리케이션 선택기에서 원본 애플리케이션을 선택합니다.
- 추가를 선택하여 클레임에 선택 항목을 추가합니다.
- 저장을 클릭하여 변경 내용을 커밋합니다.
특수 클레임 변환
다음 특수 클레임 변환 함수를 사용할 수 있습니다.
함수 | 설명 |
---|---|
ExtractMailPrefix() | 메일 주소 또는 사용자 계정 이름에서 도메인 접미사를 제거합니다. 이 함수는 전달되는 사용자 이름의 첫 번째 부분만 추출합니다(예: joe_smith@contoso.com 대신 "joe_smith"). |
ToLower() | 선택한 특성의 문자를 소문자로 변환합니다. |
ToUpper() | 선택한 특성의 문자를 대문자로 변환합니다. |
애플리케이션별 클레임 추가
애플리케이션 관련 클레임을 추가하려면
- 특성 및 클레임 블레이드에서 새 클레임 추가를 선택하여 사용자 클레임 관리 페이지를 엽니다.
- 클레임의 이름을 입력합니다. 값은 SAML 사양에 따라 URI 패턴을 엄격히 따를 필요는 없습니다. URI 패턴이 필요한 경우 네임스페이스 필드에 추가할 수 있습니다.
- 클레임에서 해당 값을 검색할 원본을 선택합니다. 원본 특성 드롭다운에서 사용자 특성을 선택하거나 클레임으로 내보내기 전에 사용자 특성에 변환을 적용할 수 있습니다.
그룹 클레임 추가
그룹 클레임은 앱이나 서비스 공급자가 리소스에 액세스하기 위한 권한 부여 결정을 내리는 데 사용됩니다. 그룹 클레임을 추가하려면 다음과 같이 합니다.
- 앱 등록으로 이동하여 그룹 클레임을 추가하려는 앱을 선택합니다.
- 그룹 클레임 추가를 선택합니다.
- 토큰에 포함할 그룹 유형을 선택합니다. 보안 그룹, 디렉터리 그룹 또는 특정 애플리케이션에 할당된 그룹을 추가할 수 있습니다.
- 그룹 클레임에 포함할 값을 선택한 다음 추가를 선택합니다.
클레임 변환
사용자 특성에 변환을 적용하려면
- 클레임 관리에서 클레임 원본으로 변환을 선택하여 변환 관리 페이지를 엽니다.
- 변환 드롭다운에서 함수를 선택합니다. 선택한 함수에 따라 변환에서 평가할 상수 값과 매개 변수를 제공합니다.
- 적절한 라디오 단추를 클릭하여 특성의 원본을 선택합니다.
- 드롭다운에서 특성 이름을 선택합니다.
- 원본을 다중값으로 처리는 변환을 모든 값에 적용할지 첫 번째 값에만 적용할지를 나타내는 확인란입니다. 기본적으로 변환은 다중값 클레임의 첫 번째 요소에만 적용되며, 이 확인란을 선택하면 모든 요소에 적용됩니다. 이 확인란은 다중값 특성(예:
user.proxyaddresses
)에 대해서만 사용하도록 설정됩니다. - 여러 변환을 적용하려면 변환 추가를 선택합니다. 한 클레임에 최대 2개의 변환을 적용할 수 있습니다. 예를 들어
user.mail
의 메일 접두사를 먼저 추출할 수 있습니다. 그런 다음 문자열을 대문자로 만듭니다.
다음 함수를 사용하여 클레임을 변환할 수 있습니다.
함수 | 설명 |
---|---|
ExtractMailPrefix() | 메일 주소 또는 사용자 계정 이름에서 도메인 접미사를 제거합니다. 이 함수는 전달되는 사용자 이름의 첫 번째 부분만 추출합니다. 예를 들어 joe_smith@contoso.com 이 아닌 joe_smith 입니다. |
Join() | 두 특성을 조인하여 새 값을 만듭니다. 필요에 따라 두 특성 사이에 구분 기호를 사용할 수 있습니다. nameID 클레임 변환의 경우 Join() 함수는 변환 입력에 도메인 부분이 있는 경우 특정 동작을 가집니다. 구분 기호 및 선택한 매개 변수와 결합하기 전에 입력에서 도메인 부분을 제거합니다. 예를 들어, 변환의 입력이 'joe_smith@contoso.com 이고 구분 기호가 @ 이고 매개 변수가 fabrikam.com 인 경우 이 입력 조합의 결과는 joe_smith@fabrikam.com 입니다. |
ToLowercase() | 선택한 특성의 문자를 소문자로 변환합니다. |
ToUppercase() | 선택한 특성의 문자를 대문자로 변환합니다. |
Contains() | 입력이 지정된 값과 일치하는 경우 특성 또는 상수를 출력합니다. 그렇지 않고 일치하는 항목이 없는 경우 다른 출력을 지정할 수 있습니다. 예를 들어 @contoso.com 도메인을 포함하는 경우 값이 사용자의 메일 주소에 해당하는 클레임을 내보내려고 하고, 그렇지 않으면 사용자 계정 이름을 출력하려고 합니다. 이 함수를 수행하려면 다음 값을 구성합니다. Parameter 1(input): user.email , Value: "@contoso.com" , Parameter 2 (output): user.email 및 Parameter 3 (output if there's no match): user.userprincipalname |
EndWith() | 입력이 지정된 값으로 끝나는 경우 특성 또는 상수를 출력합니다. 그렇지 않고 일치하는 항목이 없는 경우 다른 출력을 지정할 수 있습니다. 예를 들어 직원 ID가 000 (으)로 끝나는 경우 값이 사용자의 직원 ID에 해당하는 클레임을 내보내려고 하고, 그렇지 않으면 확장 특성을 출력하려고 합니다. 이 함수를 수행하려면 다음 값을 구성합니다. Parameter 1(input): user.employeeid , Value: "000" , Parameter 2 (output): user.employeeid 및 Parameter 3 (output if there's no match): user.extensionattribute1 |
StartWith() | 입력이 지정된 값으로 끝나는 경우 특성 또는 상수를 출력합니다. 그렇지 않고 일치하는 항목이 없는 경우 다른 출력을 지정할 수 있습니다. 예를 들어 국가/지역이 US 로 시작하는 경우 값이 사용자의 직원 ID에 해당하는 클레임을 내보내려고 하고, 그렇지 않으면 확장 특성을 출력하려고 합니다. 이 함수를 수행하려면 다음 값을 구성합니다. Parameter 1(input): user.country , Value: "US" , Parameter 2 (output): user.employeeid 및 Parameter 3 (output if there's no match): user.extensionattribute1 |
Extract() - 일치 후 | 지정된 값과 일치하면 부분 문자열을 반환합니다. 예를 들어, 입력 값이 Finance_BSimon 이면 일치하는 값은 Finance_ 이고 클레임의 출력은 BSimon 입니다. |
Extract() - 일치 전 | 지정된 값과 일치할 때까지 부분 문자열을 반환합니다. 예를 들어, 입력 값이 BSimon_US 이면 일치하는 값은 _US 이고 클레임의 출력은 BSimon 입니다. |
Extract() - 일치 사이 | 지정된 값과 일치할 때까지 부분 문자열을 반환합니다. 예를 들어 입력 값이 Finance_BSimon_US 이면 첫 번째 일치하는 값은 Finance_ 이고, 두 번째 일치하는 값은 _US 이고 클레임의 출력은 BSimon 입니다. |
ExtractAlpha() - 접두사 | 문자열의 접두사 알파벳 부분을 반환합니다. 예를 들어, 입력 값이 BSimon_123 이면 BSimon 을(를) 반환합니다. |
ExtractAlpha() - 접미사 | 문자열의 접미사 알파벳 부분을 반환합니다. 예를 들어, 입력 값이 123_Simon 이면 Simon 을(를) 반환합니다. |
ExtractNumeric() - 접두사 | 문자열의 접두사 숫자 부분을 반환합니다. 예를 들어, 입력 값이 123_BSimon 이면 123 을(를) 반환합니다. |
ExtractNumeric() - 접미사 | 문자열의 접미사 숫자 부분을 반환합니다. 예를 들어, 입력 값이 BSimon_123 이면 123 을(를) 반환합니다. |
IfEmpty() | 입력이 null이거나 비어 있는 경우 특성 또는 상수를 출력합니다. 예를 들어 사용자의 직원 ID가 비어 있는 경우 확장 특성에 저장된 특성을 출력하려고 합니다. 이 함수를 수행하려면 다음 값을 구성합니다. Parameter 1(input): user.employeeid , Parameter 2 (output): user.extensionattribute1 및 Parameter 3 (output if there's no match): user.employeeid |
IfNotEmpty() | 입력이 null이 아니거나 비어 있지 않으면 특성 또는 상수를 출력합니다. 예를 들어 사용자의 직원 ID가 비어 있지 않은 경우 확장 특성에 저장된 특성을 출력하려고 합니다. 이 함수를 수행하려면 다음 값을 구성합니다. Parameter 1(input): user.employeeid 및 Parameter 2 (output): user.extensionattribute1 |
Substring() - 고정 길이 | 문자열 클레임 형식에서 지정된 위치의 문자로 시작하는 부분을 추출하고 지정된 문자 수를 반환합니다. sourceClaim 은 실행해야 하는 변환의 클레임 원본입니다. StartIndex 는 이 인스턴스의 substring에 있는 0부터 시작하는 문자 위치입니다. Length 는 substring의 문자 길이입니다. 예를 들어 sourceClaim - PleaseExtractThisNow , StartIndex - 6 및 Length - 11 은 ExtractThis 의 출력을 생성합니다. |
Substring() - EndOfString | 지정된 위치의 문자부터 시작하여 문자열 클레임 형식의 부분을 추출하고, 지정된 시작 인덱스의 나머지 클레임을 반환합니다. sourceClaim 은 실행해야 하는 변환의 클레임 원본입니다. StartIndex 는 이 인스턴스의 substring에 있는 0부터 시작하는 문자 위치입니다. 예를 들어 sourceClaim - PleaseExtractThisNow 및 StartIndex - 6 은 ExtractThisNow 의 출력을 생성합니다. |
RegexReplace() | regex 기반 클레임 변환에 대한 자세한 내용은 다음 섹션을 참조하세요. |
정규식 기반 클레임 변환
다음 이미지는 첫 번째 변환 수준의 예를 보여 줍니다.
다음 표에 나열된 작업은 변환의 첫 번째 수준에 대한 정보를 제공하며 이전 이미지의 레이블에 해당합니다. 편집을 선택하여 클레임 변환 블레이드를 엽니다.
작업 | 필드 | 설명 |
---|---|---|
1 |
Transformation |
변환 옵션에서 RegexReplace() 옵션을 선택하여 정규식 기반 클레임 변환 방법을 통해 클레임을 변환합니다. |
2 |
Parameter 1 |
정규식 변환에 대한 입력입니다. 예를 들어, admin@fabrikam.com 과 같은 사용자 메일 주소가 있는 user.mail입니다. |
3 |
Treat source as multivalued |
일부 입력 사용자 특성은 다중값 사용자 특성일 수 있습니다. 선택한 사용자 특성이 여러 값을 지원하고 사용자가 변환에 여러 값을 사용하려는 경우 원본을 다중값으로 처리를 선택해야 합니다. 선택하면 모든 값이 정규식 일치에 사용되며 그렇지 않으면 첫 번째 값만 사용됩니다. |
4 |
Regex pattern |
매개 변수 1로 선택된 사용자 특성 값에 대해 평가되는 정규식입니다. 예를 들어 사용자의 이메일 주소에서 사용자 별칭을 추출하는 정규식은 (?'domain'^.*?)(?i)(\@fabrikam\.com)$ 으로 표시됩니다. |
5 |
Add additional parameter |
둘 이상의 사용자 특성을 변환에 사용할 수 있습니다. 그러면 특성 값이 정규식 변환 출력과 병합됩니다. 최대 5개의 매개 변수가 추가로 지원됩니다. |
6 |
Replacement pattern |
교체 패턴은 정규식 결과에 대한 자리 표시자를 포함하는 텍스트 템플릿입니다. 모든 그룹 이름은 {group-name} 과 같이 중괄호로 묶어야 합니다. 관리자가 다른 도메인 이름(예: xyz.com )과 함께 사용자 별칭을 사용하고 국가 이름을 병합하려고 한다고 가정해 보겠습니다. 이 경우 교체 패턴은 {country}.{domain}@xyz.com 입니다. 여기서 {country} 는 입력 매개 변수의 값이고 {domain} 은 정규식 평가의 그룹 출력입니다. 이러한 경우 예상 결과는 US.swmal@xyz.com 입니다. |
다음 이미지는 두 번째 변환 수준의 예를 보여 줍니다.
다음 표는 변환의 두 번째 수준에 대한 정보를 제공합니다. 표에 나열된 작업은 이전 이미지의 레이블에 해당합니다.
작업 | 필드 | 설명 |
---|---|---|
1 |
Transformation |
정규식 기반 클레임 변환은 첫 번째 변환으로 제한되지 않으며 두 번째 수준 변환으로도 사용할 수 있습니다. 다른 모든 변환 메서드를 첫 번째 변환으로 사용할 수 있습니다. |
2 |
Parameter 1 |
RegexReplace()가 두 번째 수준 변환으로 선택된 경우 첫 번째 수준 변환의 출력이 두 번째 수준 변환의 입력으로 사용됩니다. 변환을 적용하려면 두 번째 수준 정규식이 첫 번째 변환의 출력과 일치해야 합니다. |
3 |
Regex pattern |
정규식 패턴은 두 번째 수준 변환에 대한 정규식입니다. |
4 |
Parameter input |
두 번째 수준 변환에 대한 사용자 특성 입력입니다. |
5 |
Parameter input |
관리자는 선택한 입력 매개 변수가 더 이상 필요 없으면 삭제할 수 있습니다. |
6 |
Replacement pattern |
대체 패턴은 정규식 결과 그룹 이름, 입력 매개 변수 그룹 이름 및 정적 텍스트 값에 대한 자리 표시자를 포함하는 텍스트 템플릿입니다. 모든 그룹 이름은 {group-name} 과 같이 중괄호로 묶어야 합니다. 관리자가 다른 도메인 이름(예: xyz.com )과 함께 사용자 별칭을 사용하고 국가 이름을 병합하려고 한다고 가정해 보겠습니다. 이 경우 교체 패턴은 {country}.{domain}@xyz.com 입니다. 여기서 {country} 는 입력 매개 변수의 값이고 {domain}은 정규식 평가의 그룹 출력입니다. 이러한 경우 예상 결과는 US.swmal@xyz.com 입니다. |
7 |
Test transformation |
RegexReplace() 변환은 매개 변수 1에 대해 선택한 사용자 특성 값이 패턴 텍스트 상자에 제공된 정규식과 일치하는 경우에만 평가됩니다. 일치하지 않으면 기본 클레임 값이 토큰에 추가됩니다. 입력 매개 변수 값에 대해 정규식의 유효성을 검사하기 위해 변환 블레이드 내에서 테스트 환경을 사용할 수 있습니다. 이 테스트 환경은 더미 값에서만 작동합니다. 추가 입력 매개 변수를 사용하는 경우 매개 변수 이름이 실제 값 대신 테스트 결과에 추가됩니다. 테스트 섹션에 액세스하려면 테스트 변환을 선택합니다. |
다음 이미지는 변환 테스트의 예를 보여 줍니다.
다음 표는 변환 테스트에 대한 정보를 제공합니다. 표에 나열된 작업은 이전 이미지의 레이블에 해당합니다.
작업 | 필드 | 설명 |
---|---|---|
1 |
Test transformation |
닫기 또는 (X) 단추를 선택하여 테스트 섹션을 숨기고 블레이드에서 테스트 변환 단추를 다시 렌더링합니다. |
2 |
Test regex input |
정규식 테스트 평가에 사용되는 입력을 수락합니다. 정규식 기반 클레임 변환이 두 번째 수준 변환으로 구성된 경우 첫 번째 변환의 예상 출력이 되는 값이 제공됩니다. |
3 |
Run test |
테스트 정규식 입력이 제공되고 정규식 패턴, 교체 패턴 및 입력 매개 변수가 구성되면 테스트 실행을 선택하여 식을 평가할 수 있습니다. |
4 |
Test transformation result |
평가에 성공하면 테스트 변환의 출력이 테스트 변환 결과 레이블에 대해 렌더링됩니다. |
5 |
Remove transformation |
두 번째 수준 변환은 변환 제거를 선택하여 제거할 수 있습니다. |
6 |
Specify output if no match |
정규식 입력 값이 정규식과 일치하지 않는 매개 변수 1에 대해 구성된 경우 변환을 건너뜁니다. 이러한 경우 일치하지 않는 경우 출력 지정을 선택하여 소유권 클레임에 대한 토큰에 추가되는 대체 사용자 특성을 구성할 수 있습니다. |
7 |
Parameter 3 |
일치하는 항목이 없고 일치하지 않는 경우 출력 지정이 선택된 경우 대체 사용자 특성을 반환해야 하는 경우 드롭다운을 사용하여 대체 사용자 특성을 선택할 수 있습니다. 이 드롭다운은 매개 변수 3(일치하지 않는 경우 출력)에 대해 사용할 수 있습니다. |
8 |
Summary |
블레이드 하단에는 변환의 의미를 간단한 텍스트로 설명하는 전체 형식 요약이 표시됩니다. |
9 |
Add |
변환에 대한 구성 설정이 확인되면 추가를 선택하여 클레임 정책에 저장할 수 있습니다. 클레임 관리 블레이드에서 저장을 선택하여 변경 내용을 저장합니다. |
RegexReplace() 변환은 그룹 클레임 변환에도 사용할 수 있습니다.
RegexReplace() 변환 유효성 검사
추가 또는 테스트 실행을 선택한 후 다음 조건이 발생하면 문제에 대한 자세한 정보를 제공하는 메시지가 표시됩니다.
- 사용자 특성이 중복된 입력 매개 변수는 허용되지 않습니다.
- 사용되지 않은 입력 매개 변수가 발견되었습니다. 정의된 입력 매개 변수에는 대체 패턴 텍스트에 대한 각각의 사용법이 있어야 합니다.
- 제공된 테스트 정규식 입력이 제공된 정규식과 일치하지 않습니다.
- 교체 패턴에 대한 그룹의 원본을 찾을 수 없습니다.
SAML 토큰에 UPN 클레임 추가
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
클레임은 SAML 제한된 클레임 집합의 일부입니다. 사용자 지정 서명 키를 구성한 경우 특성 및 클레임 섹션에서 추가할 수 있습니다.
구성된 사용자 지정 서명 키가 없는 경우 SAML 제한된 클레임 집합을 참조하세요. Azure Portal에서 앱 등록을 통해 선택적 클레임으로 추가할 수 있습니다.
앱 등록에서 애플리케이션을 열고 토큰 구성을 선택한 다음 선택적 클레임 추가를 선택합니다. SAML 토큰 형식을 선택하고 목록에서 upn을 선택한 다음 추가를 클릭하여 토큰에 클레임을 추가합니다.
특성 및 클레임 섹션에서 수행된 사용자 지정은 앱 등록에서 선택적 클레임을 덮어쓸 수 있습니다.
조건에 따라 클레임 내보내기
사용자 유형 및 사용자가 속한 그룹을 기준으로 클레임의 원본을 지정할 수 있습니다.
사용자 형식은 다음과 같을 수 있습니다.
- 모든 사용자 - 모든 사용자가 애플리케이션에 액세스할 수 있습니다.
- 멤버: 테넌트의 네이티브 멤버
- 모든 게스트: Microsoft Entra ID를 사용하거나 사용하지 않는 외부 조직에서 사용자를 가져옵니다.
- Microsoft Entra 게스트: 게스트 사용자는 Microsoft Entra ID를 사용하는 다른 조직에 속합니다.
- 외부 게스트: 게스트 사용자는 Microsoft Entra ID가 없는 외부 조직에 속해 있습니다.
사용자 유형이 도움이 되는 한 가지 시나리오는 애플리케이션에 액세스하는 게스트와 직원에 대한 클레임 원본이 다른 경우입니다. 사용자가 직원인 경우 NameID은 user.email에서 가져옵니다. 사용자가 게스트인 경우 NameID은 user.extensionattribute1에서 가져옵니다.
클레임 조건을 추가하려면
- 클레임 관리에서 클레임 조건을 확장합니다.
- 사용자 유형을 선택합니다.
- 사용자가 속해야 하는 그룹을 선택합니다. 지정된 애플리케이션에 대한 모든 클레임에서 최대 50개의 고유 그룹을 선택할 수 있습니다.
- 클레임에서 해당 값을 검색할 원본을 선택합니다. 원본 특성의 드롭다운에서 사용자 특성을 선택하거나 사용자 특성에 변환을 적용할 수 있습니다. 클레임으로 내보내기 전에 디렉터리 스키마 확장을 선택할 수도 있습니다.
조건을 추가하는 순서는 중요합니다. Microsoft Entra는 먼저 원본이 Attribute
인 모든 조건을 평가한 다음 원본이 Transformation
인 모든 조건을 평가하여 클레임에서 내보낼 값을 결정합니다. 원본이 동일한 조건은 위에서 아래로 평가됩니다. 식과 일치하는 마지막 값이 클레임에서 내보냅니다. IsNotEmpty
및 Contains
와 같은 변환은 제한처럼 작동합니다.
예를 들어 Britta Simon는 Contoso 테넌트의 게스트 사용자입니다. Britta는 Microsoft Entra ID를 사용하는 다른 조직에 속해 있습니다. Fabrikam 애플리케이션에 대한 다음 구성이 주어지면 Britta가 Fabrikam에 로그인하려고 하면 Microsoft ID 플랫폼이 조건을 평가합니다.
먼저 Microsoft ID 플랫폼은 Britta의 사용자 유형이 모든 게스트인지 확인합니다. 유형이 모든 게스트이므로 Microsoft ID 플랫폼에서 클레임 원본을 user.extensionattribute1
에 할당합니다. 둘째, Microsoft ID 플랫폼은 Britta의 사용자 유형이 Microsoft Entra 게스트인지 확인합니다. 유형이 모든 게스트이므로 Microsoft ID 플랫폼에서 클레임 원본을 user.mail
에 할당합니다. 마지막으로 Britta에 대한 user.mail
값으로 클레임을 내보냅니다.
또 다른 예로 Britta Simon이 로그인을 시도하고 다음 구성이 사용되는 경우를 생각해 보세요. 모든 조건은 먼저 Attribute
의 원본으로 평가됩니다. Britta의 사용자 유형은 Microsoft Entra 게스트이므로 user.mail
이 클레임 원본으로 할당됩니다. 다음으로 변환이 평가됩니다. Britta가 게스트이기 때문에 이제 user.extensionattribute1
이 클레임의 새 원본입니다. Britta는 Microsoft Entra 게스트에 있으므로 user.othermail
이 이제 이 클레임의 원본입니다. 마지막으로 Britta에 대한 user.othermail
값으로 클레임을 내보냅니다.
마지막 예로 Britta에 구성된 user.othermail
이 없거나 비어 있는 경우 어떻게 되는지 생각해 보세요. 두 경우 모두 조건 항목이 무시되고 클레임이 대신 user.extensionattribute1
로 돌아갑니다.
고급 SAML 클레임 옵션
고급 클레임 옵션은 SAML2.0 애플리케이션이 동일한 클레임을 OIDC 토큰에 노출하도록 구성할 수 있으며 SAML2.0 및 OIDC 응답 토큰 모두에 대해 동일한 클레임을 사용하려는 애플리케이션의 경우 그 반대도 가능합니다.
클레임 관리 블레이드에서 고급 SAML 클레임 옵션 아래의 확인란을 선택하여 고급 클레임 옵션을 구성할 수 있습니다.
다음 표에는 애플리케이션에 대해 구성할 수 있는 기타 고급 옵션이 나열되어 있습니다.
옵션 | 설명 |
---|---|
발급자에 애플리케이션 ID 추가 | 발급자 클레임에 애플리케이션 ID를 자동으로 추가합니다. 이 옵션은 동일한 애플리케이션의 여러 인스턴스가 있는 경우 각 인스턴스에 대해 고유한 클레임 값을 보장합니다. 애플리케이션에 대해 사용자 지정 서명 키가 구성되지 않은 경우 이 설정은 무시됩니다. |
대상 그룹 클레임 재정의 | 애플리케이션에 전송된 대상 클레임의 재정의를 허용합니다. 제공되는 값은 유효한 절대 URI여야 합니다. 애플리케이션에 대해 사용자 지정 서명 키가 구성되지 않은 경우 이 설정은 무시됩니다. |
특성 이름 형식 포함 | 이 옵션을 선택하면 Microsoft Entra ID는 이 애플리케이션에 대한 제한, 코어 및 선택적 클레임의 이름 형식을 설명하는 NameFormat 이라는 특성을 추가합니다. 자세한 내용은 클레임 매핑 정책 유형을 참조하세요. |