"حالة HTTP STATE 401 - فشل المصادقة: رسالة SAML الواردة غير صالحة" مع Salesforce كشرب مطبخ لتطبيق SSO

StackOverflow https://stackoverflow.com//questions/23059203

سؤال

لقد قمت بتطبيق SSO باستخدام SPRING SAML وكل شيء يعمل بشكل جيد. عملت مع IDP التالي حتى الآن: 1) idp.ssocircle.com. 2) openidp.feide.no

الآن أنا اختبار مع salesforce.com كمزود الهوية الخاصة به. نظرا لعدم وجود اعتماد لتحميل بيانات مزود الخدمة التي قمت بإجراء إعدادات التكوين التالية في IDP:

أعطت

عنوان URL الخاص بخدمة المستهلك المستهلك. أنا أيضا تحميل شهادة SP الخاص بي. لقد قمت بتنزيل بيانات التعريف الخاصة بها (بيانات التعريف IDP) وهي على النحو التالي (إخفاء المعلومات الحساسة):

giveacodicetagpre.

الآن عندما حاولت اختبار بلدي SP، أولا إعادة توجيه لي إلى النازحين (Salesforce) (Salesforce) (Salesforce) (Salesforce) يسأل عن بيانات الاعتماد التي أدخلتها، لكن بعد ذلك تم إعادة توجيهها إلى عنوان URL الخاص بخدمة المستهلك الخاص بي (وهو SP) ولكن هنا تم إنشاء استثناء قائلا أن

حالة HTTP 401 - يتطلب هذا الطلب مصادقة HTTP (فشل المصادقة: رسالة SAML الواردة غير صالحة).

لقد جربت ما يلي ولكن لم أعمل :( - وإن لم يكن ذلك ضروريا، فقد قمت بتنزيل ملف الشهادة من Salesforce واستيراده إلى Keystore.jks الخاص بي بحيث للتأكد من استخدام المفتاح للتحقق من صحة التوقيع. (ليس ضروريا بسبب معلومات الشهادة الموجودة بالفعل في بيانات التعريف IDP).

هنا هو ما وجدته في ملف السجل الخاص بي (إضافة المعلومات اللازمة فقط بعد نجاح AuthnRequest):

giveacodicetagpre.

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

شكرا،

abhilash

هل كانت مفيدة؟

المحلول

يستخدم النازح الناتبي الخاص بك مفتاحا مختلفا للتوقيعات الرقمية أكثر مما يعرف في البيانات الوصفية.

يجب عليك تفتيش رسالة SAML التي تلقيتها وتبحث عن عنصر X509Certificate داخل عنصر التوقيع. استخراج محتوى الشهادة في ملف منفصل، E.G. Sales-Force-Sign.cer

تحتاج بعد ذلك إلى استيراد الشهادة في Samlkeystore.jks، يمكنك العثور على تفاصيل حول كيفية القيام بذلك في الفصل 4.5 (إدارة المفاتيح) من دليل SPRING SAML. تأكد من ملاحظة الاسم المستعار الذي تقوم باستيراد المفتاح به.

كخطوة أخرى، تحتاج إلى إخبار SPRING SAML باستخدام المفتاح المستورد حديثا للتحقق من التوقيع الخاص بك من أجل داخليا، لأنه يجب عليك تحديث SecurityContext.xml وتحديث ExtendedMetTATA الخاص بك للحصول على تسجيل الدخول الخاص بك مع تسجيل الدخول وقيمة الاسم المستعار إليهم تستخدم في وقت سابق لاستيراد المفتاح. سوف تبدو مشابهة ل:

giveacodicetagpre.

مرة أخرى يمكنك العثور على تفاصيل على كل هذا في الدليل.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top