ClaimsSchema
إشعار
في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في Active Directory B2C.
يحدد عنصر ClaimsSchema أنواع المطالبات التي يمكن الرجوع إليها كجزء من النهج. مخطط المطالبات هو المكان الذي تعلن فيه مطالباتك. يمكن أن تكون المطالبة عبارة عن الاسم الأول، واسم العائلة، واسم العرض، ورقم الهاتف، والمزيد. يحتوي عنصر ClaimsSchema على قائمة عناصر ClaimType . يحتوي عنصر ClaimType على سمة المعرف، وهو اسم المطالبة.
<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 على السمة التالية:
السمة | المطلوب | الوصف |
---|---|---|
المعرّف | نعم | معرّف يُستخدم لنوع المطالبة. يمكن للعناصر الأخرى استخدام هذا المعرف في السياسة. |
يحتوي عنصر ClaimType على العناصر التالية:
العنصر | الأحداث | الوصف |
---|---|---|
DisplayName | 1:1 | العنوان الذي يتم عرضه للمستخدمين على شاشات مختلفة. يمكن ترجمة القيمة. |
نوع البيانات | 1:1 | نوع المطالبة. |
DefaultPartnerClaimTypes | 0:1 | أنواع المطالبة الافتراضية للشريك؛ لاستخدامها في بروتوكول محدد. يمكن الكتابة فوق القيمة في PartnerClaimType المحدد في عناصر InputClaim أو OutputClaim . استخدم هذا العنصر لتحديد الاسم الافتراضي للبروتوكول. |
القناع | 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 القيم التالية:
النوع | الوصف |
---|---|
boolean | يمثل قيمة منطقية (true أو false ) . |
date | يمثل لحظة زمنية، وعادة ما يتم التعبير عنها كتاريخ لليوم. تتبع قيمة التاريخ اصطلاح ISO 8601. |
التاريخ/الوقت | يمثل لحظة في الوقت، يتم التعبير عنها عادةً كتاريخ ووقت من اليوم. قيمة التاريخ يتبع اصطلاح ISO 8601 أثناء وقت التشغيل ويتم تحويلها إلى UNIX وقت الحقبة عند إصدارها كمطالبة في الرمز المميز. |
المدة | يمثل فترة زمنية بالسنوات والشهور والأيام، والساعات والدقائق والثواني. تنسيق هو PnYnMnDTnHnMnS ، حيث P يشير إلى موجب، أو N للقيمة السالبة. nY هو عدد السنوات متبوعا بالحرفية Y . nMo هو عدد الأشهر متبوعا بالحرفية Mo . nD هو عدد الأيام متبوعا بالحرفية D . أمثلة: P21Y تمثل 21 عاما. P1Y2Mo يمثل سنة واحدة، وشهرين. P1Y2Mo5D يمثل سنة واحدة وشهرين وخمسة أيام. P1Y2M5DT8H5M20S يمثل سنة واحدة وشهرين وخمسة أيام وثماني ساعات وخمس دقائق و20 ثانية. |
phoneNumber | يمثل رقم هاتف. |
العدد الصحيح | يمثل العدد بين -2،147،483،648 و 2،147،483،647 |
طويل | يمثل العدد بين -9,223,372,036,854,775,808 إلى 9,223,372,036,854,775,807 |
سلسلة | يمثل النص كسلسلة من وحدات كود UTF-16. |
stringCollection | يمثل مجموعة من string . |
userIdentity | يمثل هوية المستخدم. |
userIdentityCollection | يمثل مجموعة من userIdentity . |
DefaultPartnerClaimTypes
قد تحتوي DefaultPartnerClaimTypes على العنصر التالي:
العنصر | الأحداث | الوصف |
---|---|---|
البروتوكول | 1:n | قائمة البروتوكولات مع اسم نوع مطالبة الشريك الافتراضي. |
يحتوي عنصر البروتوكول على السمات التالية:
السمة | المطلوب | الوصف |
---|---|---|
الاسم | نعم | اسم بروتوكول صالح مدعوم بواسطة Azure AD B2C. القيم المحتملة هي: OAuth1 وOAuth2 وSAML2 وOpenIdConnect. |
PartnerClaimType | نعم | اسم نوع المطالبة الذي سيتم استخدامه. |
في المثال التالي، عندما يتفاعل Identity Experience Framework مع موفر هوية SAML2 أو تطبيق الطرف المعتمد، يتم تعيين مطالبة 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>
نتيجةً لذلك، يُصدر رمز JWT الذي تم إصداره بواسطة Microsoft Azure Active Directory B2C family_name
بدلاً من اسم نوع المطالبة اللقب.
{
"sub": "6fbbd70d-262b-4b50-804c-257ae1706ef2",
"auth_time": 1535013501,
"given_name": "David",
"family_name": "Williams",
"name": "David Williams",
}
القناع
يحتوي عنصر Mask على السمات التالية:
السمة | المطلوب | الوصف |
---|---|---|
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>
يعرض إطار تجربة الهوية رقم الهاتف أثناء إخفاء الأرقام الستة الأولى:
يُكوّن المثال التالي مطالبة 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>
يعرض إطار تجربة الهوية الحرف الأول فقط من عنوان البريد الإلكتروني، واسم مجال البريد الإلكتروني:
القيد
قد يحتوي عنصر التقييد على السمة التالية:
السمة | المطلوب | الوصف |
---|---|---|
MergeBehavior | لا | الطريقة المستخدمة لدمج قيم التعداد مع نوع ClaimType في سياسة الأصل بنفس وسيلة التعرف. استخدم هذه السمة عند الكتابة فوق مطالبة محددة في السياسة الأساسية. القيم الممكنة:Append ,Prepend أوReplaceAll . Append القيمة هي مجموعة من البيانات التي يجب إلحاقها بنهاية المجموعة المحددة في النهج الأصل. Prepend القيمة هي مجموعة من البيانات التي يجب إضافتها قبل المجموعة المحددة في النهج الأصل. ReplaceAll القيمة هي مجموعة من البيانات المحددة في النهج الأصل التي يجب تجاهلها. |
يحتوي عنصر التقييد على العناصر التالية:
العنصر | الأحداث | الوصف |
---|---|---|
التعداد | 1:n | الخيارات المتاحة في واجهة المستخدم ليحددها المستخدم للمطالبة، مثل قيمة في قائمة منسدلة. |
النمط | 1:1 | التعبير النمطي المراد استخدامه. |
التعداد
يحدد عنصر Enumeration الخيارات المتاحة للمستخدم لتحديد مطالبة في واجهة المستخدم، مثل قيمة في CheckboxMultiSelect
أو DropdownSingleSelect
أو RadioSingleSelect
. بدلا من ذلك، يمكنك تحديد الخيارات المتوفرة وترجمتها باستخدام عنصر LocalizedCollections . للبحث عن عنصر من مجموعة تعداد المطالبات، استخدم تحويل مطالبات GetMappedValueFromLocalizedCollection.
يحتوي عنصر التعداد على السمات التالية:
السمة | المطلوب | الوصف |
---|---|---|
النص | نعم | سلسلة العرض التي تظهر للمستخدم في واجهة المستخدم لهذا الخيار. |
القيمة | نعم | قيمة المطالبة المرتبطة بتحديد هذا الخيار. |
SelectByDefault | لا | يشير إلى ما إذا كان يجب تحديد هذا الخيار افتراضيًا في واجهة المستخدم أم لا. القيم المحتملة: صواب أم خطأ. |
يُكوّن المثال التالي مطالبة قائمة مدن منسدلة بقيمة افتراضية معينة على 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>
قائمة المدن المنسدلة ذات القيمة الافتراضية المعينة على نيويورك:
النمط
يمكن أن يحتوي عنصر النمط على السمات التالية:
السمة | المطلوب | الوصف |
---|---|---|
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>
يقدم إطار تجربة الهوية مطالبة عنوان البريد الإلكتروني مع التحقق من صحة إدخال تنسيق البريد الإلكتروني:
UserInputType
يدعم Azure AD B2C مجموعة متنوعة من أنواع إدخال المستخدم؛ مثل: مربع النص، وكلمة المرور، والقائمة المنسدلة التي يمكن استخدامها عند إدخال بيانات المطالبة يدويًا لنوع المطالبة. يجب تحديد UserInputType عند جمع المعلومات من المستخدم باستخدام ملف تعريف فني مؤكد ذاتيا وعناصر تحكم العرض.
تحقق من العرض التوضيحي المباشر لنوع إدخال المستخدم.
عنصر UserInputType أنواع إدخال المستخدم المتوفرة:
UserInputType | نوع المطالبة المدعوم | الوصف |
---|---|---|
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.
<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>. يجب تعيين نوع إدخال المستخدم Paragraph 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>