تمرير الرمز المميز للوصول لموفر هوية إلى التطبيق الخاص بك في Azure Active Directory B2C

قبل أن تبدأ استخدم اختر نوع النهجالمحدد لاختيار نوع النهج التي تقوم بإعدادها. يوفر Azure Active Directory B2C طريقتين لتحديد كيفية تفاعل المستخدمين مع تطبيقاتك: من خلال تدفقات محددة مسبقا للمستخدمين أو من خلال سياسات مخصصة قابلة للتكوين بشكل كامل. تختلف الخطوات المطلوبة في هذه المقالة لكل أسلوب.

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

يدعم Azure AD B2C تمرير الرمز المميز للوصول لموفري الهوية OAuth 2.0، والتي تشمل Facebook، وGoogle. وبالنسبة لجميع موفري الهوية الآخرين، يتم إرجاع المطالبة فارغة.

يدعم Azure AD B2C تمرير الرمز المميز للوصول لموفري الهوية OAuth 2.0، وOpenID Connect. وبالنسبة لجميع موفري الهوية الآخرين، يتم إرجاع المطالبة فارغة. لمزيد من التفاصيل، تحقق من العرض التوضيحي المباشر لاتحاد مُوفري الهوية.

يوضح الرسم التخطيطي التالي كيفية إرجاع الرمز المميز لموفر الهوية إلى التطبيق الخاص بك:

Identity provider pass through flow

المتطلبات الأساسية

تمكين المطالبة

  1. سجّل الدخول إلى مدخل Azure بصفتك المسؤول العام عن مستأجر Azure AD B2C.

  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.

  3. اختر All services في الزاوية العلوية اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2C وحدده.

  4. حدد تدفقات المستخدم (النُهج)، ومن ثم حدد تدفق المستخدم. على سبيل المثال، B2C_1_signupsignin1.

  5. اختر مطالبات التطبيق.

  6. مكّن المطالبة الرمز المميز للوصول إلى موفر الهوية.

    Enable the Identity Provider Access Token claim

  7. انقر فوق حفظ لحفظ تدفق المستخدم.

اختبار تدفق المستخدم

عند اختبار التطبيقات الخاصة بك في Azure AD B2C، قد يكون من المفيد أن يكون الرمز المميز Azure AD B2C عاد إلى https://jwt.ms لمراجعة المطالبات فيه.

  1. في صفحة نظرة عامة على تدفق المستخدم، حدد تشغيل تدفق المستخدم.

  2. فيما يتعلق بـ التطبيق، حدد التطبيق الذي قمت بتسجيله مسبقاً. لمشاهدة الرمز المميز في المثال أدناه، يجب أن يُظهر عنوان URL للردhttps://jwt.ms.

  3. انقر فوق تشغيل تدفق المستخدم، ثم قم بتسجيل الدخول باستخدام بيانات اعتماد الحساب. يجب أن تشاهد الرمز المميز للوصول الخاص بموفر الهوية في المطالبة idp_access_token.

    يجب أن ترى شيئاً مشابهاً للمثال التالي:

    Decoded token in jwt.ms with idp_access_token block highlighted

إضافة عناصر المطالبة

  1. افتح ملف TrustframeworkExtensions.xml الخاص بك ثم قم بإضافة العنصر ClaimType التالي مع مُعرف identityProviderAccessToken عُنصر ClaimsSchema:

    <BuildingBlocks>
      <ClaimsSchema>
        <ClaimType Id="identityProviderAccessToken">
          <DisplayName>Identity Provider Access Token</DisplayName>
          <DataType>string</DataType>
          <AdminHelpText>Stores the access token of the identity provider.</AdminHelpText>
        </ClaimType>
        ...
      </ClaimsSchema>
    </BuildingBlocks>
    
  2. أضِف العنصر OutputClaim إلى العنصر TechnicalProfile لكل موفر هوية OAuth 2.0 على حِدة، والذي ترغب في تعيين الرمز المميز للوصول له. يوضح المثال التالي العنصر الذي تمت إضافته إلى الملف التقني على Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="{oauth2:access_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. احفظ ملف TrustframeworkExtensions.xml.

  4. افتح ملف نهج جهة الاعتماد، مثل SignUpOrSignIn.xml، وأضِف العنصر OutputClaim إلى TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderAccessToken" PartnerClaimType="idp_access_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  5. احفظ ملف النهج.

اختبار النهج الخاص بك

عند اختبار التطبيقات الخاصة بك في Azure AD B2C، قد يكون من المفيد أن يكون الرمز المميز Azure AD B2C عاد إلى https://jwt.ms لإمكانية مراجعة المطالبات فيه.

قم بتحميل الملفات

  1. سجل الدخول إلى مدخل Azure.
  2. إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
  3. اختر كل الخدمات في الزاوية العلويةِ اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2Cوحدده.
  4. حدد إطار عمل تجربة الهوية.
  5. في صفحة النُهج المخصصة، انقر فوق نهج الرفع.
  6. حدد الكتابة فوق النهج إذا كان موجوداً، ثم ابحث عن الملف TrustframeworkExtensions.xml وحدده.
  7. حدد تحميل.
  8. كرر الخطوات من 5 إلى 7 لملف جهة الاعتماد، مثل SignUpOrSignIn.xml.

تشغيل النهج

  1. افتح النهج الذي غيرته. على سبيل المثال، B2C_1A_signup_signin.

  2. فيما يتعلق بـ التطبيق، حدد التطبيق الذي قمت بتسجيله مسبقاً. لمشاهدة الرمز المميز في المثال أدناه، يجب أن يُظهر عنوان URL للردhttps://jwt.ms.

  3. حدد تشغيل الآن.

    يجب أن ترى شيئاً مشابهاً للمثال التالي:

    Decoded token in jwt.ms with idp_access_token block highlighted

تمرير الرمز المميز لتحديث IDP (اختياري)

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

يدعم نهج Azure AD B2C المخصص تمرير الرمز المميز للتحديث لموفري الهوية OAuth 2.0، والذي يتضمن Facebook وGoogleوGitHub.

لتمرير رمز التحديث المميز لموفر الهوية، اتبع الخطوات التالية:

  1. افتح ملف TrustframeworkExtensions.xml وأضف عنصر ClaimType التالي مع معرف identityProviderRefreshToken إلى عنصر ClaimsSchema.

    <ClaimType Id="identityProviderRefreshToken">
        <DisplayName>Identity provider refresh token</DisplayName>
        <DataType>string</DataType>
    </ClaimType>
    
  2. أضف عنصر OutputClaim إلى عنصر TechnicalProfile لكل موفر هوية OAuth 2.0 ترغب في رمز التحديث المميز له. يوضح المثال التالي العنصر الذي تمت إضافته إلى الملف التقني على Facebook:

    <ClaimsProvider>
      <DisplayName>Facebook</DisplayName>
      <TechnicalProfiles>
        <TechnicalProfile Id="Facebook-OAUTH">
          <OutputClaims>
            <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="{oauth2:refresh_token}" />
          </OutputClaims>
          ...
        </TechnicalProfile>
      </TechnicalProfiles>
    </ClaimsProvider>
    
  3. يطلب منك بعض موفري الهوية تضمين بيانات التعريف أو النطاقات في ملف التعريف التقني لموفر الهوية.

    • بالنسبة لموفر هوية Google، أضف نوعين من access_type المطالبات و prompt. ثم أضف مطالبات الإدخال التالية إلى ملف التعريف التقني لموفر الهوية:

      <InputClaims>
          <InputClaim ClaimTypeReferenceId="access_type" PartnerClaimType="access_type" DefaultValue="offline" AlwaysUseDefaultValue="true" />
      
          <!-- The refresh_token is return only on the first authorization for a given user. Subsequent authorization request doesn't return the refresh_token.
              To fix this issue we add the prompt=consent query string parameter to the authorization request-->
          <InputClaim ClaimTypeReferenceId="prompt" PartnerClaimType="prompt" DefaultValue="consent" AlwaysUseDefaultValue="true" />
      </InputClaims>
      
    • قد يكون لدى موفري الهوية الآخرين أساليب مختلفة لإصدار رمز تحديث مميز. اتبع جمهور موفر الهوية وأضف العناصر الضرورية إلى ملف التعريف التقني لموفر الهوية.

  4. احفظ التغييرات التي أجريتها في ملف TrustframeworkExtensions.xml .

  5. افتح ملف نهج جهة الاعتماد، مثل SignUpOrSignIn.xml، وأضِف العنصر OutputClaim إلى TechnicalProfile:

    <RelyingParty>
      <DefaultUserJourney ReferenceId="SignUpOrSignIn" />
      <TechnicalProfile Id="PolicyProfile">
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="identityProviderRefreshToken" PartnerClaimType="idp_refresh_token"/>
        </OutputClaims>
        ...
      </TechnicalProfile>
    </RelyingParty>
    
  6. احفظ التغييرات التي أجريتها في ملف نهج الطرف المعتمد على النهج.

  7. قم بتحميل ملف TrustframeworkExtensions.xml، ثم ملف نهج الطرف المعتمد.

  8. اختبار النهج الخاص بك

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

تعرف على المزيد في نظرة عامة على الرموز المميزة في Azure AD B2C.