Это демонстрационное приложение, чтобы объяснить, как реализован поток кода OpenID Connect.
$ python app.pyFlask запустит веб -сервер, прослушивающий все интерфейсы, которые можно использовать для демонстрационных целей. WebServer будет использовать 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
Настройки. Измените значения, чтобы соответствовать вашей системе.
| Имя | Тип | По умолчанию | Описание |
|---|---|---|---|
issuer | нить | Идентификатор эмитента токена. Это используется как для открытия Connect Discovery, так и для проверки токена идентификатора. Обязательно для открытия | |
client_id | нить | Идентификатор для клиента. Используется для аутентификации клиента против конечной точки сервера авторизации. | |
client_secret | нить | Общий секрет для использования для аутентификации против конечной точки токена. | |
dcr_client_id | нить | Идентификатор клиента клиента для использования для регистрации. | |
dcr_client_secret | нить | Секрет клиента клиента для использования для регистрации. | |
scope | нить | openid | Прицелы, чтобы просить. |
verify_ssl_server | логический | true | Установите на FALSE, чтобы отключить чеки на сертификат. |
debug | логический | false | Если установить в True, Flask будет в режиме отладки и записывает StackTraces, если произойдет ошибка. Некоторые дополнительные журналы также напечатаны. |
port | число | 5443 | Порт, который должен прослушать сервер Flask |
disable_https | логический | false | Установить в rue для запуска на 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:
Curity ab
[email protected] https://certion.io
Copyright (C) 2016 Curity AB.