ClaimsSchema
참고 항목
Azure Active Directory B2C에서 사용자 지정 정책은 주로 복잡한 시나리오를 해결하기 위해 설계되었습니다. 대부분의 시나리오에서 기본 제공 사용자 흐름을 사용하는 것이 좋습니다. 아직 수행하지 않았다면 Active Directory B2C에서 사용자 지정 정책 시작하기에서 사용자 지정 정책 스타터 팩에 대해 알아봅니다.
ClaimsSchema 요소는 정책의 일부로 참조할 수 있는 클레임 형식을 정의합니다. 클레임 스키마에서 클레임을 선언합니다. 클레임은 이름, 성, 표시 이름, 전화 번호 등이 될 수 있습니다. ClaimsSchema 요소에는 ClaimType 요소 목록이 포함됩니다. ClaimType 요소에는 Id 특성(클레임 이름)이 포함됩니다.
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="Id">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
<UserHelpText>Your surname (also known as family name or last name).</UserHelpText>
<UserInputType>TextBox</UserInputType>
ClaimType
ClaimType 요소에는 다음과 같은 특성이 포함됩니다.
attribute | 필수 | 설명 |
---|---|---|
ID | 예 | 클레임 형식에 사용되는 식별자입니다. 다른 요소는 정책에서 이 식별자를 사용할 수 있습니다. |
ClaimType 요소에는 다음 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
DisplayName | 1:1 | 다양한 화면에서 사용자에게 표시되는 제목입니다. 값을 지역화할 수 있습니다. |
DataType | 1:1 | 클레임의 형식입니다. |
DefaultPartnerClaimTypes | 0:1 | 지정된 프로토콜에 사용할 파트너 기본 클레임 형식입니다. InputClaim 또는 OutputClaim 요소에 지정된 PartnerClaimType에서 값을 덮어쓸 수 있습니다. 이 요소를 사용하여 프로토콜의 기본 이름을 지정합니다. |
마스크 | 0:1 | 클레임을 표시할 때 적용할 수 있는 마스킹 문자의 선택적 문자열입니다. 예를 들어 전화 번호 324-232-4343은 XXX-XXX-4343으로 마스킹할 수 있습니다. |
UserHelpText | 0:1 | 사용자가 용도를 이해하는 데 도움이 될 수 있는 클레임 유형에 대한 설명입니다. 값을 지역화할 수 있습니다. |
UserInputType | 0:1 | 클레임 형식의 클레임 데이터를 수동으로 입력할 때 사용자에게 제공해야 하는 입력 컨트롤 유형입니다. 이 페이지의 뒷부분에 정의된 사용자 입력 유형을 참조하세요. |
AdminHelpText | 0:1 | 관리자가 클레임의 용도를 파악하는 데 도움이 될 수 있는 클레임 형식의 설명입니다. |
제한 | 0:1 | 정규식(Regex) 또는 허용 가능한 값 목록과 같이 이 클레임에 대한 값 제한입니다. 값을 지역화할 수 있습니다. |
PredicateValidationReference | 0:1 | PredicateValidationsInput 요소에 대한 참조입니다. PredicateValidationReference 요소를 사용하면 올바른 형식의 데이터만 입력되도록 유효성 검사 프로세스를 수행할 수 있습니다. 자세한 내용은 조건자를 참조 하세요. |
DataType
DataType 요소는 다음 값을 지원합니다.
Type | 설명 |
---|---|
부울 값 | 부울(true 또는 false ) 값을 나타냅니다. |
date | 일반적으로 하루의 날짜로 표현되는 인스턴트 시간을 나타냅니다. 날짜 값은 ISO 8601 규칙을 따릅니다. |
dateTime | 일반적으로 날짜와 시간으로 표현된 시간의 한 순간을 나타냅니다. 날짜 값은 런타임 중에 ISO 8601 규칙을 따르며 토큰에 클레임으로 발급될 때 UNIX epoch 시간으로 변환됩니다. |
duration | 년, 월, 일, 시, 분 및 초의 시간 간격을 나타냅니다. 형식은 PnYnMnDTnHnMnS 입니다. 여기서 P 는 양수 값을, N 은 음수 값을 나타냅니다. nY 은 리터럴 뒤에 오는 연 수입니다 Y . nMo 은 리터럴 Mo 이 뒤에 잇는 월 수입니다. nD 은 리터럴 뒤에 오는 일 수입니다 D . 예: P21Y 21년을 나타냅니다. P1Y2Mo 는 1년, 2개월을 나타냅니다. P1Y2Mo5D 는 1년, 2개월, 5일을 나타냅니다. P1Y2M5DT8H5M20S 은 1년 2개월 5일 8시간 5분 20초를 나타냅니다. |
phoneNumber | 전화 번호를 나타냅니다. |
int | -2,147,483,648과 2,147,483,647 사이의 숫자를 나타냅니다. |
long | -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807 사이의 숫자를 나타냅니다. |
string | 텍스트를 UTF-16 코드 단위의 시퀀스로 나타냅니다. |
stringCollection | string 의 컬렉션을 나타냅니다. |
userIdentity | 사용자 ID를 나타냅니다. |
userIdentityCollection | userIdentity 의 컬렉션을 나타냅니다. |
DefaultPartnerClaimTypes
DefaultPartnerClaimTypes는 다음 요소를 함할 수 있습니다.
요소 | 발생 | 설명 |
---|---|---|
프로토콜 | 1:n | 기본 파트너 클레임 유형 이름이 있는 프로토콜 목록입니다. |
Protocol 요소에는 다음 특성이 포함됩니다.
attribute | 필수 | 설명 |
---|---|---|
입력 | 예 | Azure AD B2C에서 지원하는 유효한 프로토콜의 이름입니다. 가능한 값은 다음과 같습니다. OAuth1, OAuth2, SAML2, OpenIdConnect |
PartnerClaimType | 예 | 사용할 클레임 유형 이름입니다. |
다음 예제에서는 ID 경험 프레임워크가 SAML2 ID 공급자 또는 신뢰 당사자 애플리케이션 과 상호 작용할 때 성 클레임이 OpenIdConnect 및 OAuth2와 함께 매핑 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
됩니다 family_name
.
<ClaimType Id="surname">
<DisplayName>Surname</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OAuth2" PartnerClaimType="family_name" />
<Protocol Name="OpenIdConnect" PartnerClaimType="family_name" />
<Protocol Name="SAML2" PartnerClaimType="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname" />
</DefaultPartnerClaimTypes>
</ClaimType>
결과적으로 Azure AD B2C에서 발급한 JWT 토큰은 ClaimType 이름 성 대신 내보내게 됩니다family_name
.
{
"sub": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
마스크
Mask 요소에는 다음과 같은 특성이 포함됩니다.
attribute | 필수 | 설명 |
---|---|---|
Type |
예 | 클레임 마스크의 형식입니다. 가능한 값은 Simple 또는 Regex 입니다. Simple 값은 문자열 클레임의 앞부분에 단순 텍스트 마스크가 적용됨을 나타냅니다. 값은 Regex 정규식이 문자열 클레임 전체에 적용됨을 나타냅니다. Regex 값을 지정하는 경우에는 사용할 정규식과 함께 선택적 특성도 정의해야 합니다. |
Regex |
아니요 | 설정된 Regex 경우 Type 사용할 정규식을 지정합니다. |
다음 예제에서는 Simple
마스크를 사용하여 PhoneNumber 클레임을 구성합니다. 더 많은 샘플을 보려면 클레임 단순 마스크 라이브 데모를 확인하세요.
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
ID 경험 프레임워크는 처음 6자리 숫자를 숨기면서 전화 번호를 렌더링합니다.
다음 예제에서는 Regex
마스크를 사용하여 AlternateEmail 클레임을 구성합니다. 더 많은 샘플을 보려면 Regex 마스크 라이브 데모를 확인하세요.
<ClaimType Id="AlternateEmail">
<DisplayName>Please verify the secondary email linked to your account</DisplayName>
<DataType>string</DataType>
<Mask Type="Regex" Regex="(?<=.).(?=.*@)">*</Mask>
<UserInputType>Readonly</UserInputType>
</ClaimType>
ID 환경 프레임워크는 전자 메일 주소의 첫 문자와 전자 메일 도메인 이름만 렌더링합니다.
제한
Restriction 요소에는 다음 특성이 포함될 수 있습니다.
attribute | 필수 | 설명 |
---|---|---|
MergeBehavior | 아니요 | 동일한 식별자를 사용하여 부모 정책에서 ClaimType과 열거형 값을 병합하는 데 사용되는 메서드입니다. 기본 정책에 지정된 클레임을 덮어쓰는 경우 이 특성을 사용합니다. 가능한 값은 Append , Prepend 또는 ReplaceAll 입니다. 값은 Append 부모 정책에 지정된 컬렉션의 끝에 추가해야 하는 데이터 컬렉션입니다. 값은 Prepend 부모 정책에 지정된 컬렉션 앞에 추가해야 하는 데이터 컬렉션입니다. ReplaceAll 값은 상위 정책에 지정되어 있는 무시해야 하는 데이터 컬렉션입니다. |
Restriction 요소에는 다음과 같은 요소가 포함됩니다.
요소 | 발생 | 설명 |
---|---|---|
열거형 | 1:n | 사용자가 클레임을 선택하는 데 사용할 수 있는 사용자 인터페이스의 옵션(예: 드롭다운의 값)입니다. |
패턴 | 1:1 | 사용할 정규식입니다. |
열거형
열거형 요소는 사용자가 사용자 인터페이스의 클레임에 대해 선택할 수 있는 옵션(예: 값CheckboxMultiSelect
DropdownSingleSelect
, 또는 RadioSingleSelect
. 또는 LocalizedCollections 요소를 사용하여 사용 가능한 옵션을 정의하고 지역화할 수 있습니다 . 클레임 열거형 컬렉션에서 항목을 조회하려면 GetMappedValueFromLocalizedCollection 클레임 변환을 사용합니다.
열거형 요소에는 다음 특성이 포함됩니다.
attribute | 필수 | 설명 |
---|---|---|
Text | 예 | 이 옵션에 대해 사용자 인터페이스에서 사용자에게 표시되는 표시 문자열입니다. |
값 | 예 | 이 옵션 선택과 연결된 클레임 값입니다. |
SelectByDefault | 아니요 | UI에서 이 옵션을 기본적으로 선택해야 하는지 여부를 나타냅니다. 가능한 값: True 또는 False입니다. |
다음 예제에서는 기본값을 New York
로 설정하여 city 드롭다운 목록 클레임을 구성합니다. 더 많은 샘플을 보려면 클레임 제한 열거형 라이브 데모를 확인하세요.
<ClaimType Id="city">
<DisplayName>city where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
기본값이 뉴욕으로 설정된 드롭다운 도시 목록:
패턴
Pattern 요소는 다음 특성을 포함할 수 있습니다.
attribute | 필수 | 설명 |
---|---|---|
RegularExpression | 예 | 이 형식의 클레임이 유효하려면 일치해야 하는 정규식입니다. |
HelpText | 아니요 | 정규식 검사가 실패하는 경우 사용자에 대한 오류 메시지입니다. |
다음 예제에서는 정규식 입력 유효성 검사 및 도움말 텍스트를 사용하여 이메일 클레임을 구성합니다.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<DefaultPartnerClaimTypes>
<Protocol Name="OpenIdConnect" PartnerClaimType="email" />
</DefaultPartnerClaimTypes>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>TextBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
ID 환경 프레임워크는 이메일 형식 입력 유효성 검사를 사용하여 이메일 주소 클레임을 렌더링합니다.
UserInputType
Azure AD B2C는 클레임 형식의 클레임 데이터를 수동으로 입력할 때 사용할 수 있는 텍스트 상자, 암호, 드롭다운 목록 등의 다양한 사용자 입력 유형을 지원합니다. 자체 어설션된 기술 프로필 및 디스플레이 컨트롤을 사용하여 사용자로부터 정보를 수집할 때 UserInputType을 지정해야 합니다.
사용자 입력 형식의 Live 데모를 확인합니다.
Userinputtype 요소를 사용 가능한 사용자 입력 유형:
UserInputType | 지원되는 ClaimType | 설명 |
---|---|---|
CheckboxMultiSelect | string |
다중 선택 드롭다운 상자 클레임 값은 선택한 값의 쉼표 구분 기호 문자열로 표시됩니다. |
DateTimeDropdown | date , dateTime |
일, 월 및 연도를 선택하기 위한 드롭다운입니다. |
DropdownSingleSelect | string |
단일 선택 드롭다운 상자입니다. 클레임 값은 선택한 값입니다. |
EmailBox | string |
전자 메일 입력 필드입니다. |
단락 | boolean , date , dateTime , duration , int , long string |
단락 태그에만 텍스트를 표시하는 필드입니다. |
암호 | string |
암호 텍스트 상자. |
RadioSingleSelect | string |
라디오 단추의 컬렉션입니다. 클레임 값은 선택한 값입니다. |
읽기전용 | boolean , date , dateTime , duration , int , long string |
읽기 전용 텍스트 상자입니다. |
TextBox | boolean , int , phoneNumber string |
한 줄 텍스트 상자. |
TextBox
TextBox 사용자 입력 형식은 한 줄 텍스트 상자를 제공하는 데 사용됩니다.
<ClaimType Id="displayName">
<DisplayName>Display Name</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your display name.</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
EmailBox
EmailBox 사용자 입력 유형은 기본 전자 메일 입력 필드를 제공하는 데 사용됩니다.
<ClaimType Id="email">
<DisplayName>Email Address</DisplayName>
<DataType>string</DataType>
<UserHelpText>Email address that can be used to contact you.</UserHelpText>
<UserInputType>EmailBox</UserInputType>
<Restriction>
<Pattern RegularExpression="^[a-zA-Z0-9.+!#$%&'+^_`{}~-]+(?:\.[a-zA-Z0-9!#$%&'+^_`{}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" HelpText="Please enter a valid email address." />
</Restriction>
</ClaimType>
암호
암호 사용자 입력 형식은 사용자가 입력한 암호를 기록하는 데 사용됩니다.
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
DateTimeDropdown 사용자 입력 형식은 일, 월 및 연도를 선택하는 드롭다운 집합을 제공하는 데 사용됩니다. Predicates 및 PredicateValidations 요소를 사용하여 최소 및 최대 날짜 값을 제어할 수 있습니다. 자세한 내용은 조건자 및 PredicateValidations의 날짜 범위 구성 섹션을 참조하세요.
<ClaimType Id="dateOfBirth">
<DisplayName>Date Of Birth</DisplayName>
<DataType>date</DataType>
<UserHelpText>The date on which you were born.</UserHelpText>
<UserInputType>DateTimeDropdown</UserInputType>
</ClaimType>
RadioSingleSelect
RadioSingleSelect 사용자 입력 형식은 사용자가 하나의 옵션을 선택할 수 있도록 하는 라디오 단추 컬렉션을 제공하는 데 사용됩니다.
<ClaimType Id="color">
<DisplayName>Preferred color</DisplayName>
<DataType>string</DataType>
<UserInputType>RadioSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Blue" Value="Blue" SelectByDefault="false" />
<Enumeration Text="Green " Value="Green" SelectByDefault="false" />
<Enumeration Text="Orange" Value="Orange" SelectByDefault="true" />
</Restriction>
</ClaimType>
DropdownSingleSelect
DropdownSingleSelect 사용자 입력 유형은 사용자가 옵션 하나를 선택할 수 있는 드롭다운 상자를 제공하는 데 사용됩니다.
<ClaimType Id="city">
<DisplayName>City where you work</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Bellevue" Value="bellevue" SelectByDefault="false" />
<Enumeration Text="Redmond" Value="redmond" SelectByDefault="false" />
<Enumeration Text="New York" Value="new-york" SelectByDefault="true" />
</Restriction>
</ClaimType>
CheckboxMultiSelect
CheckboxMultiSelect 사용자 입력 유형은 사용자가 여러 옵션을 선택할 수 있는 확인란 모음을 제공하는 데 사용됩니다.
<ClaimType Id="languages">
<DisplayName>Languages you speak</DisplayName>
<DataType>string</DataType>
<UserInputType>CheckboxMultiSelect</UserInputType>
<Restriction>
<Enumeration Text="English" Value="English" SelectByDefault="true" />
<Enumeration Text="France " Value="France" SelectByDefault="false" />
<Enumeration Text="Spanish" Value="Spanish" SelectByDefault="false" />
</Restriction>
</ClaimType>
읽기전용
Readonly 사용자 입력 형식은 클레임 및 값을 표시하는 읽기 전용 필드를 제공하는 데 사용됩니다.
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
단락
단락 사용자 입력 형식은 단락 태그에만 텍스트를 표시하는 필드를 제공하는 데 사용됩니다. 예를 들어 <p>text</p>를 사용할 수 있습니다. 자체 어설션된 기술 프로필의 단락 사용자 입력 형식 OutputClaim
은 특성 false
(기본값)을 Required
설정해야 합니다. 이 사용자 입력 형식은 자체 어설션된 페이지 레이아웃에서만 지원됩니다. 통합 로그인 및 등록 페이지(unifiedssp)가 제대로 표시되지 않을 수 있습니다.
<ClaimType Id="responseMsg">
<DisplayName>Error message: </DisplayName>
<DataType>string</DataType>
<AdminHelpText>A claim responsible for holding response messages to send to the relying party</AdminHelpText>
<UserHelpText>A claim responsible for holding response messages to send to the relying party</UserHelpText>
<UserInputType>Paragraph</UserInputType>
</ClaimType>