تحويلات مطالبات السلسلة

توفر هذه المقالة أمثلة لاستخدام سلسلة تحويلات المطالبات لمخطط إطار عمل تجربة الهوية في Microsoft Azure Active Directory B2C (Azure AD B2C). لمزيد من المعلومات، راجع تحويلات المطالبات.

تأكيد أن تكون المطالبات في السلسلة متكافئة (AssertStringClaimsAreEqual)

مقارنة مطالبتين، وطرح استثناء إذا لم يكونا متساويين وفقاً لإدخال المقارنة المحددة inputClaim1 وinputClaim2 وstringComparison.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputClaim1 سلسلة نوع المطالبة الأولى، الذي يجب مقارنته.
مطالبة إدخال inputClaim2 سلسلة نوع المطالبة الثانية، التي يجب مقارنتها.
InputParameter stringComparison سلسلة مقارنة السلسلة، واحدة من القيم: ترتيبي، OrdinalIgnoreCase.

يتم تنفيذ تحويل مطالبات AssertStringClaimsAreEqual دائماً من ملف تعريف فني التحقق من الصحة الذي يسمى من قبل ملف تعريف فني ذاتي التأكيد، أو DisplayControl. بيانات التعريف UserMessageIfClaimsTransformationStringsAreNotEqual لملف تعريف فني ذي تأكيد ذاتي والتي تتحكم برسالة الخطأ التي يتم تقديمها للمستخدم. يمكن ترجمة رسائل الخطأ

Diagram shows how to use the assert string claims are equal claims transformation.

مثال على AssertStringClaimsAreEqual

يمكنك استخدام تحويل المطالبات هذا للتأكد من أن هناك مطالبتين لهما نفس القيمة. إذا لم يكن الأمر كذلك، فسيتم طرح رسالة خطأ. يتحقق المثال التالي من أن المطالبة strongAuthenticationEmailAddress تساوي المطالبة email. وإلا يتم طرح رسالة خطأ.

<ClaimsTransformation Id="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" TransformationMethod="AssertStringClaimsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="strongAuthenticationEmailAddress" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
  </InputParameters>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • معلمات الإدخال:
    • stringComparison: ordinalIgnoreCase
  • النتيجة: تم طرح الخطأ

استدعاء تحويل مطالبات AssertStringClaimsAreEqual

يستدعي ملف التعريف التقني الخاص بالتحقق من صحة login-NonInteractiveتحويل مطالباتAssertEmailAndStrongAuthenticationEmailAddressAreEqual.

<TechnicalProfile Id="login-NonInteractive">
  ...
  <OutputClaimsTransformations>
    <OutputClaimsTransformation ReferenceId="AssertEmailAndStrongAuthenticationEmailAddressAreEqual" />
  </OutputClaimsTransformations>
</TechnicalProfile>

يستدعي ملف التعريف التقني ذو التأكيد الذاتي ملف التعريف التقني لتسجيل الدخول غير التفاعلي للتحقق من الصحة.

<TechnicalProfile Id="SelfAsserted-LocalAccountSignin-Email">
  <Metadata>
    <Item Key="UserMessageIfClaimsTransformationStringsAreNotEqual">Custom error message the email addresses you provided are not the same.</Item>
  </Metadata>
  <ValidationTechnicalProfiles>
    <ValidationTechnicalProfile ReferenceId="login-NonInteractive" />
  </ValidationTechnicalProfiles>
</TechnicalProfile>

BuildUri

إنشاء وقت استنادًا إلى رابط URI لكلمات مرور تستخدم مرة واحدة ولفترة زمنية محدودة (TOTP). يعد معرف الموارد المنتظم (URI) هو مزيج من المعرّف الفريد للمستخدم، مثل عنوان البريد الإلكتروني، ومفتاح سري. يتم تحويل URI لاحقًا إلى رمز الاستجابة السريعة الذي يتم تقديمه للمستخدم. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال path سلسلة المعرّف الفريد للمستخدم، مثل عنوان البريد الإلكتروني أو اسم المستخدم أو رقم الهاتف.
مطالبة إدخال الاستعلام السري سلسلة المفتاح السري لكلمة مرور تستخدم مرة واحدة ولفترة زمنية محدودة TOTP.
InputParameter scheme سلسلة جزء المخطط من معرّف الموارد المنتظم URI. على سبيل المثال، otpauth
InputParameter مضيف سلسلة جزء المخطط من معرّف الموارد المنتظم URI. على سبيل المثال، totp
InputParameter مُصدر الاستعلام سلسلة الجزء المُصدر من URI. على سبيل المثال، {AuthenticatorIssuer}
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

مثال على BuildUri

يُنشئ تحويل المطالبات التالي رابط URI لكلمات مرور تستخدم مرة واحدة ولفترة زمنية محدودة (TOTP) والذي سيُعرض في شفرة الاستجابة السريعة أو في ارتباط داخلي.

<ClaimsTransformation Id="CreateUriString" TransformationMethod="BuildUri">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="uriLabel" TransformationClaimType="path" />
    <InputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="query.secret" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="scheme" DataType="string" Value="otpauth" />
    <InputParameter Id="host" DataType="string" Value="totp" />
    <InputParameter Id="query.issuer" DataType="string" Value="{AuthenticatorIssuer}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="qrCodeContent" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • مسار: emily@fabrikam.com
    • الاستعلام السري: fay2lj7ynpntjgqa
  • معلمات الإدخال:
    • مخطط: otpauth
    • مضيف: totp
    • مُصدر الاستعلام: {AuthenticatorIssuer}
  • مطالبات الإخراج:
    • outputClaim: otpauth://totp/Contoso%20demo:emily@fabrikam.com?secret=fay2lj7ynpntjgqa&issuer=Contoso+demo

ChangeCase

إن تغيير حالة الأحرف للمطالبة المقدمة إلى أحرف صغيرة أو أحرف كبيرة اعتمادًا على العامل. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputClaim1 سلسلة المطالبة التي ستتغير.
InputParameter toCase سلسلة إحدى القيم التالية: LOWER أو UPPER.
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

مثال على ChangeCase

يُغير تحويل المطالبة التالية مطالبة البريد الإلكتروني إلى حالة أقل.

<ClaimsTransformation Id="ChangeToLower" TransformationMethod="ChangeCase">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim1" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="toCase" DataType="string" Value="LOWER" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • البريد الإلكتروني: SomeOne@contoso.com
  • معلمات الإدخال:
    • toCase: LOWER
  • مطالبات الإخراج:
    • البريد الإلكتروني: someone@contoso.com

CompareClaims

تحديد ما إذا كانت مطالبة سلسلة واحدة تساوي مطالبة أخرى. النتيجة هي مطالبة منطقية جديدة بقيمة true أو false. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputClaim1 سلسلة نوع المطالبة الأولى، التي يجب مقارنتها.
مطالبة إدخال inputClaim2 سلسلة نوع المطالبة الثاني، الذي ينبغي مقارنته.
InputParameter عامل التشغيل سلسلة القيم الممكنة: EQUAL أو NOT EQUAL.
InputParameter ignoreCase سلسلة قم بتحديد ما إذا كان ينبغي لهذه المقارنة تجاهل حالة أحرف السلاسل والتي تتم مقارنتها.
OutputClaim الإخراج boolean تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

مثال على CompareClaims

استخدم تحويل المطالبات هذا للتحقق مما إذا كانت المطالبة مساوية لمطالبة أخرى. يتحقق تحويل المطالبات التالي ما إذا كانت قيمة مطالبة البريد الإلكتروني مساوية للمطالبة Verified.Email.

<ClaimsTransformation Id="CheckEmail" TransformationMethod="CompareClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="Email" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="Verified.Email" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="SameEmailAddress" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim1: someone@contoso.com
    • inputClaim2: someone@outlook.com
  • معلمات الإدخال:
    • عامل التشغيل: الخاص بـ NOT EQUAL
    • ignoreCase: صحيح
  • مطالبات الإخراج:
    • outputClaim: صحيح

CompareClaimToValue

قم بتحديد ما إذا كانت قيمة المطالبة تساوي قيمة معلمة الإدخال. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputClaim1 سلسلة نوع المطالبة، والذي يجب مقارنته.
InputParameter عامل التشغيل سلسلة القيم الممكنة: EQUAL أو NOT EQUAL.
InputParameter compareTo سلسلة مقارنة السلسلة، واحدة من القيم: ترتيبي، OrdinalIgnoreCase.
InputParameter ignoreCase سلسلة قم بتحديد ما إذا كان ينبغي لهذه المقارنة تجاهل حالة أحرف السلاسل والتي تتم مقارنتها.
OutputClaim الإخراج boolean تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

مثال على CompareClaimToValue

استخدم تحويل المطالبات هذا للتحقق ما إذا كانت المطالبة تساوي قيمة حددتها. على سبيل المثال، يتحقق تحويل المطالبات التالي ما إذا كانت قيمة مطالبة termsOfUseConsentVersion مساوية للمطالبة V2.

<ClaimsTransformation Id="IsTermsOfUseConsentRequiredForVersion" TransformationMethod="CompareClaimToValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim1" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="compareTo" DataType="string" Value="V2" />
    <InputParameter Id="operator" DataType="string" Value="NOT EQUAL" />
    <InputParameter Id="ignoreCase" DataType="string" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim1: v1
  • معلمات الإدخال:
    • compareTo: V2
    • عامل التشغيل: الخاص بـ NOT EQUAL
    • ignoreCase: صحيح
  • مطالبات الإخراج:
    • outputClaim: صحيح

CopyClaimIfPredicateMatch

نسخ قيمة المطالبة إلى مطالبة أخرى إذا تطابقت قيمة مطالبة الإدخال مع مطالبة الناتج المُقيمة. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع المطالبة، الذي سيتم نسخه.
OutputClaim الإخراج سلسلة وقد تم استدعاء نوع المطالبة الذي يتم إنتاجه بعد تحويل المطالبات هذا. يتم التحقق من قيمة المطالبة بالإدخال مقابل المطالبة المُقيمة.

مثال على CopyClaimIfPredicateMatch

يحاول المثال التالي نسخ قيمة المطالبة signInName إلى مطالبة phoneNumber. لن تُنسخ القيمة في هذا المثال. المطالبة signInName ليست بالتنسيق المتوقع، رقم الهاتف. للحصول على نموذج كامل، راجع رقم الهاتف أو أرسل بريد إلكترونيإلى سياسة الحزمة الأولية لتسجيل الدخول.

<ClaimsTransformation Id="SetPhoneNumberIfPredicateMatch" TransformationMethod="CopyClaimIfPredicateMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="signInName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: bob@contoso.com
  • مطالبات الإخراج:
    • outputClaim: لن يتم تغيير قيمة مطالبة الناتج عن قيمتها الأصلية.

مثال على CopyClaimIfPredicateMatch الذي يطابق التقييم

في هذا المثال، سينسخ تحويل المطالبات القيمة. المطالبة signInName بالتنسيق الصحيح، رقم الهاتف.

  • مطالبات الإدخال:
    • inputClaim: +11234567890
  • مطالبات الإخراج:
    • outputClaim: +11234567890

CreateOtpSecret

إنشاء مطالبة سلسلة TOTP. مُخرج تحويل المطالبات هذا هو البيانات السرية لـ TOTP التي يتم تخزينها في وقت لاحق في حساب المستخدم لدليل Azure النشط ومشاركتها مع التطبيق Microsoft Authenticator. يستخدم التطبيق المصدّق المفتاح لإنشاء رموز TOTP عندما يحتاج المستخدم إلى المرور عبر مصادقة متعددة العوامل (MFA). يستخدم النهج المفتاح للتحقق من رمز كلمة مرور تستخدم مرة واحدة ولفترة زمنية محدودة TOTP التي يقدمها المستخدم.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي أُنتجت بعد تحويل المطالبة هذا بالإضافة إلى رمز كلمات مرور تستخدم مرة واحدة ولفترة زمنية محدودة (TOTP) الذي تم إنشاؤه.

مثال على CreateOtpSecret

يُنشئ تحويل المطالبات التالي سرًا لمصدّق كلمات مرور تستخدم مرة واحدة ولفترة زمنية محدودة (TOTP) متعدد العوامل.

<ClaimsTransformation Id="CreateSecret" TransformationMethod="CreateOtpSecret">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="secretKey" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإخراج:
    • outputClaim: hmlcmd4ph6fph64c

CreateRandomString

إنشاء سلسلة عشوائية باستخدام مُنشئ الأرقام العشوائي. إذا كان مُنشئ الأرقام العشوائي من النوع integer، فقد يتم توفير معلمة بذرة وعدد أقصى اختياريًّا. تسمح معلمة تنسيق سلسلة اختيارية بأن يتم تنسيق الناتج حتى يتم استخدامه، تحدد معلمة base64 اختيارية ما إذا كان الناتج هو base64 المشفرة randomGeneratorType [guid, integer] outputClaim (String).

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
InputParameter randomGeneratorType سلسلة تحديد القيمة العشوائية التي سيتم إنشاؤها GUID، (معرف فريد عمومي ID) أو INTEGER (رقم).
InputParameter stringFormat سلسلة [اختياري] تنسيق القيمة العشوائية.
InputParameter قاعدة 64 boolean [اختياري] تحويل القيمة العشوائية إلى base64. إذا تم تطبيق تنسيق السلسلة، يتم ترميز القيمة بعد تنسيق السلسلة إلى base64.
InputParameter maximumNumber العدد الصحيح [اختياري] لـ INTEGER randomGeneratorType only. حدّد العدد الأقصى.
InputParameter seed العدد الصحيح [اختياري] لـ INTEGER randomGeneratorType only. حدد القيم الأولية للقيمة العشوائية. ملاحظة: تنتج القيمة الأولية نفسها نفس التسلسل من الأرقام العشوائية.
OutputClaim الإخراج سلسلة تم استدعاء المطالبات التي ستُنتج بعد تحويل المطالبات هذا. القيمة العشوائية.

مثال على CreateRandomString

المثال التالي بإنشاء معرف فريد عمومي ID. يتم استخدام تحويل المطالبات هذا لإنشاء UPN عشوائي (اسم مبدأ المستخدم).

<ClaimsTransformation Id="CreateRandomUPNUserName" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="GUID" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • معلمات الإدخال:
    • randomGeneratorType:GUID
  • مطالبات الإخراج:
    • outputClaim: bc8bedd2-aaa3-411e-bdee-2f1810b73dfc

مثال على CreateRandomString الذي يُنشئ قيمة رقمية

يقوم المثال التالي بإنشاء قيمة عشوائية عدد صحيح بين 0 و 1000. يتم تنسيق القيمة إلى OTP_{قيمة عشوائية}.

<ClaimsTransformation Id="SetRandomNumber" TransformationMethod="CreateRandomString">
  <InputParameters>
    <InputParameter Id="randomGeneratorType" DataType="string" Value="INTEGER" />
    <InputParameter Id="maximumNumber" DataType="int" Value="1000" />
    <InputParameter Id="stringFormat" DataType="string" Value="OTP_{0}" />
    <InputParameter Id="base64" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="randomNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • معلمات الإدخال:
    • randomGeneratorType: INTEGER
    • اmaximumNumber: 1000
    • stringFormat: OTP_{0}
    • base64: خطأ
  • مطالبات الإخراج:
    • outputClaim: OTP_853

CreateStringClaim

إنشاء مطالبة سلسلة من معلمة الإدخال المتوفرة في التحويل. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
InputParameter قيمة سلسلة سيتم تعيين السلسلة. تدعم معلمة الإدخال هذه تعبيرات تحويل مطالبات السلسلة.
OutputClaim createdClaim سلسلة تم استدعاء المطالبة التي أُنتجت بعد تحويل المطالبات هذا، مع تحديد القيمة في معلمة الإدخال.

مثال على CreateStringClaim

يُنشئ تحويل المطالبات التالي قيمة سلسلة مع شروط الخدمة.

<ClaimsTransformation Id="CreateTermsOfService" TransformationMethod="CreateStringClaim">
  <InputParameters>
    <InputParameter Id="value" DataType="string" Value="Contoso terms of service..." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="TOS" TransformationClaimType="createdClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • معلمة الإدخال:
    • القيمة: شروط خدمة Contoso...
  • مطالبات الإخراج:
    • createdClaim: تحتوي مطالبة TOS على قيمة "شروط الخدمة Contoso...".

FormatLocalizedString

تنسيق مطالبات متعددة وفقًا لسلسلة التنسيق المترجمة المتوفرة. يستخدم هذا التحويل أسلوب String.Format C#. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
InputClaims سلسلة مجموعة مطالبات الإدخال التي تعمل كتنسيق سلسلة {0}،{1}،{2} معلمات.
InputParameter stringFormatId سلسلة StringIdسلسلة مترجمة.
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

إشعار

لا يوجد حد لعدد مطالبات الإدخال التي يمكنك تحديدها، ولكن الحد الأقصى لطول السلسلة المنسقة هو 4000.

لاستخدام تحويل مطالبات FormatLocalizedString:

  1. قم بتعريف سلسلة الترجمة، وربطها بملف تعريف شخصي فني مؤكد ذاتيًّا.
  2. ElementTypeيجب تعيين العنصر إلى LocalizedStringFormatLocalizedStringTransformationClaimType.
  3. StringIdهو معرف فريد تقوم بتعريفه، واستخدامه لاحقًا في تحويل المطالبات. stringFormatId
  4. في تحويل المطالبات، حدد قائمة المطالبات التي سيتم تعيينها باستخدام السلسلة المترجمة. ثم قم بتعيين stringFormatId إلى StringId عنصر السلسلة المترجمة.
  5. في ملف تعريف فني مؤكد ذاتيًّا، أو ناتج التحكم في العرض أو تحويل مطالبات الناتج، قم بالإشارة إلى تحويل المطالبات.

مثال على FormatLocalizedString

ينشئ المثال التالي رسالة خطأ عندما يكون حساب بالفعل في الدليل. يعرف المثال السلاسل المترجمة للغة الإنجليزية (افتراضي) والإسبانية.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">The email '{0}' is already an account in this organization. Click Next to sign in with that account.</LocalizedString>
      </LocalizedStrings>
    </LocalizedResources>
  <LocalizedResources Id="api.localaccountsignup.es">
    <LocalizedStrings>
      <LocalizedString ElementType="FormatLocalizedStringTransformationClaimType" StringId="ResponseMessge_EmailExists">Este correo electrónico "{0}" ya es una cuenta de esta organización. Haga clic en Siguiente para iniciar sesión con esa cuenta.</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

تحويل المطالبات بإنشاء رسالة استجابة استنادًا إلى السلسلة المترجمة. تحتوي الرسالة على عنوان البريد الإلكتروني للمستخدم المضمن في ResponseMessge_EmailExistsاللدغة المترجمة.

<ClaimsTransformation Id="SetResponseMessageForEmailAlreadyExists" TransformationMethod="FormatLocalizedString">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormatId" DataType="string" Value="ResponseMessge_EmailExists" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: sarah@contoso.com
  • معلمات الإدخال:
    • stringFormat: ResponseMessge_EmailExists
  • مطالبات الإخراج:
    • outputClaim: البريد الإلكتروني sarah@contoso.com ' 'هو بالفعل حساب في هذه المؤسسة. حدد التالي لتسجيل الدخول باستخدام هذا الحساب.

FormatStringClaim

تنسيق مطالبة وفقًا لسلسلة التنسيق المتوفرة. يستخدم هذا التحويل أسلوب String.Format C#. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة تعمل المطالبة كمعلمة تنسيق سلسلة {0}.
InputParameter stringFormat سلسلة نموذج السلسلة، بما في ذلك{0} المعلمة. تدعم معلمة الإدخال هذه تعبيرات تحويل مطالبات السلسلة.
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

إشعار

الحد الأقصى لحجم تنسيق السلسلة المسموح به هو 4000.

مثال على FormatStringClaim

استخدم تحويل المطالبات هذا لتنسيق أي سلسلة بمعلمة {0} واحدة. يقوم المثال التالي بإنشاء userPrincipalName. موفّر كافة ملفات التعريف الفنية والتي توفر الهوية الاجتماعية، مثل Facebook-OAUTH استدعاء CreateUserPrincipalName لإنشاء userPrincipalName.

<ClaimsTransformation Id="CreateUserPrincipalName" TransformationMethod="FormatStringClaim">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="upnUserName" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="cpim_{0}@{RelyingPartyTenantId}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="userPrincipalName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: 5164db16-3eee-4629-bfda-dcc3326790e9
  • معلمات الإدخال:
    • نموذج السلسلة: cpim_{0}@{RelyingPartyTenantId}
  • مطالبات الإخراج:
    • outputClaim: cpim_5164db16-3eee-4629-bfda-dcc3326790e9@b2cdemo.onmicrosoft.com

FormatStringMultipleClaims

تنسيق مطالبتين وفقًا لسلسلة التنسيق المتوفرة. يستخدم هذا التحويل أسلوب String.Format C#. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputClaim1 سلسلة تعمل المطالبة كمعلمة تنسيق سلسلة {0}.
مطالبة إدخال inputClaim2 سلسلة تعمل المطالبة كمعلمة تنسيق سلسلة {1}.
InputParameter stringFormat سلسلة تنسيق السلسلة، بما في ذلك المعلمتان {0} و{1}. تدعم معلمة الإدخال هذه تعبيرات تحويل مطالبات السلسلة.
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا.

إشعار

الحد الأقصى لحجم تنسيق السلسلة المسموح به هو 4000.

مثال على FormatStringMultipleClaims

استخدم تحويل المطالبات هذا لتنسيق أي سلسلة بمعلمتين {0} و{1}. ينشئ المثال التالي displayName بالتنسيق المحدد:

<ClaimsTransformation Id="CreateDisplayNameFromFirstNameAndLastName" TransformationMethod="FormatStringMultipleClaims">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="givenName" TransformationClaimType="inputClaim1" />
    <InputClaim ClaimTypeReferenceId="surName" TransformationClaimType="inputClaim2" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="stringFormat" DataType="string" Value="{0} {1}" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="displayName" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim1: Joe
    • inputClaim2: Fernando
  • معلمات الإدخال:
    • نموذج السلسلة: {0}{1}
  • مطالبات الإخراج:
    • outputClaim: Joe Fernando

GetLocalizedStringsTransformation

نسخ السلاسل المترجمة إلى مطالبات. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
OutputClaim اسم السلسلة المترجمة سلسلة قائمة أنواع المطالبات التي يتم إنتاجها بعد استدعاء هذا التحويل المطالبات.

لاستخدام تحويل مطالبات GetLocalizedStringsTransformation:

  1. تعريف سلسلة ترجمة لـ تعريف المحتوىخاصتك، مثل api.selfasserted.

  2. ElementTypeيجب تعيين العنصر إلى LocalizedStringGetLocalizedStringsTransformationClaimType.

  3. StringId هو معرف فريد تقوم بتعريفه، واستخدامه لاحقًا في تحويل المطالبات.

  4. في تحويل المطالبات، حدد قائمة المطالبات التي سيتم تعيينها باستخدام السلسلة المترجمة. ClaimTypeReferenceId هو مرجع إلى مطالبة مُعرفة مُسبقاً في قسم ClaimsSchema في النهج. TransformationClaimType هو اسم السلسلة المترجمة كما هو معرف في StringId لعنصر LocalizedString.

  5. في تحويل مطالبات ملف تعريف فني ذاتي التأكيد، أو تحويل المطالبات، بادر بالإشارة إلى تحويل مطالباتك.

  6. بادر بإقران ملف التعريف الفني بتعريف المحتوى، مثل api.selfasserted. يوضح المثال التالي كيفية إقران ملف تعريف فني بتعريف المحتوى api.selfasserted.

    <Metadata>
      <Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
    </Metadata>
    

يوضح الرسم التخطيطي التالي كيفية تكوين تحويل المطالبات مع عناصر الترجمة:

Diagram shows how to use the get localized strings claims transformation.

مثال على GetLocalizedStringsTransformation

يبحث المثال التالي عن موضوع البريد الإلكتروني، جسم البريد الإلكتروني، ورسالة التعليمات البرمجية، وتوقيع البريد الإلكتروني، من سلاسل مترجمة. هذه المطالبات المستخدمة في وقت لاحق من قالب التحقق من البريد الإلكتروني المخصص.

قم بتعريف السلاسل المترجمة للغة الإنجليزية (افتراضي) والإسبانية.

<Localization Enabled="true">
  <SupportedLanguages DefaultLanguage="en" MergeBehavior="Append">
    <SupportedLanguage>en</SupportedLanguage>
    <SupportedLanguage>es</SupportedLanguage>
   </SupportedLanguages>

  <LocalizedResources Id="api.localaccountsignup.en">
    <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for verifying your account!</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
     </LocalizedStrings>
   </LocalizedResources>
   <LocalizedResources Id="api.localaccountsignup.es">
     <LocalizedStrings>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
      <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Atentamente</LocalizedString>
    </LocalizedStrings>
  </LocalizedResources>
</Localization>

يحدد تحويل المطالبات قيمة موضوع نوع المطالبة بقيمةStringIdعنوان البريد الإلكتروني للمشروع.

<ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
    <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
    <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
    <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
   </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإخراج:
    • الموضوع: رمز التحقق من البريد الإلكتروني لحساب Contoso
    • رسالة: شكرا للتحقق من حسابك!
    • codeIntro: رمز الخاص بك هو
    • التوقيع: بصدق

GetMappedValueFromLocalizedCollection

تعيين عنصر من مجموعة قيود مطالبة الإدخال. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال mapFromClaim سلسلة المطالبة التي تحتوي على النص المطلوب البحث عنه في restrictionValueClaim مع مجموعة القيود.
OutputClaim restrictionValueClaim سلسلة المطالبة التي تحتوي على مجموعة القيود. وبعد أن يتم استدعاء تحويل المطالبات، تحتوي قيمة هذه المطالبة على قيمة الصنف المحدد.

مثال على GetMappedValueFromLocalizedCollection

يبحث المثال التالي عن وصف رسالة الخطأ استنادًا إلى مفتاح الخطأ. تحتوي المطالبة responseMsg على مجموعة من رسائل الخطأ لتقديمها إلى المستخدم النهائي أو لإرسالها إلى الطرف المعتمد.

<ClaimType Id="responseMsg">
  <DisplayName>Error message: </DisplayName>
  <DataType>string</DataType>
  <UserInputType>Paragraph</UserInputType>
  <Restriction>
    <Enumeration Text="B2C_V1_90001" Value="You cannot sign in because you are a minor" />
    <Enumeration Text="B2C_V1_90002" Value="This action can only be performed by gold members" />
    <Enumeration Text="B2C_V1_90003" Value="You have not been enabled for this operation" />
  </Restriction>
</ClaimType>

يبحث تحويل المطالبات عن نص العنصر ويعيد قيمته. إذا تم ترجمة التقييد باستخدام <LocalizedCollection>، يقوم تحويل المطالبات بإرجاع القيمة المترجمة.

<ClaimsTransformation Id="GetResponseMsgMappedToResponseCode" TransformationMethod="GetMappedValueFromLocalizedCollection">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="responseCode" TransformationClaimType="mapFromClaim" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="responseMsg" TransformationClaimType="restrictionValueClaim" />        
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • mapFromClaim: B2C_V1_90001
  • مطالبات الإخراج:
    • restrictionValueClaim: لا يمكنك تسجيل الدخول لأنك قاصر.

LookupValue

البحث عن قيمة مطالبة من قائمة القيم استنادًا إلى قيمة مطالبة أخرى. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال inputParameterId سلسلة المطالبة التي تحتوي على قيمة البحث
InputParameter سلسلة مجموعة من inputParameters.
InputParameter errorOnFailedLookup boolean التحكم في ما إذا كان يتم إرجاع خطأ عند عدم وجود بحث مطابق.
OutputClaim الإخراج سلسلة تم استدعاء المطالبات التي ستُنتج بعد تحويل المطالبات هذا. قيمة المطابقة Id.

مثال على LookupValue

يبحث المثال التالي عن اسم المجال في إحدى مجموعات inputParameters. يبحث تحويل المطالبات عن اسم المجال في المعرف ويعيد قيمته (معرف تطبيق ID).

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="false" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputParameterId: test.com
  • معلمات الإدخال:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: خطأ
  • مطالبات الإخراج:
    • outputClaim: c7026f88-4299-4cdb-965d-3f166464b8a9

مثال على LookupValue مع خطأ

عند تعيين معلمة الإدخال errorOnFailedLookup إلى true، يتم تنفيذ تحويل مطالبات LookupValue دائمًا من ملف تعريف فني للتحقق من الصحة يسمى بملف تعريف فني مؤكد ذاتيًّا، أو DisplayConrtol. بيانات التعريف LookupNotFound لملف تعريف فني ذي تأكيد ذاتي والتي تتحكم برسالة الخطأ التي يتم تقديمها للمستخدم.

Diagram shows how to use the lookup value claims transformation.

يبحث المثال التالي عن اسم المجال في إحدى مجموعات inputParameters. يبحث تحويل المطالبات عن اسم المجال في المعرف ويعيد قيمته (معرف تطبيق ID) أو يرفع رسالة خطأ.

 <ClaimsTransformation Id="DomainToClientId" TransformationMethod="LookupValue">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="inputParameterId" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="contoso.com" DataType="string" Value="13c15f79-8fb1-4e29-a6c9-be0d36ff19f1" />
    <InputParameter Id="microsoft.com" DataType="string" Value="0213308f-17cb-4398-b97e-01da7bd4804e" />
    <InputParameter Id="test.com" DataType="string" Value="c7026f88-4299-4cdb-965d-3f166464b8a9" />
    <InputParameter Id="errorOnFailedLookup" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainAppId" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputParameterId: live.com
  • معلمات الإدخال:
    • contoso.com: 13c15f79-8fb1-4e29-a6c9-be0d36ff19f1
    • microsoft.com: 0213308f-17cb-4398-b97e-01da7bd4804e
    • test.com: c7026f88-4299-4cdb-965d-3f166464b8a9
    • errorOnFailedLookup: صحيح
  • الخطا:
    • لا توجد مطابقة لقيمة مطالبة الإدخال في قائمة معرفات معلمات الإدخال وerrorOnFailedLookup صحيحة.

NullClaim

تنظيف قيمة مطالبة معينة. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
OutputClaim claim_to_null سلسلة يتم تعيين قيمة المطالبة إلى NULL.

مثال على NullClaim

استخدم تحويل المطالبة هذا لإزالة البيانات غير الضرورية من حقيبة المطالبات الخاصة بالملكية بحيث يكون ملف تعريف الارتباط الخاص بالجلسة أصغر. يزيل المثال التالي قيمة نوع المطالبة TermsOfService.

<ClaimsTransformation Id="SetTOSToNull" TransformationMethod="NullClaim">
  <OutputClaims>
  <OutputClaim ClaimTypeReferenceId="TermsOfService" TransformationClaimType="claim_to_null" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • outputClaim: مرحبًا بكم في التطبيق Contoso. عند المواصلة في تصفح واستخدام هذا الموقع، فإنك توافق على الامتثال والالتزام بالشروط والأحكام التالية...
  • مطالبات الإخراج:
    • outputClaim: NULL

ParseDomain

يحصل على جزء المجال من عنوان بريد إلكتروني. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال emailAddress سلسلة المطالبة التي تحتوي على عنوان البريد الإلكتروني.
OutputClaim المجال سلسلة تم استدعاء المطالبات التي ستُنتج بعد تحويل المطالبات هذا - المجال.

مثال على ParseDomain

استخدم هذا التحويل المطالبات لتوزيع اسم المجال بعد @ رمز المستخدم. يوضح تحويل المطالبات التالي كيفية توزيع اسم النطاق من مطالبة بريد إلكتروني.

<ClaimsTransformation Id="SetDomainName" TransformationMethod="ParseDomain">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="emailAddress" />
  </InputClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="domainName" TransformationClaimType="domain" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • emailAddress: joe@outlook.com
  • مطالبات الإخراج:
    • النطاق: outlook.com

SetClaimIfBooleansMatch

التحقق من أن المطالبة المنطقية هي true، أو false. إذا كان الجواب نعم، فسيقوم الناتج بتعيين مطالبات الإخراج مع القيمة الموجودة في معلمة الإدخال outputClaimIfMatched. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال claimToMatch سلسلة نوع المطالبة، والذي سيتم التحقق منه. تطرح القيمة الخالية استثناءً.
InputParameter matchTo سلسلة سيتم مقارنة القيمة claimToMatch بمطالبة الإدخال. القيم الممكنة:، true أو false.
InputParameter outputClaimIfMatched سلسلة القيمة التي سيتم تعيينها إذا كانت مطالبة الإدخال مساوية matchTo لمعلمة الإدخال.
OutputClaim الإخراج سلسلة إذا كانت مطالبة الإدخال claimToMatch تساوي معلمة الإدخال matchTo، فإن مطالبة الإخراج هذه تحتوي على قيمة معلمة الإدخال outputClaimIfMatched.

مثال على SetClaimIfBooleansMatch

على سبيل المثال، يتحقق تحويل المطالبات التالي ما إذا كانت قيمة مطالبة hasPromotionCode مساوية للمطالبة true. إذا كانت الإجابة بنعم، عندها قُم بإرجاع القيمة إلى رمز الترقية غير موجود.

<ClaimsTransformation Id="GeneratePromotionCodeError" TransformationMethod="SetClaimIfBooleansMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="hasPromotionCode" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="true" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="Promotion code not found." />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="promotionCode" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • claimToMatch: صحيح
  • معلمات الإدخال:
    • matchTo: صحيح
    • outputClaimIfMatched: "لم يتم العثور على رمز الترقية."
  • مطالبات الإخراج:
    • outputClaim: "رمز الترقية غير موجود."

SetClaimsIfRegexMatch

فحص أن مطالبة سلسلةclaimToMatch ومعلمة الإدخالmatchTo متساويتان، ويحدد مطالبات الإخراج مع القيمة الموجودة فيoutputClaimIfMatchedمعلمة الإدخال، جنبًا إلى جنب مع مقارنة المطالبة الناتجة، والتي سيتم تعيينها بصفتهاtrueأوfalse على أساس نتيجة المقارنة.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
إدخال المطالبة claimToMatch سلسلة نوع المطالبة، الذي يجب مقارنته.
InputParameter matchTo سلسلة التعبير العادي لمطابقة.
InputParameter outputClaimIfMatched سلسلة سيتم تعيين القضية إذا كانت السلاسل متساوية القيمة.
InputParameter extractGroups boolean [اختياري] تحديد ما إذا كان يجب أن تقوم مطابقة Regex باستخراج قيم المجموعات. القيم المحتملة: true، أو false (افتراضية).
OutputClaim الإخراج سلسلة إذا كان التعبير العادي مطابقًا، فإن مطالبة الإخراج هذه تحتوي على قيمة معلمة الإدخال outputClaimIfMatched. أو فارغة، إذا لم تتطابق.
OutputClaim regexCompareResultClaim boolean يطابق التعبير العادي نتيجة نوع المطالبة الناتج، والتي سيتم تعيينها كـ true أو false استنادًا إلى نتيجة المطابقة.
OutputClaim اسم المطالبة سلسلة إذا تم تعيين معلمة الإدخال extractGroups إلى صحيح، فقد تم استدعاء قائمة أنواع المطالبات التي يتم إنتاجها بعد تحويل المطالبات هذا. يجب أن يتطابق اسم المطالبة مع اسم مجموعة Regex.

مثال على SetClaimsIfRegexMatch

التحقق مما إذا كان رقم الهاتف المتوفر صالحًا، استنادًا إلى نمط التعبير العادي لرقم الهاتف.

<ClaimsTransformation Id="SetIsPhoneRegex" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phone" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="^[0-9]{4,16}$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="iPhone" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isPhoneBoolean" TransformationClaimType="regexCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • claimToMatch: "64854114520"
  • معلمات الإدخال:
    • matchTo: "^[0-9]{4,16}$"
    • outputClaimIfMatched: "الهاتف"
  • مطالبات الإخراج:
    • outputClaim: "iPhone"
    • regexCompareResultClaim: صحيح

مثال على SetClaimsIfRegexMatch مع مجموعات استخراج

التحقق مما إذا كان عنوان البريد الإلكتروني المتوفر صالحًا، ثم إرجاع الاسم المستعار للبريد الإلكتروني. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات مع مجموعات الاستخراج.

<ClaimsTransformation Id="GetAliasFromEmail" TransformationMethod="SetClaimsIfRegexMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="(?&lt;mailAlias&gt;.*)@(.*)$" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="isEmail" />
    <InputParameter Id="extractGroups" DataType="boolean" Value="true" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="validationResult" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isEmailString" TransformationClaimType="regexCompareResultClaim" />
    <OutputClaim ClaimTypeReferenceId="mailAlias" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • claimToMatch: "emily@contoso.com"
  • معلمات الإدخال:
    • matchTo: (?&lt;mailAlias&gt;.*)@(.*)$
    • outputClaimIfMatched: "isEmail"
    • extractGroups: صحيح
  • مطالبات الإخراج:
    • outputClaim: "isEmail"
    • regexCompareResultClaim: صحيح
    • mailAlias: emily

SetClaimsIfStringsAreEqual

فحص أن مطالبة سلسلة والمعلمة الخاصة بالإدخال matchTo متساويتان، ويحدد مطالبات الإخراج مع القيمة الموجودة في معلمات الإدخال stringMatchMsg وstringMatchMsgCode، جنبًا إلى جنب مع مقارنة المطالبة الناتجة، والتي سيتم تعيينها بصفتها true أو false على أساس نتيجة المقارنة.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع المطالبة، الذي يجب مقارنته.
InputParameter matchTo سلسلة السلسلة التي ستتم مقارنتها مع inputClaim.
InputParameter stringComparison سلسلة القيم الممكنة: Ordinal أو OrdinalIgnoreCase.
InputParameter stringMatchMsg سلسلة القيمة الأولى التي سيتم تعيينها إذا كانت السلاسل متساوية.
InputParameter stringMatchMsgCode سلسلة القيمة الثانية التي سيتم تعيينها إذا كانت السلاسل متساوية.
OutputClaim outputClaim1 سلسلة إذا كانت السلاسل مطابقة، فإن مطالبة الإخراج هذه تحتوي على قيمة stringMatchMsg معلمة الإدخال.
OutputClaim outputClaim2 سلسلة إذا كانت السلاسل مطابقة، فإن مطالبة الإخراج هذه تحتوي على قيمة stringMatchMsgCode معلمة الإدخال.
OutputClaim stringCompareResultClaim boolean إن نتيجة المقارنة الناتج لنوع المطالبة، والتي سيتم تعيينها كـ true أو false استنادًا إلى نتيجة المطابقة.

مثال على SetClaimsIfStringsAreEqual

يمكنك استخدام تحويل المطالبات هذا للتحقق مما إذا كانت المطالبة تساوي القيمة التي حددتها. على سبيل المثال، يتحقق تحويل المطالبات التالي ما إذا كانت قيمة مطالبة termsOfUseConsentVersion مساوية للمطالبة v1. إذا كانت الإجابة بنعم، قم بتغيير القيمة إلى v2.

<ClaimsTransformation Id="CheckTheTOS" TransformationMethod="SetClaimsIfStringsAreEqual">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="v1" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="stringMatchMsgCode" DataType="string" Value="B2C_V1_90005" />
    <InputParameter Id="stringMatchMsg" DataType="string" Value="The TOS is upgraded to v2" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersion" TransformationClaimType="outputClaim1" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeCode" TransformationClaimType="outputClaim2" />
    <OutputClaim ClaimTypeReferenceId="termsOfUseConsentVersionUpgradeResult" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim:v1
  • معلمات الإدخال:
    • matchTo: V1
    • stringComparison: ordinalIgnoreCase
    • stringMatchMsgCode: B2C_V1_90005
    • stringMatchMsg: تتم ترقية TOS إلى v2
  • مطالبات الإخراج:
    • outputClaim1: B2C_V1_90005
    • outputClaim2: تتم ترقية TOS إلى v2
    • stringCompareResultClaim: صحيح

SetClaimsIfStringsMatch

فحص أن مطالبة سلسلة ومعلمة الخاصة بالإدخالmatchTo متساويتان، ويحدد مطالبات الإخراج مع القيمة الموجودة في معلمة الإدخال outputClaimIfMatched، جنبًا إلى جنب مع مقارنة المطالبة الناتجة، والتي سيتم تعيينها بصفتهاtrue أو false على أساس نتيجة المقارنة.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال claimToMatch سلسلة نوع المطالبة، الذي يجب مقارنته.
InputParameter matchTo سلسلة السلسلة التي ستتم مقارنتها مع inputClaim.
InputParameter stringComparison سلسلة القيم الممكنة: Ordinal أو OrdinalIgnoreCase.
InputParameter outputClaimIfMatched سلسلة سيتم تعيين القضية إذا كانت السلاسل متساوية القيمة.
OutputClaim الإخراج سلسلة إذا كانت السلاسل مطابقة، فإن مطالبة الإخراج هذه تحتوي على قيمة outputClaimIfMatched معلمة الإدخال. أو خالٍ، إذا كانت السلاسل غير متطابقة.
OutputClaim stringCompareResultClaim boolean إن نتيجة المقارنة الناتج لنوع المطالبة، والتي سيتم تعيينها كـ true أو false استنادًا إلى نتيجة المطابقة.

مثال على SetClaimsIfStringsMatch

على سبيل المثال، يتحقق تحويل المطالبات التالي ما إذا كانت قيمة مطالبة ageGroup مساوية للمطالبة Minor. إذا كانت الإجابة بنعم، فإرجاع القيمة إلى B2C_V1_90001.

<ClaimsTransformation Id="SetIsMinor" TransformationMethod="SetClaimsIfStringsMatch">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="ageGroup" TransformationClaimType="claimToMatch" />
  </InputClaims>
  <InputParameters>
    <InputParameter Id="matchTo" DataType="string" Value="Minor" />
    <InputParameter Id="stringComparison" DataType="string" Value="ordinalIgnoreCase" />
    <InputParameter Id="outputClaimIfMatched" DataType="string" Value="B2C_V1_90001" />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isMinor" TransformationClaimType="outputClaim" />
    <OutputClaim ClaimTypeReferenceId="isMinorResponseCode" TransformationClaimType="stringCompareResultClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • claimToMatch: قاصر
  • معلمات الإدخال:
    • matchTo :قاصر
    • stringComparison: ordinalIgnoreCase
    • outputClaimIfMatched: B2C_V1_90001
  • مطالبات الإخراج:
    • isMinorResponseCode: صحيح
    • isMinor: B2C_V1_90001

StringContains

تحديد ما إذا كانت سلسلة فرعية محددة تحدث ضمن مطالبة الإدخال. النتيجة هي مطالبة منطقية جديدة بقيمة true أو false. trueفي حالة حدث المعلمة قيمة ضمن هذه السلسلة، وإلا،false.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع المطالبة، الذي سيتم البحث فيه.
InputParameter تحتوي على سلسلة القيمة للبحث.
InputParameter ignoreCase سلسلة قم بتحديد ما إذا كان يجب تجاهل حالة السلسلة التي تتم مقارنتها أم لا.
OutputClaim الإخراج سلسلة تم استدعاء المطالبة التي تُنتج بعد تحويل المطالبات هذا. مؤشر منطقي إذا حدثت السلسلة الفرعية ضمن مطالبة الإدخال.

مثال على StringContains

استخدم تحويل المطالبات هذا للتحقق مما إذا كان نوع مطالبة سلسلة يحتوي على سلسلة فرعية. على سبيل المثال، تحقق ما إذا كان نوع المطالبة السلسلة roles يحتوي على قيمة المسؤول.

<ClaimsTransformation Id="CheckIsAdmin" TransformationMethod="StringContains">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
  </InputClaims>
  <InputParameters>
    <InputParameter  Id="contains" DataType="string" Value="admin"/>
    <InputParameter  Id="ignoreCase" DataType="string" Value="true"/>
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: "المسؤول، الموافق، محرر"
  • معلمات الإدخال:
    • يحتوي على: "المسؤول،"
    • ignoreCase: صحيح
  • مطالبات الإخراج:
    • outputClaim: صحيح

StringSubstring

استخراج أجزاء من نوع المطالبة سلسلة، بدءًا من الحرف في الموضع المحدد، وإرجاع عدد محدد من الأحرف. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع المطالبة الذي يحتوي على السلسلة.
InputParameter بداية الفهرس العدد الصحيح موضع حرف البداية المستندة إلى صفر سلسلة فرعية في هذا المثيل.
InputParameter طول العدد الصحيح عدد الأحرف في السلسلة الفرعية.
OutputClaim الإخراج سلسلة سلسلة مكافئة لسلسلة فرعية من الطول الذي يبدأ في startIndex في هذا المثيل أو فارغ إذا startIndex يساوي طول هذا المثيل والطول صفر.

مثال StringSubstring

على سبيل المثال، احصل على بادئة البلد/المنطقة لرقم الهاتف.

<ClaimsTransformation Id="GetPhonePrefix" TransformationMethod="StringSubstring">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="startIndex" DataType="int" Value="0" />
  <InputParameter Id="length" DataType="int" Value="2" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phonePrefix" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: "+1644114520"
  • معلمات الإدخال:
    • startIndex: 0
    • طول: 2
  • مطالبات الإخراج:
    • outputClaim: "+1"

StringReplace

البحث في سلسلة نوع المطالبة لقيمة محددة، وإرجاع سلسلة نوع مطالبة جديدة يتم فيها استبدال كافة تواجدات سلسلة محددة في السلسلة الحالية بسلسلة محددة أخرى.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع المطالبة الذي يحتوي على السلسلة.
InputParameter oldValue سلسلة السلسلة التي سيتم البحث فيها.
InputParameter newValue سلسلة السلسلة لاستبدال كافة التواجدات oldValue
OutputClaim الإخراج boolean سلسلة مكافئة للسلسلة الحالية باستثناء استبدال كافة مثيلات oldValue ب newValue. في حالة عدم العثور على oldValue في المثيل الحالي، يرجع الأسلوب المثيل الحالي دون تغيير.

مثال على StringReplace

على سبيل المثال، تطبيع رقم هاتف، عن طريق إزالة الأحرف -

<ClaimsTransformation Id="NormalizePhoneNumber" TransformationMethod="StringReplace">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="inputClaim" />
  </InputClaims>
<InputParameters>
  <InputParameter Id="oldValue" DataType="string" Value="-" />
  <InputParameter Id="newValue" DataType="string" Value="" />
</InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="phoneNumber" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: "+164-411-452-054"
  • معلمات الإدخال:
    • oldValue: "-"
    • قيمة جديدة: ""
  • مطالبات الإخراج:
    • outputClaim: "+164411452054"

StringJoin

سلسلة عناصر نوع المطالبة مجموعة سلسلة محددة باستخدام الفاصل المحدد بين كل عنصر أو عضو.

تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة stringCollection مجموعة تحتوي على سلاسل لسلسلة.
InputParameter المحدِّد سلسلة السلسلة التي ستستخدم كفاصل، مثل الفاصلة ,.
OutputClaim الإخراج سلسلة سلسلة تتكون من أعضاء مجموعة السلسلة inputClaim، محددة بواسطة معلمة الإدخال delimiter.

مثال على StringJoin

يأخذ المثال التالي مجموعة سلسلة من أدوار المستخدم، ويحولها إلى سلسلة فاصلة محدد. يمكنك استخدام هذا الأسلوب لتخزين مجموعة سلاسل في حساب مستخدم Azure AD B2C. لاحقًا، عند قراءة الحساب من الدليل، استخدم StringSplit لتحويل سلسلة فاصلة محدد العودة إلى مجموعة سلسلة.

<ClaimsTransformation Id="ConvertRolesStringCollectionToCommaDelimiterString" TransformationMethod="StringJoin">
  <InputClaims>
   <InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
    <InputParameter DataType="string" Id="delimiter" Value="," />
  </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="rolesCommaDelimiterConverted" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: [ "Admin", "Author", "Reader" ]
  • معلمات الإدخال:
    • المحدد: ","
  • مطالبات الإخراج:
    • outputClaim: "Admin,Author,Reader"

StringSplit

قم بإرجاع صفيف سلسلة يحتوي على سلاسل فرعية في هذا المثيل المحدد بواسطة عناصر سلسلة محددة. تحقق من العرض التوضيحي المباشر لتحول هذه المطالبات.

العنصر نوع مطالبة التحول نوع البيانات ملاحظات
مطالبة إدخال إدخال المطالبة سلسلة نوع مطالبة سلسلة يحتوي على السلاسل الفرعية لتقسيم.
InputParameter المحدِّد سلسلة السلسلة التي ستستخدم كفاصل، مثل الفاصلة ,.
OutputClaim الإخراج stringCollection مجموعة سلسلة تحتوي عناصرها على سلاسل فرعية في هذه السلسلة محددة بواسطة معلمة الإدخال delimiter.

إشعار

ستتم إزالة أي عناصر موجودة في OutputClaim stringCollection.

مثال على StringSplit

يأخذ المثال التالي سلسلة فاصلة محدد أدوار المستخدم ثم تحويله إلى مجموعة سلسلة.

<ClaimsTransformation Id="ConvertRolesToStringCollection" TransformationMethod="StringSplit">
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="rolesCommaDelimiter" TransformationClaimType="inputClaim" />
  </InputClaims>
  <InputParameters>
  <InputParameter DataType="string" Id="delimiter" Value="," />
    </InputParameters>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="roles" TransformationClaimType="outputClaim" />
  </OutputClaims>
</ClaimsTransformation>
  • مطالبات الإدخال:
    • inputClaim: Admin,Author,Reader
  • معلمات الإدخال:
    • المحدد: ","
  • مطالبات الإخراج:
    • outputClaim: [ "Admin", "Author", "Reader" ]

تعبيرات تحويلات المطالبة السلسلية

توفر تعبيرات تحويل المطالبة في النهج المخصصة لـ Azure AD B2C معلومات سياق حول معرف المستأجر ID ومعرف ملف التعريف الفني ID.

تعبير ‏‏الوصف مثال
{TechnicalProfileId} اسم ملف التعريف الفني profileId. Facebook-OAUTH
{RelyingPartyTenantId} معرف المستأجر لنهج الطرف المعتمد. مستأجرك على microsoft.com
{TrustFrameworkTenantId} معرّف المستأجر لإطار عمل الثقة. مستأجرك على microsoft.com

الخطوات التالية

  • يمكنك العثور على المزيد من أمثلة تحويل المطالبات في مستودع GitHub لمجتمع متاجرة عمل-مستهلك في Microsoft Azure Active Directory