حدد ملف تعريف OpenID Connect الفني في نهج Azure Active Directory B2C المخصص

ملاحظة

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

يوفر Azure Active Directory B2C (Azure AD B2C) الدعم لموفر هوية بروتوكول OpenID Connect. يحدد OpenID Connect 1.0 طبقة هوية أعلى OAuth 2.0 ويمثل أحدث ما توصلت إليه بروتوكولات المصادقة الحديثة. باستخدام ملف تعريف OpenID Connect الفني، يمكنك الاتحاد مع موفر هوية يستند إلى OpenID Connect، مثل Azure AD. يسمح الاتحاد مع موفر الهوية للمستخدمين بتسجيل الدخول بهوياتهم الاجتماعية أو المؤسسية الحالية.

البروتوكول

يجب تعيين سمة اسم عنصر بروتوكول إلى OpenIdConnect. على سبيل المثال، بروتوكول ملف التعريف الفني لـ MSA-OIDC هو OpenIdConnect:

<TechnicalProfile Id="MSA-OIDC">
  <DisplayName>Microsoft Account</DisplayName>
  <Protocol Name="OpenIdConnect" />
  ...

مطالبات الإدخال

عنصرا InputClaims وInputClaimsTransformations غير مطلوبين. ولكن قد ترغب في إرسال معلمات إضافية إلى موفر الهوية. يضيف المثال التالي معلمة سلسلة الاستعلام domain_hint بقيمة contoso.com طلب التخويل.

<InputClaims>
  <InputClaim ClaimTypeReferenceId="domain_hint" DefaultValue="contoso.com" />
</InputClaims>

مطالبات الناتج

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

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

يوضح المثال التالي المطالبات التي تم إرجاعها بواسطة موفر هوية Microsoft Account :

  • المطالبةالفرعيةالتي تم تعيينها لمطالبةissuerUserId.
  • مطالبةnameالتي تم تعيينها للمطالبةdisplayName.
  • مطالبةالبريد الإلكترونيدون تعيين الاسم.

يقوم الملف الفني أيضًا بإرجاع المطالبات التي لم يتم إرجاعها من قبل موفر الهوية:

  • مطالبةموفر الهويةالذي يحتوي على اسم موفر الهوية.
  • مطالبة authenticationSource بقيمة افتراضية هي socialIdpAuthentication.
<OutputClaims>
  <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="live.com" />
  <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication" />
  <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="sub" />
  <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="name" />
  <OutputClaim ClaimTypeReferenceId="email" />
</OutputClaims>

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

السمة مطلوب الوصف
client_id نعم معرف التطبيق لموفر الهوية.
IdTokenAudience لا جمهور id_token. إذا تم تحديد ذلك، يتحقق Azure AD B2C ما إذا كانت aud المطالبة في رمز مميز الذي تم إرجاعه بواسطة موفر الهوية مساوية للمطالبة المحددة في بيانات التعريف IdTokenAudience.
METADATA نعم محدد موقع معلومات يشير إلى مستند تكوين موفر الهوية OpenID الاتصال، والذي يعرف أيضا باسم نقطة نهاية التكوين المعروفة OpenID. يمكن أن يحتوي عنوان URL على {tenant} التعبير الذي يتم استبداله باسم المستأجر.
authorization_endpoint لا عنوان URL يشير إلى نقطة نهاية مصادقة تكوين موفر هوية OpenID Connect. تأخذ قيمة بيانات التعريف authorization_endpoint الأسبقية على المحدد authorization_endpoint في نقطة نهاية التكوين المعروفة في OpenID. يمكن أن يحتوي عنوان URL على {tenant} التعبير الذي يتم استبداله باسم المستأجر.
end_session_endpoint لا عنوان URL لنقطة نهاية جلسة العمل. قيمة بيانات تعريف end_session_endpoint لها الأسبقية على end_session_endpoint المحدد في نقطة نهاية تكوين OpenID المعروفة.
issuer لا المعرف الفريد لموفر هوية OpenID Connect. تأخذ قيمة بيانات تعريف المصدر الأسبقية على المحدد issuer في نقطة نهاية التكوين المعروفة في OpenID. إذا تم تحديد ذلك، يتحقق Azure AD B2C ما إذا كانت iss المطالبة في رمز مميز الذي تم إرجاعه بواسطة موفر الهوية مساوية للمطالبة المحددة في بيانات تعريف المصدر.
اسم الموفر لا اسم موفر الهوية.
response_types لا نوع الاستجابة وفقًا لمواصفات OpenID Connect Core. القيم الممكنةid_token أو code أو token.
response_mode لا الأسلوب الذي يستخدمه موفر الهوية لإرسال النتيجة مرة أخرى إلى Azure AD B2C. القيم المحتملة: query، أو form_post (الافتراضي)، أو fragment.
النطاق لا نطاق الطلب الذي تم تعريفه وفقًا لمواصفات OpenID Connect Core 1.0. مثل openid، وprofile و email.
HttpBinding لا ربط HTTP المتوقع إلى رمز الوصول المميز ونقاط نهاية الرمز المميز للمطالبات. القيم الممكنة: GET أو POST.
ValidTokenIssuerPrefixes لا مفتاح يمكن استخدامه لتسجيل الدخول إلى كل من المستأجرين عند استخدام موفر هوية متعدد المستأجرين مثل Azure Active Directory.
UsePolicyInRedirectUri لا يشير إلى ما إذا كان يجب استخدام نهج عند إنشاء URI إعادة التوجيه. عند تكوين تطبيقك في موفر الهوية، تحتاج إلى تحديد URI إعادة التوجيه. يشير URI إعادة التوجيه إلى Azure AD B2C، https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. إذا قمت بتحديد true، فستحتاج إلى إضافة URI إعادة التوجيه لكل نهج تستخدمه. على سبيل المثال: https://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/{policy-name}/oauth2/authresp.
MarkAsFailureOnStatusCode5xx لا يشير إلى ما إذا كان يجب وضع علامة على طلب خدمة خارجية على أنه فشل إذا كان رمز حالة Http في النطاق 5xx. الافتراضي هو false.
DiscoverMetadataByTokenIssuer لا يشير إلى ما إذا كان يجب اكتشاف بيانات تعريف OIDC باستخدام المصدر في رمز JWT المميز. إذا احتجت إلى إنشاء عنوان URL لنقطة نهاية بيانات التعريف استناداً إلى "المصدر"، فعيّن هذا إلى true.
تضمين حل المطالبات في معالجة المطالبات لا بالنسبة لمطالبات الإدخال والإخراج، يتم تحديد إذا ما كان حل المطالبات مدرجاً في ملف التعريف الفني أم لا. القيم المحتملة: true، أو false (افتراضي). إذا كنت تريد استخدام محلل مطالبات في ملف التعريف التقني، عيّن القيمة إلى true.
token_endpoint_auth_method لا يحدد كيفية إرسال Azure AD B2C عنوان المصادقة إلى نقطة نهاية الرمز المميز. القيم المحتملة: client_secret_post (الافتراضي)، وclient_secret_basic (إصدار أولي عام)، وprivate_key_jwt (إصدار أولي عام). لمزيد من المعلومات، راجع OpenID Connect client authentication section.
token_signing_algorithm لا تعين خوارزمية التوقيع لاستخدامها عند تعيين token_endpoint_auth_method إلى private_key_jwt. القيم المحتملة: RS256(افتراضي)، أو RS512.
SingleLogoutEnabled لا يشير إلى ما إذا حاول ملف التعريف التقني تسجيل الخروج من موفري الهوية الموحدين في أثناء تسجيل الدخول. للحصول على مزيدٍ من المعلومات، راجع Microsoft Azure Active Directory B2C session sign-out. القيم الممكنة: true (الافتراضي)، أو false.
ReadBodyClaimsOnIdpRedirect لا تعيين true لقراءة المطالبات من نص الاستجابة على إعادة توجيه موفر الهوية. يتم استخدام هذه البيانات الوصفية مع Apple ID، حيث تعود المطالبات في حمولة الاستجابة.
<Metadata>
  <Item Key="ProviderName">https://login.live.com</Item>
  <Item Key="METADATA">https://login.live.com/.well-known/openid-configuration</Item>
  <Item Key="response_types">code</Item>
  <Item Key="response_mode">form_post</Item>
  <Item Key="scope">openid profile email</Item>
  <Item Key="HttpBinding">POST</Item>
  <Item Key="UsePolicyInRedirectUri">false</Item>
  <Item Key="client_id">Your Microsoft application client ID</Item>
</Metadata>

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

يمكن استخدام الإعدادات التالية لتكوين رسالة الخطأ المعروضة عند الفشل. يجب تكوين البيانات الوصفية في ملف التعريف الفني لـ OpenID Connect. يمكن ترجمة رسائل الخطأ.

السمة مطلوب الوصف
UserMessageIfClaimsPrincipalDoesNotExist لا الرسالة التي سيتم عرضها للمستخدم إذا لم يتم العثور على حساب باسم المستخدم المتوفر في الدليل.
UserMessageIfInvalidPassword لا الرسالة التي سيتم عرضها للمستخدم إذا كانت كلمة المرور غير صحيحة.
UserMessageIfOldPasswordUsed لا الرسالة التي سيتم عرضها للمستخدم في حالة استخدام كلمة مرور قديمة.

مفاتيح تشفير

يحتوي عنصرCryptographicKeysعلى السمات التالية:

السمة مطلوب الوصف
client_secret نعم سر العميل لتطبيق موفر الهوية. مفتاح التشفير هذا مطلوب فقط إذا تم تعيين بيانات التعريف response_types إلى codeوtoken_endpoint_auth_method مُعينة إلى client_secret_post أو client_secret_basic. في هذه الحالة، يقوم Azure AD B2C بإجراء مكالمة أخرى لتبادل رمز التفويض لرمز وصول. إذا تم تعيين بيانات التعريف id_token إلى يمكنك حذف مفتاح التشفير.
assertion_signing_key نعم المفتاح الخاص RSA الذي سيتم استخدامه لتوقيع تأكيد العميل. مفتاح التشفير هذا مطلوب فقط إذا تم تعيين token_endpoint_auth_method إلى private_key_jwt.

إعادة توجيه عنوان URI

عند تكوين عنوان URI المُعاد توجيهه الخاص بموفر الهوية الخاص بك، أدخلhttps://{your-tenant-name}.b2clogin.com/{your-tenant-name}.onmicrosoft.com/oauth2/authresp. تأكد من استبدال {your-tenant-name} باسم المستأجر الخاص بك. يجب أن تكون إعادة توجيه URI في كافة الأحرف الصغيرة.

أمثلة: