إعداد تسجيل الدخول باستخدام موفر SamL Salesforce باستخدام بروتوكول SAML في Azure Active Directory B2C
قبل أن تبدأ استخدم اختر نوع النهجالمحدد لاختيار نوع النهج التي تقوم بإعدادها. يوفر Azure Active Directory B2C طريقتين لتحديد كيفية تفاعل المستخدمين مع تطبيقاتك: من خلال تدفقات محددة مسبقا للمستخدمين أو من خلال سياسات مخصصة قابلة للتكوين بشكل كامل. تختلف الخطوات المطلوبة في هذه المقالة لكل أسلوب.
هذه الميزة متاحة فقط للسياسات المخصصة. لخطوات الإعداد، حدد نهج مخصص في المحدد السابق.
إشعار
في Azure Active Directory B2C، تم تصميم النُهج المخصصة بشكل أساسي لمعالجة السيناريوهات المعقدة. بالنسبة إلى معظم السيناريوهات، نوصي باستخدام تدفقات المستخدم المضمنة. إذا لم تقم بذلك، تعرف على حزمة بادئ النهج المخصصة في البدء باستخدام النهج المخصصة في Active Directory B2C.
توضح هذه المقالة كيفية تمكين تسجيل الدخول للمستخدمين من مؤسسة Salesforce باستخدام نهج مخصصة في Azure Active Directory B2C (Azure AD B2C). تمكين تسجيل الدخول عن طريق إضافة موفر هوية SAML إلى نهج مخصص.
المتطلبات الأساسية
- أكمل الخطوات في ابدأ العمل مع النهج المخصص في Active Directory B2C.
- إذا كنت لم تقم بذلك بالفعل، عليك تسجيل تطبيق ويب.
- إذا لم تكن قد فعلت ذلك بالفعل، قم بالتسجيل في حساب إصدار المطور المجاني. تستخدم هذه المقالة تجربة Salesforce Lightning.
- إعداد My Domain لمؤسسة Salesforce.
إعداد Salesforce كموفر هوية
- تسجيل الدخول إلى Salesforce.
- في القائمة اليمنى، ضمن الإعدادات، قم بتوسيع الهوية،ثم حدد موفر الهوية.
- حدد تمكين موفر الهوية.
- ضمن تحديد الشهادة، حدد الشهادة التي تريد استخدام Salesforce للاتصال بـ Azure AD B2C. يمكنك استخدام الشهادة الافتراضية.
- انقر فوق حفظ.
إنشاء تطبيق متصل في Salesforce
في صفحة موفر الهوية، حدد يتم الآن إنشاء موفري الخدمة عبر التطبيقات المتصلة.
ضمن المعلومات الأساسية، أدخل القيم المطلوبة للتطبيق المتصل الخاص بك.
ضمن تطبيق ويب الإعدادات، حدد مربع تمكين SAML.
في الحقل معرف الكيان، أدخل عنوان URL التالي. تأكد من استبدال القيمة
your-tenant
باسم مستأجر Azure AD B2C.https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
عند استخدام مجال مخصص، استخدم التنسيق التالي:
https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase
في الحقل معرف الكيان، أدخل عنوان URL التالي. تأكد من استبدال القيمة
your-tenant
باسم مستأجر Azure AD B2C.https://your-tenant.b2clogin.com/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
عند استخدام مجال مخصص، استخدم التنسيق التالي:
https://your-domain-name/your-tenant.onmicrosoft.com/B2C_1A_TrustFrameworkBase/samlp/sso/assertionconsumer
مرر لأسفل القائمة، ثم انقر حفظ.
الحصول على عنوان URL للبيانات التعريفية
- في صفحة النظرة العامة للتطبيق المتصل، انقر على إدارة.
- نسخ القيمة لنقطة نهاية اكتشاف بيانات التعريف، ثم حفظها. ستستخدمه لاحقًا في هذه المقالة.
إعداد مستخدمي Salesforce للاتحاد
- في صفحة إدارةالخاصة بتطبيقك المتصل، انقر على إدارة الملفات.
- حدد ملفات التعريف (أو مجموعات المستخدمين) التي تريد التوصل إلى اتحاد مع Azure AD B2C. بصفتك مسؤول نظام، حدد خانة الاختيار مسؤول النظام، بحيث يمكنك التكفير باستخدام حساب Salesforce الخاص بك.
إنشاء شهادة موقَّعة ذاتيًا
إذا لم يكن لديك بالفعل شهادة، فيمكنك استخدام شهادة موقعة ذاتياً. الشهادة الموقعة ذاتياً هي شهادة أمان غير موقعة من قبل هيئة الشهادات (CA) ولا توفر ضمانات الأمان لشهادة موقعة من قبل هيئة شهادات.
في نظام التشغيل Windows، استخدم الأمر New-SelfSignedCertificate في PowerShell لإنشاء شهادة.
قم بتشغيل أمر PowerShell التالي لإنشاء شهادة موقعة ذاتياً. قم بتعديل الوسيطة
-Subject
بالشكل المناسب للتطبيق الخاص بك واسم مستأجر Azure AD B2C مثلcontosowebapp.contoso.onmicrosoft.com
. يمكنك أيضاً ضبط تاريخ-NotAfter
لتحديد تاريخ انتهاء صلاحية مختلف للشهادة.New-SelfSignedCertificate ` -KeyExportPolicy Exportable ` -Subject "CN=yourappname.yourtenant.onmicrosoft.com" ` -KeyAlgorithm RSA ` -KeyLength 2048 ` -KeyUsage DigitalSignature ` -NotAfter (Get-Date).AddMonths(12) ` -CertStoreLocation "Cert:\CurrentUser\My"
على جهاز الكمبيوتر الذي يعمل بنظام التشغيل Windows، ابحث عن Manage user certificates وحددها
ضمن الشهادات - المستخدم الحالي، حدد شخصي>الشهادات>yourappname.yourtenant.onmicrosoft.com.
حدد الشهادة، ثم حدد الإجراء>كل المهام>تصدير.
حدد التالي>نعم، تصدير المفتاح الخاص>التالي.
اقبل الإعدادات الافتراضية لـ تصدير تنسيق الملف، ثم حدد التالي.
قم بتمكين خيار كلمة المرور، وأدخل كلمة مرور للشهادة، ثم حدد التالي.
لتحديد موقع لحفظ الشهادة الخاصة بك، حدد استعراض وتنقل إلى الدليل الذي تختاره.
في نافذة Save As، أدخل File name، ثم حدد Save.
حدد التالي>وإنهاء.
لكي يقبل Azure AD B2C كلمة مرور ملف pfx. يجب تشفير كلمة المرور باستخدام الخيار TripleDES-SHA1 في الأداة المساعدة Windows Certificate Store Export، بدلاً من AES256-SHA256.
إنشاء مفتاح نهج
يجب أن تخزن الشهادة التي قمت بإنشائها في مستأجر Azure AD B2C.
- سجل الدخول إلى مدخل Azure.
- إذا كان لديك حق الوصول إلى عدة مستأجرين، فحدد رمز الإعدادات في القائمة العلوية للتبديل إلى مستأجر Azure AD B2C من قائمة Directories + subscriptions.
- اختر كل الخدمات في الزاوية العلويةِ اليسرى من مدخل Microsoft Azure، ثم ابحث عن Azure AD B2Cوحدده.
- في صفحة نظرة عامة، حدد Identity Experience Framework.
- حدد Policy Keys ثم حدد Add.
- بالنسبة للخيارات، اختر
Upload
. - أدخل اسمًاللنهج. على سبيل المثال SAMLSigningCert. يتم إضافة البادئة
B2C_1A_
تلقائيًا إلى اسم مفتاحك. - استعرض واختر شهادة B2CSigningCert.pfx التي قمت بإنشائها.
- أدخل كلمة المرور الخاصة بالشهادة.
- انقر فوق إنشاء.
إضافة موفر المطالبات
إذا كنت تريد من المستخدمين تسجيل الدخول باستخدام حساب Salesforce، ستحتاج إلى تعريف الحساب كموفر مطالبات يمكن لـAzure AD B2C الاتصال به من خلال نقطة نهاية. توفر نقطة النهاية مجموعة من المطالبات التي يتم استخدامها عن طريق Azure AD B2C للتحقق من مصادقة مستخدمٍ معينٍ.
يمكنك تحديد حساب Salesforce كمزود للمطالبات عن طريق إضافته إلى عنصر ClaimsProviders في ملف الامتداد الخاص بسياستك. لمزيدٍ من المعلومات، راجع تعريف موفر هوية SAML.
افتح TrustFrameworkExtensions.xml.
ابحث عن عنصر ClaimsProviders. إذا لم يكن موجودًا، فقم بإضافته تحت عنصر الجذر.
قم بإضافة ClaimsProvider جديد على النحو التالي:
<ClaimsProvider> <Domain>salesforce.com</Domain> <DisplayName>Salesforce</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="Salesforce-SAML2"> <DisplayName>Salesforce</DisplayName> <Description>Login with your Salesforce account</Description> <Protocol Name="SAML2"/> <Metadata> <Item Key="WantsEncryptedAssertions">false</Item> <Item Key="WantsSignedAssertions">false</Item> <Item Key="PartnerEntity">https://contoso-dev-ed.my.salesforce.com/.well-known/samlidp.xml</Item> </Metadata> <CryptographicKeys> <Key Id="SamlMessageSigning" StorageReferenceId="B2C_1A_SAMLSigningCert"/> </CryptographicKeys> <OutputClaims> <OutputClaim ClaimTypeReferenceId="issuerUserId" PartnerClaimType="userId"/> <OutputClaim ClaimTypeReferenceId="givenName" PartnerClaimType="given_name"/> <OutputClaim ClaimTypeReferenceId="surname" PartnerClaimType="family_name"/> <OutputClaim ClaimTypeReferenceId="email" PartnerClaimType="email"/> <OutputClaim ClaimTypeReferenceId="displayName" PartnerClaimType="username"/> <OutputClaim ClaimTypeReferenceId="authenticationSource" DefaultValue="socialIdpAuthentication"/> <OutputClaim ClaimTypeReferenceId="identityProvider" DefaultValue="salesforce.com" /> </OutputClaims> <OutputClaimsTransformations> <OutputClaimsTransformation ReferenceId="CreateRandomUPNUserName"/> <OutputClaimsTransformation ReferenceId="CreateUserPrincipalName"/> <OutputClaimsTransformation ReferenceId="CreateAlternativeSecurityId"/> <OutputClaimsTransformation ReferenceId="CreateSubjectClaimFromAlternativeSecurityId"/> </OutputClaimsTransformations> <UseTechnicalProfileForSessionManagement ReferenceId="SM-Saml-idp"/> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
تحديث قيمة PartnerEntity مع URL الخاص ببيانات تعريف Salesforce التي قمت بنسخها سابقًا.
تحديث قيمة كلا مثيلي StorageReferenceId إلى اسم مفتاح شهادة التوقيع. على سبيل المثال، B2C_1A_SAMLSigningCert.
حدد موقع
<ClaimsProviders>
القسم ثم أضف مقتطف XML التالي. إذا كان النهج الخاص بك يحتوي بالفعل على ملف التعريف التقنيSM-Saml-idp
، انتقل إلى الخطوة التالية. لمزيدٍ من المعلومات، راجع إدارة جلسة عمل تسجيل دخول أحادي.<ClaimsProvider> <DisplayName>Session Management</DisplayName> <TechnicalProfiles> <TechnicalProfile Id="SM-Saml-idp"> <DisplayName>Session Management Provider</DisplayName> <Protocol Name="Proprietary" Handler="Web.TPEngine.SSO.SamlSSOSessionProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> <Metadata> <Item Key="IncludeSessionIndex">false</Item> <Item Key="RegisterServiceProviders">false</Item> </Metadata> </TechnicalProfile> </TechnicalProfiles> </ClaimsProvider>
احفظ الملف.
إضافة الرحلة الخاصة بالمستخدم
عند هذه النقطة، تم إعداد موفر الهوية، ولكنه غير متوفر بعد في أي من صفحات تسجيل الدخول. إذا لم تكن لديك رحلة مستخدم مخصصة خاصة بك، فقم بإنشاء نسخة مكررة من رحلة المستخدم لقالب موجود، وإلا تابع إلى الخطوة التالية.
- من حزمة البداية، افتح المَلف TrustFrameworkBase.xml.
- ابحث عن المحتويات الكاملة لعنصر UserJourney الذي يتضمن
Id="SignUpOrSignIn"
وانسخها. - افتح TrustFrameworkExtensions.xml وابحث عن عنصر UserJourneys. إذا لم يكن العنصر موجودًا، فأضف عنصرًا.
- الصق المحتوى الكامل لعنصر UserJourney الذي نسخته كعنصر تابع لعنصر UserJourneys.
- أعِد تسمية المعرف الخاص بالرحلة. على سبيل المثال،
Id="CustomSignUpSignIn"
.
إضافة موفر الهوية إلى الرحلة
الآن بعد أن أصبحت لديك رحلة مستخدم، أضف موفر الهوية الجديد إلى رحلة المستخدم. تضيف أولاً الزر الخاص بتسجيل الدخول، ثم تربط الزر بإجراءٍ ما. الإجراء هو ملف التعريف الفني الذي قمت بإنشائه مسبقًا.
ابحث عن عنصر خطوة التنسيق الذي يتضمن
Type="CombinedSignInAndSignUp"
، أوType="ClaimsProviderSelection"
في الرحلة. عادةَ ما تكون الخطوة الأولى للتزامن. يحتوي عنصر ClaimsProviderSelections على قائمة موفري الهوية التي يمكن للمستخدم تسجيل الدخول من خلالها. يتحكم ترتيب العناصر في ترتيب أزرار تسجيل الدخول التي يتم عرضها للمستخدم. أضف عنصر XML ClaimsProviderSelection. تعيين قيمة TargetClaimsExchangeId إلى اسم مألوف.في خطوة التنسيق التالية، أضف عنصر ClaimsExchange . قم بتعيين المعرف إلى قيمة معرف تبادل المطالبات الهدف. وقم بتحديث قيمة TechnicalProfileReferenceId لمعرف ملف التعريف الفني الذي أنشأته مسبقاً.
يوضح XML التالي أول خطوتين للتنسيق لرحلة المستخدم من خلال موفر الهوية:
<OrchestrationStep Order="1" Type="CombinedSignInAndSignUp" ContentDefinitionReferenceId="api.signuporsignin">
<ClaimsProviderSelections>
...
<ClaimsProviderSelection TargetClaimsExchangeId="SalesforceExchange" />
</ClaimsProviderSelections>
...
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
...
<ClaimsExchanges>
<ClaimsExchange Id="SalesforceExchange" TechnicalProfileReferenceId="Salesforce-SAML2" />
</ClaimsExchanges>
</OrchestrationStep>
تكوين نهج جهة الاعتماد
يحدد نهج جهة الاعتماد، على سبيل المثال SignUpSignIn.xml، رحلة المستخدم التي سيقوم Azure AD B2C بتنفيذها. ابحث عن العنصر DefaultUserJourney ضمن جهة الاعتماد. قم بتحديث ReferenceId ليطابق معرّف رحلة المستخدم، الذي أضفت فيه موفر الهوية.
في المثال التالي، بالنسبة إلى CustomSignUpSignIn
رحلة المستخدم، تم تعيين ReferenceId إلى CustomSignUpSignIn
:
<RelyingParty>
<DefaultUserJourney ReferenceId="CustomSignUpSignIn" />
...
</RelyingParty>
تحميل النهج المخصص
- سجل الدخول إلى مدخل Azure.
- حدد مرشح «الدليل+الاشتراك»في القائمة العلوية، ثم حدد الدليل الذي يحتوي على مستأجر Azure AD B2C.
- في مدخل Microsoft Azure، ابحث عن Azure AD B2C وحددها.
- ضمن Policies، حدد Identity Experience Framework.
- حدّد Upload Custom Policy، ثم قم بتحميل ملفي النهج اللذين قمت بتغييرهما بالترتيب التالي: نهج التوسيع، على سبيل المثال
TrustFrameworkExtensions.xml
، ثم نهج جهة الاعتماد، مثلSignUpSignIn.xml
.
اختبار النهج المخصص لديك
- حدد نهج جهة الاعتماد، على سبيل المثال
B2C_1A_signup_signin
. - للوصول إلى التطبيق، حدّد تطبيق الويب الذي قمت بتسجيله مسبقاً. عنوان URL الرد يجب أن يعرض
https://jwt.ms
. - حدّدالتشغيل الآن الزر.
- من صفحة التسجيل أو تسجيل الدخول، حدّد Salesforce لتسجيل الدخول باستخدام حساب Salesforce.
إذا نجحت عملية تسجيل الدخول، فستتم إعادة توجيه المستعرض الخاص بك إلى، https://jwt.ms
، والذي يعرض محتويات الرمز المميز الذي تم إرجاعه بواسطة Azure AD B2C.