كيفية استخدام القارورة أو الزجاجة مع نظام SAML؟

جيمس ميلر
جيمس ميلر
جيمس هو مراجع الصناعة الذي يقيم في كثير من الأحيان أكواب نواس ترموس. يقدر مزيج الشركة من تجربة Radiator R&D وإنتاج كأس Thermos ، وغالبًا ما يشاركه مراجعاته الموضوعية على منصات مختلفة.

SAML، أو لغة ترميز تأكيد الأمان، هي معيار مفتوح لتبادل بيانات المصادقة والترخيص بين الأطراف، لا سيما في سياق تسجيل الدخول الموحد (SSO) المستند إلى الويب. يمكن أن يؤدي دمج SAML مع أطر عمل الويب مثل Flask أو Bottle إلى تعزيز الأمان وتجربة المستخدم لتطبيقاتك بشكل كبير. باعتباري أحد موردي القارورة والزجاجة، فأنا هنا لإرشادك خلال عملية استخدام أطر العمل هذه مع SAML.

فهم أساسيات SAML

قبل الغوص في عملية التكامل، من الضروري فهم المفاهيم الأساسية لـ SAML. يعمل SAML على نموذج ثلاثي الأطراف: مزود الخدمة (SP)، وموفر الهوية (IdP)، والمستخدم. مقدم الخدمة هو التطبيق الذي يتطلب المصادقة، بينما يكون IdP مسؤولاً عن التحقق من هوية المستخدم. عندما يحاول مستخدم الوصول إلى مورد محمي على SP، يقوم SP بإعادة توجيه المستخدم إلى IdP للمصادقة. بمجرد أن يتحقق IdP من هوية المستخدم، فإنه يرسل تأكيد SAML مرة أخرى إلى مقدم الخدمة، والذي يمنح المستخدم بعد ذلك حق الوصول إلى المورد المطلوب.

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

لدمج SAML مع القارورة أو الزجاجة، ستحتاج إلى ما يلي:

  1. تطبيق قارورة أو زجاجة.
  2. موفر هوية SAML (IdP). يمكنك استخدام IdP تجاري مثل Okta أو OneLogin، أو إعداد خاص بك باستخدام حلول مفتوحة المصدر مثل Shibboleth.
  3. الpython3-samlالمكتبة، والتي توفر تطبيق بايثون لبروتوكول SAML.

دمج SAML مع Flask

لنبدأ بدمج SAML مع تطبيق Flask. أولاً، قم بتثبيتpython3-samlالمكتبة باستخدام النقطة:

نقطة تثبيت python3-saml

بعد ذلك، قم بإنشاء تطبيق Flask وقم بتكوين إعدادات SAML. هنا مثال:

من قارورة استيراد قارورة، إعادة توجيه، طلب من onelogin.saml2.auth استيراد OneLogin_Saml2_Auth من onelogin.saml2.utils استيراد OneLogin_Saml2_Utils app = Flask(__name__) def init_saml_auth(req): auth = OneLogin_Saml2_Auth(req, custom_base_path='saml_config') return auth def Preparation_flask_request(request): return { 'https': 'on' if request.scheme == 'https' else 'off', 'http_host': request.host, 'server_port': request.environ['SERVER_PORT'], 'script_name': request.path, 'get_data': request.args.copy(), 'post_data': request.form.copy() } @app.route('/') def Index(): req = Prepar_flask_request(request) auth = init_saml_auth(req) return redirect(auth.login()) @app.route('/acs', أساليب=['POST']) def acs(): req = Prepar_flask_request(request) auth = init_saml_auth(req) auth.process_response() أخطاء = auth.get_errors() إذا لم تكن هناك أخطاء: قم بإرجاع "تمت المصادقة بنجاح!" آخر: إرجاع "فشلت المصادقة: {}'.format(', '.join(errors)) إذا __name__ == '__main__': app.run(debug=True)

في هذا المثال،/المسار يعيد توجيه المستخدم إلى IdP للمصادقة. ال/acsالمسار هو نقطة نهاية خدمة المستهلك التأكيدية (ACS)، التي تتلقى تأكيد SAML من IdP وتعالجه.

دمج SAML مع الزجاجة

إن دمج SAML مع تطبيق Bottle يشبه تكامل Flask. أولاً، قم بتثبيتpython3-samlالمكتبة إذا لم تكن قد قمت بذلك بالفعل. بعد ذلك، قم بإنشاء تطبيق Bottle وقم بتكوين إعدادات SAML. هنا مثال:

من زجاجة استيراد الزجاجة، إعادة التوجيه، طلب من onelogin.saml2.auth استيراد OneLogin_Saml2_Auth من onelogin.saml2.utils import OneLogin_Saml2_Utils app = Bottle() def init_saml_auth(req): auth = OneLogin_Saml2_Auth(req, custom_base_path='saml_config') return auth def Prepar_bottle_request(request): return { 'https': 'on' if request.url.startswith('https') else 'off', 'http_host': request.host, 'server_port': request.environ.get('SERVER_PORT', '80'), 'script_name': request.path, 'get_data': request.query.dict, 'post_data': request.forms.dict } @app.route('/') def Index(): req = Prepar_bottle_request(request) auth = init_saml_auth(req) return redirect(auth.login()) @app.route('/acs',method='POST') def acs(): req = Preparation_bottle_request(request) auth = init_saml_auth(req) أخطاء auth.process_response() = auth.get_errors() إذا لم تكن هناك أخطاء: قم بإرجاع "تمت المصادقة بنجاح!" آخر: إرجاع "فشلت المصادقة: {}'.format(', '.join(errors)) إذا __name__ == '__main__': app.run(debug=True)

في هذا المثال،/المسار يعيد توجيه المستخدم إلى IdP للمصادقة، و/acsيعالج المسار تأكيد SAML.

تكوين إعدادات SAML

يتم تخزين إعدادات SAML في ملف التكوين. قم بإنشاء دليل باسمsaml_configفي جذر المشروع الخاص بك وإنشاء ملف اسمهsettings.jsonداخله. فيما يلي مثال للتكوين:

{ "صارم": صحيح، "تصحيح": صحيح، "sp": { "entityId": "https://your-app.com/metadata"، "assertionConsumerService": { "url": "https://your-app.com/acs"، "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" }، "singleLogoutService": { "url": "https://your-app.com/slo"، "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" }, "NameIDFormat": "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"، "x509cert": ""، "privateKey": "" }, "idp": { "entityId": "https://your-idp.com/metadata", "singleSignOnService": { "url": "https://your-idp.com/sso", "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" }, "singleLogoutService": { "url": "https://your-idp.com/slo"، "binding": "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" }, "x509cert": "-----بدء الشهادة-----\n...\n-----نهاية الشهادة-----" } }

استبدل عناوين URL ومعلومات الشهادة بقيمك الفعلية.

Stainless Steel Insulated Coffee Pot suppliersStainless Steel Insulated Coffee Pot factory

فوائد استخدام SAML مع القارورة أو الزجاجة

يوفر دمج SAML مع القارورة أو الزجاجة العديد من الفوائد:

  1. تعزيز الأمن: يوفر SAML طريقة آمنة لمصادقة المستخدمين باستخدام التوقيعات الرقمية والتشفير.
  2. الدخول الموحد (SSO): يمكن للمستخدمين تسجيل الدخول إلى تطبيقات متعددة باستخدام مجموعة واحدة من بيانات الاعتماد، مما يحسن تجربة المستخدم.
  3. إدارة الهوية المركزية: يتيح لك SAML إدارة هويات المستخدمين من موقع مركزي، مما يسهل التحكم في الوصول إلى تطبيقاتك.

خاتمة

يعد دمج SAML مع Flask أو Bottle عملية مباشرة يمكنها تحسين الأمان وتجربة المستخدم لتطبيقاتك بشكل كبير. باعتباري موردًا للقوارير والزجاجات، يمكنني أن أقدم لك الدعم والموارد اللازمة لضمان التكامل السلس. إذا كنت مهتمًا بشراء منتجات القارورة أو الزجاجة الخاصة بنا، أو إذا كانت لديك أية أسئلة حول تكامل SAML، من فضلكاتصل بنا لمناقشة مفصلة.

المنتجات ذات الصلة

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

مراجع

  • وثائق مكتبة OneLogin Python SAML
  • توثيق القارورة
  • توثيق الزجاجة
  • مواصفات SAML

إرسال التحقيق

منشورات المدونة الشائعة