authlib / authlib/example-oidc-server
Add OIDC Discovery support
- Vorherrschende Sprache
- Python
- Sterne
- 65
- Forks
- 37
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
This makes it massively easier to integrate with existing oidc clients.
After getting the the `jwks_uri` endpoint to work as described in #2 I added this handler to get auto discovery to work:
```python
@bp.route("/.well-known/openid-configuration")
def well_known_openid_configuration():
def external_url(function_name):
return url_for(function_name, _external=True)
return jsonify({
"authorization_endpoint": external_url('.authorize_endpoint'),
"token_endpoint": external_url('.token_endpoint'),
"userinfo_endpoint": external_url('.userinfo_endpoint'),
"jwks_uri": external_url('.jwks_endpoint'),
# Do I even need this one?
# IMO the OIDC server doesn't have a concept of a user being still logged in? --mh
# "end_session_endpoint": "http://oidc:4000/openid/end-session",
"id_token_signing_alg_values_supported": [
"HS256",
"RS256"
],
"issuer": JWT_CONFIG['iss'],
"response_types_supported": [
"code",
# TODO check what it takes to support these too
# "id_token",
# "id_token token",
# "code token",
# "code id_token",
# "code id_token token"
],
"subject_types_supported": [
"public"
],
"token_endpoint_auth_methods_supported": [
# TODO is supporting both a good idea? --mh
"client_secret_post",
"client_secret_basic"
],
})
```
@lepture is there a way to add this to the example code? Or use this a starting point to add it? (I'm not particularly sure this is even right).
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne damit, den bestehenden jwks_uri-Endpunkt aus #2 und den in diesem Issue vorgeschlagenen Handler für /.well-known/openid-configuration zu überprüfen. Prüfe die Anforderungen für die OpenID-Connect-Discovery und bestätige die aufgeführten Endpunkte, den Issuer, die Signaturalgorithmen, die Antworttypen, die Subjekttypen und die Token-Authentifizierungsmethoden. Als abgeschlossen gilt die Aufgabe, wenn der Beispielserver einen korrekten Discovery-Endpunkt bereitstellt, der mit bestehenden OIDC-Clients funktioniert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api, authentication
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100