هذا هو تطبيق تجريبي لشرح كيفية تطبيق تدفق رمز Connect OpenID.
$ python app.pyستبدأ Flask خادم ويب يستمع على جميع الواجهات التي يمكن استخدامها لأغراض التجريبية. سيستخدم خادم الويب HTTPS مع شهادة لـ LocalHost. تصفح إلى https: // localhost: 5443 لرؤية التطبيق.
Python 3.x (تم اختباره مع Python 3.9.1)
OpenSSL 1.0 ليكون قادرًا على القيام بإصدارات TLS الحديثة. Python مع 0.9.x لديه خطأ يجعل من المستحيل تحديد البروتوكول في المصافحة ، لذلك لا يمكن الاتصال بالخوادم التي عطلت SSLV2.
يمكن تثبيت تبعيات Python باستخدام PIP: pip install -r requirements.txt
settings.json يستخدم كملف تكوين لتطبيق المثال. تغيير القيم لتتناسب مع نظامك.
| اسم | يكتب | تقصير | وصف |
|---|---|---|---|
issuer | خيط | معرف المصدر المميز. يتم استخدام هذا لكلا OpenID Connect Discovery ، والتحقق من صحة رمز الهوية. إلزامي للاكتشاف | |
client_id | خيط | معرف العميل. تستخدم لمصادقة العميل مقابل نقطة نهاية خادم التخويل. | |
client_secret | خيط | السر المشترك لاستخدامه للمصادقة مقابل نقطة النهاية الرمزية. | |
dcr_client_id | خيط | معرف العميل للعميل لاستخدامه في التسجيل. | |
dcr_client_secret | خيط | سر العميل للعميل لاستخدامه في التسجيل. | |
scope | خيط | openid | النطاقات لطلب. |
verify_ssl_server | منطقية | true | تعيين إلى خطأ لتعطيل الشيكات الشهادة. |
debug | منطقية | false | إذا تم ضبطها على TRUE ، فسيكون Flask في وضع التصحيح وكتابة StackTraces في حالة حدوث خطأ. يتم طباعة بعض قطع الأشجار الإضافية أيضًا. |
port | رقم | 5443 | المنفذ الذي يجب أن يستمع إليه خادم Flask |
disable_https | منطقية | false | تعيين على True لتشغيل على HTTP |
base_url | خيط | عنوان URL الأساسي لإضافته إلى إعادة التوجيه الداخلية. إذا لم يتم تكوين ذلك ، فسيتم استخراج عنوان URL الأساسي من الطلب الأول إلى صفحة الفهرس | |
send_parameters_via | خيط | query_string | كيف ينبغي إرسال معلمات الطلب إلى نقطة نهاية التفويض. القيم الصحيحة هي query_string ، request_object أو request_uri . |
request_object_keys | كائن JSON | يستخدم مفتاح الويب JSON (JWK) لتوقيع JWTS المستخدمة عند إرسال معلمات طلب التفويض في قيمة طلب أو بالرجوع في طلب URI. على سبيل المثال:{"kty":"RSA","n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw","e":"AQAB","d":"X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqijwp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d_cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBznbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFzme1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q","p":"83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPVnwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqVWlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs","q":"3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyumqjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgxkIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk","dp":"G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oimYwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_NmtuYZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0","dq":"s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUUvMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk","qi":"GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzgUIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rxyR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU","alg":"RS256","kid":"2011-04-29"} |
| اسم | يكتب | وصف |
|---|---|---|
jwks_uri | عنوان URL | عنوان URL الذي يشير إلى مجموعة JWK. إلزامي إذا تم طلب نطاق OpenID. |
authorization_endpoint | عنوان URL إلى نقطة نهاية التفويض. | |
token_endpoint | عنوان URL | عنوان URL إلى نقطة النهاية الرمزية. |
registration_endpoint | عنوان URL | عنوان URL إلى نقطة نهاية التسجيل. |
لتشغيل المثال في حاوية Docker ، قم بإنشاء صورة وقم بتشغيل حاوية مثل هذا:
$ docker build -t curityio/openid-python-example .
$ docker run -ti curityio/openid-python-example
يمكن تعيين جميع الإعدادات باستخدام متغير البيئة بأحرف كبيرة. مثال:
$ docker build -t curityio/openid-python-example
$ docker run -e DEBUG=true -e ISSUER=se.curity -ti curityio/openid-python-example في جذر المستودع ، هناك docker-compose.yml . تخصيص الإعدادات باستخدام متغيرات البيئة بأحرف كبيرة.
$ docker-compose upللأسئلة والدعم ، اتصل بـ Curity AB:
النقل AB
[email protected] https://curity.io
حقوق الطبع والنشر (C) 2016 Curity AB.