تعريف ملف تعريف تقني ل Microsoft Entra في نهج مخصص Azure Active Directory B2C

إشعار

في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في Active Directory B2C.

يوفر Azure Active Directory B2C (Azure AD B2C) الدعم لإدارة مستخدم Microsoft Entra. توضح هذه المقالة تفاصيل ملف تعريف فني للتفاعل مع موفر مطالبات يدعم هذا البروتوكول القياسي.

بروتوكول

يجب تعيين سمة اسم عنصر البروتوكول على Proprietary. يجب أن تتضمن سمة المعالج اسم المؤهّل بالكامل لتجميع معالج البروتوكول Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.

تتضمن ملفات تعريف Microsoft Entra الفنية التالية لحزمة بداية النهج المخصصة ملف التعريف الفني AAD (دليل Azure النشط)-Common. لا تحدد ملفات تعريف Microsoft Entra الفنية البروتوكول لأنه تم تكوين البروتوكول في ملف التعريف الفني AAD (دليل Azure النشط)-Common:

  • AAD-UserReadUsingAlternativeSecurityIdوAD-UserReadUsingAlternativeSecurityId-NoError- ابحث عن حساب اجتماعي في الدليل.
  • AAD-UserWriteUsingAlternativeSecurityId - إنشاء حساب اجتماعي جديد.
  • Microsoft Azure Active Directory -UserReadUsingEmailAddress - قم بالبحث عن حساب محلي في الدليل.
  • Microsoft Azure Active Directory -UserWriteUsingLogonEmail - إنشاء حساب محلي جديد.
  • Microsoft Azure Active Directory -UserWritePasswordUsingObjectId - تحديث رمز الوصول لحساب محلي.
  • Microsoft Azure Active Directory -UserWriteProfileUsingObjectId - تحديث ملف تعريف مستخدم حساب محلي أو اجتماعي.
  • Microsoft Azure Active Directory - قراءة ملف تعريف المستخدم حساب محلي أو اجتماعي.
  • Microsoft Azure Active Directory -UserWritePhoneNumberUsingObjectId - اكتب رقم هاتف المصادقة متعددة العوامل لحساب محلي أو اجتماعي

يظهر المثال التالي AAD (دليل Azure النشط)ملف تعريف فني RESTful:

<TechnicalProfile Id="AAD-Common">
  <DisplayName>Azure Active Directory</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.AzureActiveDirectoryProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <CryptographicKeys>
    <Key Id="issuer_secret" StorageReferenceId="B2C_1A_TokenSigningKeyContainer" />
  </CryptographicKeys>

  <!-- We need this here to suppress the SelfAsserted provider from invoking SSO on validation profiles. -->
  <IncludeInSso>false</IncludeInSso>
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

InputClaims

يحتوي عنصر على مطالبة إدخالية، والتي تستخدم للبحث عن حساب في الدليل، أو إنشاء حساب جديد. يجب أن يكون هناك عنصر InputClaim واحد بالضبط في مجموعة مطالبات الإدخال لجميع ملفات تعريف Microsoft Entra الفنية. قد تحتاج إلى تعيين اسم المطالبة المحددة في نهجك إلى الاسم المحدد في معرف Microsoft Entra.

لقراءة حساب مستخدم موجود أو تحديثه أو حذفه، تعد مطالبة الإدخال مفتاحا يعرف الحساب بشكل فريد في دليل Microsoft Entra. على سبيل المثال، عنصر SQL Server، اسم المستخدم، signInNames.emailAddress، signInNames.userName، أو alternativeSecurityId.

لإنشاء حساب المستخدم الجديد، تعتبر مطالبة الإدخال مفتاحًا يحدد حسابًا محليًّا أو مدمجًا بشكل فريد. على سبيل المثال، الحساب المحلي: signInNames.emailAddress، أو signInNames.userName. لحساب الاتحادي: alternativeSecurityId.

يمكن أن يحتوي عنصر InputClaimsTransformationsعلى مجموعة عناصر مطالبات إدخال والتي تُستخدم لتعديل مطالبات الإدخال أو إنشاء مطالبات جديدة.

OutputClaims

يحتوي عنصر OutputClaims على قائمة بالمطالبات التي تم إرجاعها بواسطة ملف التعريف الفني ل Microsoft Entra. قد تحتاج إلى تعيين اسم المطالبة المحددة في نهجك إلى الاسم المحدد في معرف Microsoft Entra. يمكنك أيضا تضمين المطالبات التي لم يتم إرجاعها بواسطة معرف Microsoft Entra، طالما قمت بتعيين السمة DefaultValue .

قد يحتوي عنصر OutputClaimsTransformations على مجموعة من عناصر OutputClaimsTransformation التي تستخدم لتعديل مطالبات الإخراج أو إنشاء مطالبات جديدة.

على سبيل المثال، التشكيل الجانبي التقني Microsoft Azure Active Directory -UserWriteUsingLogonEmail بإنشاء ملف تعريف حساب محلي وإرجاع المطالبات التالية:

  • عنصر SQL Server، وهو معرف الحساب الجديد
  • المستخدم الجديد، مما يشير إلى ما إذا كان المستخدم جديدًا
  • مصادقة المصدر، الذي يعين المصادقة إلى localAccountAuthentication
  • اسم المستخدم الأساسي، وهو الاسم الرئيسي للمستخدم للحساب الجديد
  • signInNames.emailAddress، وهو اسم تسجيل الدخول للحساب، على غرار مطالبة إدخال عنوان البريد الإلكتروني
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="objectId" />
  <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="localAccountAuthentication" />
  <OutputClaim ClaimTypeReferenceId="userPrincipalName" />
  <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
</OutputClaims>

مطالبات مستمرة

يحتوي عنصر PersistedClaims على كافة القيم التي يجب أن يستمر بها معرف Microsoft Entra مع معلومات التعيين المحتملة بين نوع المطالبة المحدد بالفعل في قسم ClaimsSchema في النهج واسم سمة Microsoft Entra.

على سبيل المثال، التشكيل الجانبي الفني Microsoft Azure Active Directory -UserWriteUsingLogonEmail بإنشاء ملف تعريف حساب محلي وإرجاع المطالبات المستمرة التالية:

  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="email" PartnerClaimType="signInNames.emailAddress" />
    <PersistedClaim ClaimTypeReferenceId="newPassword" PartnerClaimType="password"/>
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="passwordPolicies" DefaultValue="DisablePasswordExpiration" />

    <!-- Optional claims. -->
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>

اسم المطالبة هو اسم سمة Microsoft Entra ما لم يتم تحديد السمة PartnerClaimType ، والتي تحتوي على اسم سمة Microsoft Entra.

المتطلبات العملية

  • يجب أن يكون هناك عنصر InputClaim واحد بالضبط في حقيبة المطالبات لجميع ملفات تعريف Microsoft Entra الفنية.
  • وصف المقالة سمات ملف تعريف المستخدم سمات ملف تعريف المستخدم AAD (دليل Azure النشط) متاجرة عمل-مستهلك المعتمدة التي يمكنك استخدامها في مطالبات الإدخال ومطالبات الإخراج والمطالبات المستمرة.
  • إذا كانت العملية Write أو DeleteClaims، فيجب أن تظهر أيضا في عنصر المطالبات المستمرة
  • يجب أن تكون قيمة المطالبة اسم المستخدم في نموذجuser@tenant.onmicrosoft.com .
  • المطالبة اسم المستخدم مطلوب ولا يمكن أن تكون سلسلة فارغة.

عمليات ملف التعريف الفني ل Microsoft Entra

مقروء

قراءةعملية قراءة البيانات حول حساب مستخدم واحد. ملف التعريف الفني التالي بقراءة البيانات حول حساب مستخدم باستخدام عنصر SQL Server المستخدم:

<TechnicalProfile Id="AAD-UserReadUsingObjectId">
  <Metadata>
    <Item Key="Operation">Read</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalDoesNotExist">true</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims>

    <!-- Required claims -->
    <OutputClaim ClaimTypeReferenceId="strongAuthenticationPhoneNumber" />

    <!-- Optional claims -->
    <OutputClaim ClaimTypeReferenceId="signInNames.emailAddress" />
    <OutputClaim ClaimTypeReferenceId="displayName" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
    <OutputClaim ClaimTypeReferenceId="givenName" />
    <OutputClaim ClaimTypeReferenceId="surname" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

كتابة

تقوم عملية الكتابة بإنشاء حساب مستخدم واحد أو تحديثه. ينشئ الملف التعريفي الفني التالي حسابًا اجتماعيًّا جديدًا:

<TechnicalProfile Id="AAD-UserWriteUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">Write</Item>
    <Item Key="RaiseErrorIfClaimsPrincipalAlreadyExists">true</Item>
    <Item Key="UserMessageIfClaimsPrincipalAlreadyExists">You are already registered, please press the back button and sign in instead.</Item>
  </Metadata>
  <IncludeInSso>false</IncludeInSso>
  <InputClaimsTransformations>
    <InputClaimsTransformation ReferenceId="CreateOtherMailsFromEmail" />
  </InputClaimsTransformations>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="AlternativeSecurityId" PartnerClaimType="alternativeSecurityId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <!-- Required claims -->
    <PersistedClaim ClaimTypeReferenceId="alternativeSecurityId" />
    <PersistedClaim ClaimTypeReferenceId="userPrincipalName" />
    <PersistedClaim ClaimTypeReferenceId="mailNickName" DefaultValue="unknown" />
    <PersistedClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />

    <!-- Optional claims -->
    <PersistedClaim ClaimTypeReferenceId="otherMails" />
    <PersistedClaim ClaimTypeReferenceId="givenName" />
    <PersistedClaim ClaimTypeReferenceId="surname" />
  </PersistedClaims>
  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="objectId" />
    <OutputClaim ClaimTypeReferenceId="newUser" PartnerClaimType="newClaimsPrincipalCreated" />
    <OutputClaim ClaimTypeReferenceId="otherMails" />
  </OutputClaims>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
  <UseTechnicalProfileForSessionManagement ReferenceId="SM-AAD" />
</TechnicalProfile>

حذف المطالبات

عملية حذف المطالباتتزيل المعلومات من قائمة المطالبات المقدمة. يحذف الملف التعريف الفني التالي المطالبات:

<TechnicalProfile Id="AAD-DeleteClaimsUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaims</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <PersistedClaims>
    <PersistedClaim ClaimTypeReferenceId="objectId" />
    <PersistedClaim ClaimTypeReferenceId="Verified.strongAuthenticationPhoneNumber" PartnerClaimType="strongAuthenticationPhoneNumber" />
  </PersistedClaims>
  <OutputClaims />
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

DeleteClaimsPrincipal

عملية حذف مطالبات المستخدم تزيل حساب مستخدم واحد من الدليل. التشكيل الجانبي الفني التالي حذف ملف تعريف حساب مستخدم من الدليل باستخدام اسم المستخدم الأساسي:

<TechnicalProfile Id="AAD-DeleteUserUsingObjectId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="objectId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

ملف التعريف الفني التالي حذف ملف تعريف حساب مستخدم اجتماعي باستخدام alternativeSecurityId

<TechnicalProfile Id="AAD-DeleteUserUsingAlternativeSecurityId">
  <Metadata>
    <Item Key="Operation">DeleteClaimsPrincipal</Item>
  </Metadata>
  <InputClaims>
    <InputClaim ClaimTypeReferenceId="alternativeSecurityId" Required="true" />
  </InputClaims>
  <OutputClaims/>
  <IncludeTechnicalProfile ReferenceId="AAD-Common" />
</TechnicalProfile>

بيانات التعريف

السمة المطلوب ‏‏الوصف
العملية ‏‏نعم‬ هذه العملية مطلوب تنفيذها. القيم المحتملة: Read أو Write أو DeleteClaims أو DeleteClaimsPrincipal
RaiseErrorIfClaimsPrincipalDoesNotExist لا رفع خطأ إذا كان عنصر SQL Server المستخدم غير موجود في الدليل. القيم الممكنة: true أو false.
RaiseErrorIfClaimsPrincipalAlreadyExists لا رفع خطأ إذا كان عنصر SQL Server المستخدم موجودًا بالفعل. القيم الممكنة: true أو false. تنطبق بيانات التعريف هذه فقط على عملية الكتابة.
تطبيق عنصر SQL Server* لا معرف عنصر SQL Server التطبيق لسمات الملحق. القيمة: معرف عنصر SQL Server تطبيق. لمزيد من المعلومات، راجع استخدام السمات المخصصة.
ClientId لا معرف العميل للوصول إلى المستأجر كجهة أخرى. لمزيد من التفاصيل، راجع استخدام سمات مخصصة في نهج تحرير ملف تعريف مخصص
تضمينClaimResolvingInClaimsHandling لا بالنسبة لمطالبات الإدخال والإخراج، يتم تحديد إذا ما كان حل المطالبات مدرجًا في ملف التعريف الفني أم لا. القيم المحتملة: true، أو false (افتراضية). إذا كنت تريد استخدام محلل مطالبات في ملف التعريف الفني حدد القيمة إلى true.

عناصر واجهة المستخدم

يمكن استخدام الإعدادات التالية لتكوين رسالة الخطأ المعروضة عند الفشل. ينبغي تكوين بيانات التعريف في ملف التعريف التقني المؤكد ذاتياً. يمكن ترجمة رسائل الخطأ

السمة المطلوب ‏‏الوصف
UserMessageIfClaimsPrincipalAlreadyExists لا إذا كان خطأ هو أن يتم رفع (انظر RaiseErrorIfClaimsPrincipalAlreadyExists وصف السمة)، حدد الرسالة لإظهار للمستخدم إذا كان عنصر SQL Server المستخدم موجودًا بالفعل.
UserMessageIfClaimsPrincipalDoesNotExist لا إذا كان خطأ هو أن يتم رفع (راجع وصف السمة RaiseErrorIfClaimsPrincipalDoesNotExist) ، حدد الرسالة لإظهار للمستخدم إذا كان عنصر SQL Server المستخدم غير موجود.

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

راجع المقالة التالية، على سبيل المثال لاستخدام ملف تعريف Microsoft Entra التقني: