example python openid connect client
1.0.0
這是一個演示應用程序,可以解釋如何實現OpenID連接代碼流。
$ python app.py燒瓶將啟動Web服務器在所有可用於演示目的的接口上偵聽。 Web服務器將使用HTTP和Localhost證書。瀏覽到https:// localhost:5443以查看應用程序。
Python 3.x (用Python 3.9.1測試)
OpenSSL 1.0能夠執行現代TLS版本。 Python與0.9.X一起具有一個錯誤,使得無法在握手中選擇協議,因此它無法連接到已禁用SSLV2的服務器。
可以通過使用PIP安裝python依賴性: pip install -r requirements.txt
settings.json用作示例應用程序的配置文件。更改值以匹配您的系統。
| 姓名 | 類型 | 預設 | 描述 |
|---|---|---|---|
issuer | 細繩 | 令牌發行人的ID。這既用於OpenID Connect Discovery,又用於驗證ID令牌。強制性發現 | |
client_id | 細繩 | 客戶的ID。用於針對授權服務器端點進行身份驗證客戶端。 | |
client_secret | 細繩 | 用於針對令牌端點的身份驗證的共同秘密。 | |
dcr_client_id | 細繩 | 客戶端的客戶ID用於註冊。 | |
dcr_client_secret | 細繩 | 客戶的秘密用於註冊。 | |
scope | 細繩 | openid | 要要求的範圍。 |
verify_ssl_server | 布爾 | true | 設置為虛假至禁用證書檢查。 |
debug | 布爾 | false | 如果設置為true,則燒瓶將處於調試模式,並在發生錯誤時編寫stackTraces。還打印了一些額外的記錄。 |
port | 數字 | 5443 | 燒瓶服務器應收聽的端口 |
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 Web密鑰(JWK)用於在請求對像中或請求URI中的引用中發送授權請求參數副標時使用的JWT。例如:{"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 | 指向JWK設置的URL。如果請求開放式範圍,則必須強制使用。 |
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://curity.io
版權(C)2016 Curity AB。