authlib / authlib/example-oidc-server
Add OIDC Discovery support
- Langage dominant
- Python
- Étoiles
- 65
- Forks
- 37
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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).
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par examiner l’endpoint jwks_uri existant de #2 et le handler proposé pour /.well-known/openid-configuration dans cette issue. Vérifiez les exigences de découverte d’OpenID Connect et confirmez les endpoints répertoriés, l’issuer, les algorithmes de signature, les types de réponse, les types de sujet et les méthodes d’authentification des tokens. La tâche est terminée lorsque le serveur d’exemple expose un endpoint de découverte correct qui fonctionne avec des clients OIDC existants.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- api, authentication
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100