سياسات SAMLتأكيد

أنت تعرض مستندات 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

معالجة السياسة:

  1. إذا لم تكن الرسالة بتنسيق XML، ولم يتم ضبط نوع البيانات المراد تجاهله على true، ارتكاب خطأ.
  2. إذا كان "نموذج" ثم معالجة النموذج كما هو موضح في سياسة AssignMessage. في حال عدم توفّر أي متغيّرات وعدم ضبط UnknownUnresolvedVariables، أبلِغ خطأ.
  3. إذا كان "نموذج" ما لم يتم تعيينها، فقم بإنشاء تأكيد يتضمن قيم مَعلمات الموضوع وجهة الإصدار أو مراجعهما
  4. وقِّع على التأكيد باستخدام المفتاح المحدّد.
  5. أضف التأكيد إلى الرسالة في XPath المحدد.

التحقق من صحة تأكيد SAML

معالجة السياسة:

  1. تفحص السياسة الرسالة الواردة للتأكّد من أنّ نوع وسائط الطلب هو XML، وذلك من خلال التحقّق ممّا إذا كان نوع المحتوى يتطابق مع التنسيقات text/(.*+)?xml أو application/(.*+)?xml إذا لم يكن نوع الوسائط هو XML لم يتم ضبط السياسة <IgnoreContentType>، وسيؤدي ذلك إلى حدوث خطأ.
  2. ستحلِّل السياسة ملف XML. إذا تعذّر التحليل، سيؤدي ذلك إلى حدوث خطأ.
  3. ستستخرج السياسة العنصر المُوقَّع والتأكيد، باستخدام مسارات XPath المعنية المحددة (<SignedElementXPath> و<AssertionXPath>). وإذا لم يؤدي أي من هذه المسارات إلى أحد العناصر، فإن السياسة ستنشئ خطأ.
  4. ستتحقّق السياسة من أنّ التأكيد هو نفسه العنصر الموقَّع. هي عنصر ثانوي للعنصر المميز. وإذا لم يكن هذا صحيحًا، ستُظهر السياسة خطأً.
  5. إذا كانت إحدى القيمتَين <NotBefore> أو <NotOnOrAfter> هذه العناصر في التأكيد، ستتحقق السياسة من الطابع الزمني الحالي مقابل هذه القيم، كما هو موضح في القسم 2.5.1 الأساسي من SAML.
  6. ستطبِّق السياسة أي قواعد إضافية لمعالجة "الشروط". كما هو موضح في القسم 2.5.1.1 من SAML Core.
  7. ستتحقق السياسة من صحة التوقيع الرقمي بتنسيق 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>.
TrustStoreNotConfigured إذا كان العنصر <TrustStore> فارغًا أو غير محدّد في السمة عليك التحقّق من صحة SAMLAssertion، ثم تعذُّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب توفّر متجر موثوق به صالح.
NullKeyStoreAlias إذا كان العنصر الفرعي <Alias> فارغًا أو غير محدّد في السمة <Keystore> عنصر إنشاء سياسة تأكيد SAML، ثم نشر واجهة برمجة التطبيقات فشل الخادم الوكيل. يجب إدخال اسم مستعار صالح لملف تخزين المفاتيح.
NullKeyStore إذا كان العنصر الفرعي <Name> فارغًا أو غير محدّد في السمة <Keystore> في سياسة GenerateSAMLAssertion، ثم نشر واجهة برمجة التطبيقات فشل الخادم الوكيل. يجب إدخال اسم صالح لملف تخزين المفاتيح.
NullIssuer إذا كان العنصر <Issuer> فارغًا أو غير محدّد في إنشاء SAML سياسة التأكيد، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. حاسمة يجب إدخال قيمة <Issuer> صالحة.

متغيّرات الأخطاء

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

المتغيرات المكان مثال
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>

مواضيع ذات صلة

استخراج المتغيّرات: استخراج المتغيّرات السياسة