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 要素には、次の属性が含まれています。
属性 | 必須 | 内容 |
---|---|---|
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 | 管理者がその目的を理解するのに役立つ要求の種類の説明。 |
Restriction | 0:1 | 正規表現 (Regex) または許容される値の一覧など、この要求に対する値の制限。 値をローカライズすることができます。 |
PredicateValidationReference | 0:1 | PredicateValidationsInput要素への参照。 PredicateValidationReference要素を使用すると、適切な形式のデータのみが入力されていることを確認する検証プロセスを実できます。 詳細については、述語を参照してください。 |
DataType
DataType 要素は次の値をサポートします。
Type | Description |
---|---|
boolean | ブール値 (true または false ) を表します。 |
date | 特定の時点を表します。通常は日付で表されます。 date の値は ISO 8601 規則に準拠します。 |
dateTime | 通常、日付や時刻として表現される瞬間を表します。 日付の値は、実行時に ISO 8601 規則に従い、要求としてトークンに発行された場合に UNIX エポック時間に変換されます。 |
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には次の要素が含まれることがあります。
要素 | 発生回数 | 説明 |
---|---|---|
Protocol | 1:n | プロトコルとその既定のパートナー要求種類の名前一覧。 |
Protocol 要素には、次の属性が含まれています。
属性 | 必須 | 内容 |
---|---|---|
件名 | はい | Azure AD B2C によってサポートされている有効なプロトコルの名前。 指定できる値: OAuth1、OAuth2、SAML2、OpenIdConnect。 |
PartnerClaimType | はい | 使用する要求種類の名。 |
次の例で、Identity Experience Framework は SAML2 id プロバイダーまたは証明書利用者アプリケーションと相互作用するときに、 surname要求がhttp://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
にマップされ、OpenIdConnect と OAuth2 とともに、要求は、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 名 surname ではなく family_name
が出力されます。
{
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
マスク
マスク 要素には、次の属性が含まれています。
属性 | 必須 | Description |
---|---|---|
Type |
はい | 要求マスクの種類です。 指定できる値: Simple または Regex 。 Simple 値は、単純なテキスト マスクが要求の文字列の先頭部分に適用されることを示します。 Regex 値は、正規表現が全体として、要求の文字列に適用されることを示します。 Regex 値が指定されている場合、オプショナルな属性も正規表現で定義することが必要となります。 |
Regex |
いいえ | Type が Regex に設定されている場合、使用される正規表現を指定します。 |
次の例では PhoneNumber 要求を Simple
マスクで構成します。 その他のサンプルについては、要求の簡単なマスクに関するライブ デモをご覧ください。
<ClaimType Id="PhoneNumber">
<DisplayName>Phone Number</DisplayName>
<DataType>string</DataType>
<Mask Type="Simple">XXX-XXX-</Mask>
<UserHelpText>Your telephone number.</UserHelpText>
</ClaimType>
Identity Experience Framework では、最初の 6 桁の数字を非表示し、電話番号を表示します。
次の例では AlternateEmail 要求を Regex
マスクで構成します。 その他のサンプルについては、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>
Identity Experience Framework では、電子メールアドレスと電子メールのドメイン名の最初の文字のみを表示します。
Restriction
制限要素は、次の属性を含めることがあります。
属性 | 必須 | 説明 |
---|---|---|
MergeBehavior | いいえ | 同じ識別子を持つ親ポリシー内の ClaimType に列挙値をマージするために使用するメソッド。 基本ポリシーで指定された要求を上書きする場合は、この属性を使用します。 指定できる値: Append 、Prepend 、または ReplaceAll 。 Append 値は、親ポリシーで指定したコレクションの末尾に追加する必要があるデータのコレクション。 Prepend 値は、親ポリシーで指定したコレクションの前に追加する必要があるデータのコレクション。 ReplaceAll 値が無視される親ポリシーで指定されたデータのコレクション。 |
制限 要素には、次の要素が含まれています。
要素 | 発生回数 | 説明 |
---|---|---|
列挙 | 1:n | ドロップダウン リストの値など、要求に指定するオプションを選択するためにユーザーのユーザー インターフェイスで使用可能なオプションです。 |
Pattern | 1:1 | 使用できる正規表現。 |
列挙
Enumeration 要素は、ユーザーが要求についてユーザー インターフェイスで選択可能なオプション (CheckboxMultiSelect
、DropdownSingleSelect
、または RadioSingleSelect
の値など) を定義します。 または、LocalizedCollections 要素を使用して、使用可能なオプションを定義してローカライズすることもできます。 要求 Enumeration コレクションから項目を検索するには、GetMappedValueFromLocalizedCollection 要求変換を使用します。
列挙型要素には、次の属性が含まれています。
属性 | 必須 | 説明 |
---|---|---|
Text | はい | このオプションのユーザー インターフェイスでユーザーに表示される表示文字列。 |
Value | はい | このオプションの選択に関連付けられている要求の値。 |
SelectByDefault | いいえ | このオプションが既定で UI で選択するかどうかを示します。 指定できる値True または False。 |
次の例では、市区町村のドロップダウン リストの要求を設定し、既定値を New York
に設定します。 その他のサンプルについては、要求の制限リストに関するライブ デモをご覧ください。
<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
パターン要素には、次の属性が含まれることがあります。
属性 | 必須 | 説明 |
---|---|---|
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>
Identity Experience Framework は、電子メールの入力検証の形式を表示します。
UserInputType
Azure AD B2C では、さまざまなクレームの種類の要求データを手動で入力するときに使用できるテキスト ボックス、パスワード、およびドロップダウン リストなど、ユーザー入力の種類をサポートしています。 セルフ アサートの技術プロファイルおよび表示コントロールを使用してユーザーから情報を収集する時に UserInputType を指定する必要があります。
ユーザー入力の種類に関するライブ デモをご覧ください。
UserInputType 要素で使用できるユーザー入力の種類:
UserInputType | サポートされる ClaimType | 説明 |
---|---|---|
CheckboxMultiSelect | string |
複数選択ドロップダウン ボックス。 要求の値は、選択された値のコンマ区切り文字列で表されます。 |
DateTimeDropdown | date , dateTime |
日、月、および年を選択するドロップダウン。 |
DropdownSingleSelect | string |
単一選択ドロップダウン ボックス。 要求の値は、選択された値です。 |
EmailBox | string |
電子メールの入力フィールド。 |
段落 | boolean 、 date 、 dateTime 、 duration 、 int 、 long 、 string |
段落タグ内のテキストのみを表示するフィールド。 |
Password | string |
パスワード テキスト ボックス。 |
RadioSingleSelect | string |
ラジオ ボタンのコレクション。 要求の値は、選択された値です。 |
Readonly | boolean 、 date 、 dateTime 、 duration 、 int 、 long 、 string |
読み取り専用テキスト ボックス。 |
TextBox | boolean 、 int 、 phoneNumber 、 string |
1 行のテキスト ボックス。 |
TextBox
TextBoxユーザー入力の種類が 1 行のテキスト ボックスを表示するために使用します。
<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>
Password
パスワードユーザー入力の種類は、ユーザーが入力したパスワードを記録するために使用します。
<ClaimType Id="password">
<DisplayName>Password</DisplayName>
<DataType>string</DataType>
<UserHelpText>Enter password</UserHelpText>
<UserInputType>Password</UserInputType>
</ClaimType>
DateTimeDropdown
DateTimeDropdownユーザー入力の種類は、日、月、および年を選択するドロップダウン リストのセットを提供するために使用します。 述語および 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ユーザー入力の種類はユーザーが 1 つのオプションを選択できるようラジオ ボタンのコレクションを提供するために使用します。
<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ユーザー入力の種類はユーザーが 1 つのオプションを選択できるようドロップダウンボックスを提供するために使用します。
<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
Readonlyユーザー入力の種類は、要求と値を表示する読み取り専用フィールドを提供するために使用します。
<ClaimType Id="membershipNumber">
<DisplayName>Membership number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your membership number (read only)</UserHelpText>
<UserInputType>Readonly</UserInputType>
</ClaimType>
段落
段落ユーザー入力の種類は、段落タグ内のテキストだけを表示するフィールドを提供するために使用します。 たとえば、 <p>テキスト</p>。 セルフアサート技術プロファイルの段落ユーザー入力の種類 OutputClaim
は、Required
属性 false
(既定値) を設定する必要があります。 このユーザー入力の種類は、セルフアサート ページ レイアウトでのみサポートされます。 統合サインインページとサインアップ ページ (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>