أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
المزايا
- مصادقة البريد الوارد وتفويضه: التحقُّق من صحة تأكيد SAML
السياسة
يتيح نوع سياسة SAML للخوادم الوكيلة لواجهة برمجة التطبيقات التحقق من صحة تأكيدات SAML المرفقة بـ طلبات SOAP الواردة. تتحقّق سياسة SAML من الرسائل الواردة التي تحتوي على تأكيد SAML الموقَّع رقميًا، ورفضه إذا كانت غير صالحة، وإعداد المتغيرات التي السماح بالسياسات الإضافية أو خدمات الخلفية نفسها بالتحقق من المعلومات بشكل أكبر في التأكيد. - إنشاء الرموز المميّزة الصادرة: إنشاء سياسة تأكيد SAML
يتيح نوع سياسة SAML للخوادم الوكيلة لواجهة برمجة التطبيقات إرفاق تأكيدات SAML بطلبات XML الصادرة. بعد ذلك، تتوفر هذه التأكيدات لتفعيل خدمات الخلفية لتطبيق المزيد من الأمان. لمعالجة المصادقة والترخيص.
نماذج
إنشاء تأكيد SAML
<GenerateSAMLAssertion name="SAML" ignoreContentType="false"> <CanonicalizationAlgorithm /> <Issuer ref="reference">Issuer name</Issuer> <KeyStore> <Name ref="reference">keystorename</Name> <Alias ref="reference">alias</Alias> </KeyStore> <OutputVariable> <FlowVariable>assertion.content</FlowVariable> <Message name="request"> <Namespaces> <Namespace prefix="test">http://www.example.com/test</Namespace> </Namespaces> <XPath>/envelope/header</XPath> </Message> </OutputVariable> <SignatureAlgorithm /> <Subject ref="reference">Subject name</Subject> <Template ignoreUnresolvedVariables="false"> <!-- A lot of XML goes here, in CDATA, with {} around each variable --> </Template> </GenerateSAMLAssertion>
إنشاء تأكيد SAML
التحقق من صحة تأكيد SAML
<ValidateSAMLAssertion name="SAML" ignoreContentType="false"> <Source name="request"> <Namespaces> <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace> <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace> <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace> </Namespaces> <AssertionXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</AssertionXPath> <SignedElementXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</SignedElementXPath> </Source> <TrustStore>TrustStoreName</TrustStore> <RemoveAssertion>false</RemoveAssertion> </ValidateSAMLAssertion>
التحقق من صحة تأكيد SAML
مرجع العنصر
إنشاء تأكيد SAML
اسم الحقل | الوصف | ||
---|---|---|---|
سمة واحدة (name ) |
اسم مثيل السياسة. يجب أن يكون الاسم فريدًا في
التنظيم. تقتصر الأحرف التي يمكنك استخدامها في الاسم على: A-Z0-9._\-$
% . ومع ذلك، تفرض واجهة مستخدم الإدارة قيودًا إضافية، مثل
إزالة الأحرف غير الأبجدية الرقمية تلقائيًا. |
||
سمة واحدة (ignoreContentType ) |
قيمة منطقية يمكن ضبطها على true أو false . بشكل افتراضي،
لن يتم إنشاء تأكيد إذا لم يكن نوع محتوى الرسالة بتنسيق XML
نوع المحتوى: أمّا إذا تم ضبط السياسة على true ، فسيتم التعامل مع الرسالة على أنّها XML.
بغض النظر عن نوع المحتوى. |
||
Issuer |
المعرّف الفريد لموفّر الهوية إذا كانت السمة الاختيارية
ref
التي يمكن تعيينها، فسيتم تعيين قيمة جهة الإصدار في وقت التشغيل بناءً على
المتغير المحدد. في حال عدم توفّر السمة ref الاختيارية،
سيتم استخدام قيمة جهة الإصدار.
|
||
KeyStore |
اسم KeyStore الذي يحتوي على المفتاح الخاص والاسم المستعار للمفتاح الخاص
تُستخدم لتوقيع تأكيدات SAML رقميًا.
|
||
OutputVariable |
|||
FlowVariable |
|||
Message |
تشير هذه السمة إلى الهدف من السياسة. القيمتان الصالحتان هما message وrequest .
وresponse . وعند ضبطها على message ، يتم تطبيق السياسة بشكل مشروط.
لاسترداد كائن الرسالة استنادًا إلى نقطة المرفق في السياسة. عند إرفاقها بـ
"تدفق الطلب"، تعمل السياسة على تحليل message للطلب، وعند إرفاقها
مسار الاستجابة، ستحل السياسة message للاستجابة. |
||
XPath |
تعبير XPath يشير إلى العنصر الموجود في مستند XML الصادر الذي ستُرفِق السياسة تأكيد SAML. | ||
SignatureAlgorithm |
SHA1 أو SHA256 | ||
Subject |
المعرّف الفريد لموضوع تأكيد SAML. إذا كانت السمة الاختيارية
تتوفّر السمة
ref ، وبالتالي سيتم تعيين قيمة الموضوع على
على أساس المتغير المحدد. إذا كانت السمة الاختيارية ref هي
الحالية، فسيتم استخدام قيمة الموضوع.
|
||
Template |
في حال توفّره، سيتم إنشاء التأكيد من خلال تشغيل هذا النموذج، مع استبدال
كل شيء يُرمز إلى
{} بالمتغير المقابل، ثم رقميًا
وتوقيع النتيجة. تتم معالجة النموذج باتّباع قواعد سياسة AssignMessage.
الاطّلاع على تعيين
سياسة الرسائل
|
التحقق من صحة تأكيد SAML
اسم الحقل | الوصف |
---|---|
سمة واحدة (name ) |
اسم مثيل السياسة. يجب أن يكون الاسم فريدًا في المؤسسة.
تقتصر الأحرف التي يمكنك استخدامها في الاسم على:
A-Z0-9._\-$ % .
ومع ذلك، تفرض واجهة مستخدم الإدارة قيودًا إضافية، مثل
إزالة الأحرف غير الأبجدية الرقمية.
|
سمة واحدة (ignoreContentType ) |
قيمة منطقية يمكن ضبطها على true أو false . بشكل افتراضي،
لن يتم إنشاء تأكيد إذا لم يكن نوع محتوى الرسالة بتنسيق XML
نوع المحتوى: أمّا إذا تم ضبط السياسة على true ، فسيتم التعامل مع الرسالة على أنّها XML.
بغض النظر عن نوع المحتوى. |
Source |
تشير هذه السمة إلى الهدف من السياسة. القيمتان الصالحتان هما message وrequest .
وresponse . وعند ضبطها على message ، يتم تطبيق السياسة بشكل مشروط.
لاسترداد كائن الرسالة استنادًا إلى نقطة المرفق في السياسة. عند إرفاقها بـ
"تدفق الطلب"، تعمل السياسة على تحليل message للطلب، وعند إرفاقها
مسار الاستجابة، ستحل السياسة message للاستجابة. |
XPath |
تمّت إزالة هذا العمود. تابع لـ
Source . استخدام
"AssertionXPath " وSignedElementXPath "
|
AssertionXPath |
تابع لـ
Source . تعبير XPath يشير إلى العنصر الموجود في
مستند XML الوارد الذي يمكن للسياسة استخراج تأكيد SAML منه.
|
SignedElementXPath |
تابع لـ
Source . تعبير XPath يشير إلى العنصر الموجود في
مستند XML الوارد الذي يمكن للسياسة استخراج العنصر المُوقَّع منه هذا النمط
قد يكون مختلفًا أو مماثلاً لمسار XPath الخاص بـ AssertionXPath .
|
TrustStore |
اسم TrustStore الذي يحتوي على شهادات X.509 الموثوق بها المستخدمة للتحقق
التوقيعات الرقمية على تأكيدات SAML.
|
RemoveAssertion |
قيمة منطقية يمكن ضبطها على
true أو false . فعندما
true ، سيتم إزالة تأكيد SAML من رسالة الطلب قبل
تتم إعادة توجيه الرسالة إلى خدمة الخلفية.
|
ملاحظات الاستخدام
تحدد مواصفات لغة ترميز تأكيد الأمان (SAML) التنسيقات والبروتوكولات التي تمكين التطبيقات من تبادل المعلومات بتنسيق XML للمصادقة التفويض.
"تأكيد الأمان" هو رمز مميز موثوق به يصف سمة التطبيق أو مستخدم التطبيق أو مشارك آخر في معاملة. تتم إدارة تأكيدات الأمان واستخدامها من قِبل مستخدمَين أنواع الكيانات:
- موفِّرو الهوية: إنشاء تأكيدات الأمان نيابةً عن المشاركين
- مقدِّمو الخدمات: التحقق من صحة تأكيدات الأمان من خلال علاقات موثوقة مع الهوية مقدّمو خدمة
قد تعمل منصة واجهة برمجة التطبيقات كموفِّر هوية ومقدّم خدمة. إنها بمثابة موفِّر الهوية من خلال إنشاء تأكيدات وإرفاقها بطلب الرسائل، مما التأكيدات المتاحة للمعالجة بواسطة خدمات الخلفية. إنها بمثابة مقدم خدمة من خلال التحقق من صحة التأكيدات على رسائل الطلبات الواردة.
يتوافق نوع سياسة SAML مع تأكيدات SAML التي تطابق الإصدار 2.0 من SAML Core المواصفات والإصدار 1.0 من مواصفات الملف الشخصي للرمز المميز لـ WS-Security SAML.
إنشاء تأكيد SAML
معالجة السياسة:
- إذا لم تكن الرسالة بتنسيق XML، ولم يتم ضبط نوع البيانات المراد تجاهله على
true
، ارتكاب خطأ. - إذا كان "نموذج" ثم معالجة النموذج كما هو موضح في سياسة AssignMessage. في حال عدم توفّر أي متغيّرات وعدم ضبط UnknownUnresolvedVariables، أبلِغ خطأ.
- إذا كان "نموذج" ما لم يتم تعيينها، فقم بإنشاء تأكيد يتضمن قيم مَعلمات الموضوع وجهة الإصدار أو مراجعهما
- وقِّع على التأكيد باستخدام المفتاح المحدّد.
- أضف التأكيد إلى الرسالة في XPath المحدد.
التحقق من صحة تأكيد SAML
معالجة السياسة:
- تفحص السياسة الرسالة الواردة للتأكّد من أنّ نوع وسائط الطلب هو XML، وذلك من خلال
التحقّق ممّا إذا كان نوع المحتوى يتطابق مع التنسيقات
text/(.*+)?xml
أوapplication/(.*+)?xml
إذا لم يكن نوع الوسائط هو XML لم يتم ضبط السياسة<IgnoreContentType>
، وسيؤدي ذلك إلى حدوث خطأ. - ستحلِّل السياسة ملف XML. إذا تعذّر التحليل، سيؤدي ذلك إلى حدوث خطأ.
- ستستخرج السياسة العنصر المُوقَّع والتأكيد، باستخدام مسارات XPath المعنية
المحددة (
<SignedElementXPath>
و<AssertionXPath>
). وإذا لم يؤدي أي من هذه المسارات إلى أحد العناصر، فإن السياسة ستنشئ خطأ. - ستتحقّق السياسة من أنّ التأكيد هو نفسه العنصر الموقَّع. هي عنصر ثانوي للعنصر المميز. وإذا لم يكن هذا صحيحًا، ستُظهر السياسة خطأً.
- إذا كانت إحدى القيمتَين
<NotBefore>
أو<NotOnOrAfter>
هذه العناصر في التأكيد، ستتحقق السياسة من الطابع الزمني الحالي مقابل هذه القيم، كما هو موضح في القسم 2.5.1 الأساسي من SAML. - ستطبِّق السياسة أي قواعد إضافية لمعالجة "الشروط". كما هو موضح في القسم 2.5.1.1 من SAML Core.
- ستتحقق السياسة من صحة التوقيع الرقمي بتنسيق XML، باستخدام قيم
<TrustStore>
و<ValidateSigner>
كما هو موضّح أعلاه. وفي حال تعذُّر عملية التحقّق، سيُحدث خطأ بسبب السياسة.
بعد اكتمال السياسة بدون الإبلاغ عن خطأ، يمكن لمطوّر الخادم الوكيل التأكّد من ما يلي:
- التوقيع الرقمي على التأكيد صالح وتم توقيعه من قِبل مرجع تصديق موثوق به.
- التأكيد صالح للفترة الزمنية الحالية
- سيتم استخراج موضوع التأكيد وجهة إصداره وضبطه في متغيّرات التدفق. من المهم مسؤولية السياسات الأخرى عن استخدام هذه القيم لإجراء مصادقة إضافية، مثل التحقق من أن اسم الموضوع صالح أو تمريره إلى نظام مستهدف للتحقق من صحته.
يمكن استخدام السياسات الأخرى، مثل TransportVariables، لتحليل XML الأولي للتأكيد. لإجراء عملية تحقق أكثر تعقيدًا.
متغيّرات التدفق
هناك الكثير من المعلومات التي يمكن تحديدها في تأكيد SAML. معيار SAML هو سمة XML يمكن تحليلها باستخدام سياسة OutputVariables آليات من أجل تنفيذ عمليات تحقق أكثر تعقيدًا.
متغير | الوصف |
---|---|
saml.id |
رقم تعريف تأكيد SAML |
saml.issuer |
"جهة الإصدار" من التأكيد، تم تحويلها من نوع XML الأصلي إلى سلسلة |
saml.subject |
"الموضوع" من التأكيد، تم تحويلها من نوع XML الأصلي إلى سلسلة |
saml.valid |
عرض true أو false بناءً على نتيجة التحقق من الصلاحية |
saml.issueInstant |
IssueInstant |
saml.subjectFormat |
تنسيق الموضوع |
saml.scmethod |
طريقة تأكيد الموضوع |
saml.scdaddress |
عنوان البيانات لتأكيد صاحب التسجيل |
saml.scdinresponse |
بيانات تأكيد الموضوع في الردّ |
saml.scdrcpt |
مستلِم بيانات تأكيد الموضوع |
saml.authnSnooa |
جلسة AuthnStatementNotOnOrAfter |
saml.authnContextClassRef |
AuthnStatement AuthnContextClassref |
saml.authnInstant |
مصادقة AuthnStatement الفورية |
saml.authnSessionIndex |
فهرس جلسة بيان المصادقة |
مرجع الخطأ
يصف هذا القسم رموز الأخطاء ورسائل الخطأ التي يتم عرضها. ومتغيرات الخطأ التي تحددها Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. من المهم معرفة هذه المعلومات إذا كنت تضع قواعد خطأ التعامل مع الأخطاء. للحصول على مزيد من المعلومات، يمكنك الاطّلاع على ما تحتاج إلى معرفته حول أخطاء السياسة والتعامل مع المعالجة والأخطاء.
أخطاء النشر
يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.
اسم الخطأ | السبب | إصلاح |
---|---|---|
SourceNotConfigured |
يشير عنصر أو أكثر من العناصر التالية إلى عملية تأكيد صحة SAML
لم يتم تحديد السياسة أو فارغة: <Source> ، <XPath> ،
<Namespaces> ، <Namespace> .
|
build |
TrustStoreNotConfigured |
إذا كان العنصر <TrustStore> فارغًا أو غير محدّد في السمة
عليك التحقّق من صحة SAMLAssertion، ثم تعذُّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
يجب توفّر متجر موثوق به صالح.
|
build |
NullKeyStoreAlias |
إذا كان العنصر الفرعي <Alias> فارغًا أو غير محدّد في السمة <Keystore>
عنصر إنشاء سياسة تأكيد SAML، ثم نشر واجهة برمجة التطبيقات
فشل الخادم الوكيل. يجب إدخال اسم مستعار صالح لملف تخزين المفاتيح.
|
build |
NullKeyStore |
إذا كان العنصر الفرعي <Name> فارغًا أو غير محدّد في السمة <Keystore>
في سياسة GenerateSAMLAssertion، ثم نشر واجهة برمجة التطبيقات
فشل الخادم الوكيل. يجب إدخال اسم صالح لملف تخزين المفاتيح.
|
build |
NullIssuer |
إذا كان العنصر <Issuer> فارغًا أو غير محدّد في إنشاء SAML
سياسة التأكيد، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. حاسمة
يجب إدخال قيمة <Issuer> صالحة.
|
build |
متغيّرات الأخطاء
يتم ضبط هذه المتغيّرات عند حدوث خطأ في بيئة التشغيل. يمكنك الاطّلاع على مقالة ما تحتاج إلى معرفته للحصول على مزيد من المعلومات. حول أخطاء السياسة.
المتغيرات | المكان | مثال |
---|---|---|
fault.name="fault_name" |
تمثّل السمة fault_name اسم الخطأ. اسم الخطأ هو الجزء الأخير من رمز الخطأ. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
لضبط سياسة تأكيد SAML، تكون بادئة الخطأ هي
ValidateSAMLAssertion |
GenerateSAMLAssertion.failed = true |
مثال على استجابة الخطأ
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
مثال على قاعدة الخطأ
<FaultRules> <FaultRule name="invalid_saml_rule"> <Step> <Name>invalid-saml</Name> </Step> <Condition>(GenerateSAMLAssertion.failed = "true")</Condition> </FaultRule> </FaultRules>
مواضيع ذات صلة
استخراج المتغيّرات: استخراج المتغيّرات السياسة