mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-03-23 06:01:13 +00:00
Merge branch 'openid-connect' into 'main'
Openid connect See merge request bde/nk20!293
This commit is contained in:
commit
60355196ce
16
README.md
16
README.md
@ -58,7 +58,13 @@ Bien que cela permette de créer une instance sur toutes les distributions,
|
|||||||
(env)$ ./manage.py createsuperuser # Création d'un⋅e utilisateur⋅rice initial
|
(env)$ ./manage.py createsuperuser # Création d'un⋅e utilisateur⋅rice initial
|
||||||
```
|
```
|
||||||
|
|
||||||
6. Enjoy :
|
6. (Optionnel) **Création d'une clé privée OpenID Connect**
|
||||||
|
|
||||||
|
Pour activer le support d'OpenID Connect, il faut générer une clé privée, par
|
||||||
|
exemple avec openssl (`openssl genrsa -out oidc.key 4096`), et renseigner son
|
||||||
|
emplacement dans `OIDC_RSA_PRIVATE_KEY` (par défaut `/var/secrets/oidc.key`).
|
||||||
|
|
||||||
|
7. Enjoy :
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
(env)$ ./manage.py runserver 0.0.0.0:8000
|
(env)$ ./manage.py runserver 0.0.0.0:8000
|
||||||
@ -228,7 +234,13 @@ Sinon vous pouvez suivre les étapes décrites ci-dessous.
|
|||||||
(env)$ ./manage.py check # pas de bêtise qui traine
|
(env)$ ./manage.py check # pas de bêtise qui traine
|
||||||
(env)$ ./manage.py migrate
|
(env)$ ./manage.py migrate
|
||||||
|
|
||||||
7. *Enjoy \o/*
|
7. **Création d'une clé privée OpenID Connect**
|
||||||
|
|
||||||
|
Pour activer le support d'OpenID Connect, il faut générer une clé privée, par
|
||||||
|
exemple avec openssl (`openssl genrsa -out oidc.key 4096`), et renseigner son
|
||||||
|
emplacement dans `OIDC_RSA_PRIVATE_KEY` (par défaut `/var/secrets/oidc.key`).
|
||||||
|
|
||||||
|
8. *Enjoy \o/*
|
||||||
|
|
||||||
### Installation avec Docker
|
### Installation avec Docker
|
||||||
|
|
||||||
|
@ -43,6 +43,11 @@ On a ensuite besoin de définir nos propres scopes afin d'avoir des permissions
|
|||||||
'SCOPES_BACKEND_CLASS': 'permission.scopes.PermissionScopes',
|
'SCOPES_BACKEND_CLASS': 'permission.scopes.PermissionScopes',
|
||||||
'OAUTH2_VALIDATOR_CLASS': "permission.scopes.PermissionOAuth2Validator",
|
'OAUTH2_VALIDATOR_CLASS': "permission.scopes.PermissionOAuth2Validator",
|
||||||
'REFRESH_TOKEN_EXPIRE_SECONDS': timedelta(days=14),
|
'REFRESH_TOKEN_EXPIRE_SECONDS': timedelta(days=14),
|
||||||
|
'PKCE_REQUIRED': False,
|
||||||
|
'OIDC_ENABLED': True,
|
||||||
|
'OIDC_RSA_PRIVATE_KEY':
|
||||||
|
os.getenv('OIDC_RSA_PRIVATE_KEY', '/var/secrets/oidc.key'),
|
||||||
|
'SCOPES': { 'openid': "OpenID Connect scope" },
|
||||||
}
|
}
|
||||||
|
|
||||||
Cela a pour effet d'avoir des scopes sous la forme ``PERMISSION_CLUB``,
|
Cela a pour effet d'avoir des scopes sous la forme ``PERMISSION_CLUB``,
|
||||||
@ -57,6 +62,14 @@ On ajoute enfin les routes dans ``urls.py`` :
|
|||||||
path('o/', include('oauth2_provider.urls', namespace='oauth2_provider'))
|
path('o/', include('oauth2_provider.urls', namespace='oauth2_provider'))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Enfin pour utiliser OIDC, il faut générer une clé privé que l'on va, par défaut,
|
||||||
|
mettre dans `/var/secrets/oidc.key` :
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
cd /var/secrets/
|
||||||
|
openssl genrsa -out oidc.key 4096
|
||||||
|
|
||||||
L'OAuth2 est désormais prêt à être utilisé.
|
L'OAuth2 est désormais prêt à être utilisé.
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,6 +227,22 @@ En production, ce fichier contient :
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Génération d'une clé privé pour OIDC
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
Pour pouvoir proposer le service de connexion Openid Connect (OIDC) par OAuth2, il y a
|
||||||
|
besoin d'une clé privé. Par défaut, elle est cherché dans le fichier `/var/secrets/oidc.key`
|
||||||
|
(sinon, il faut modifier l'emplacement dans les fichiers de configurations).
|
||||||
|
|
||||||
|
Pour générer la clé, il faut aller dans le dossier `/var/secrets` (à créer, si nécessaire) puis
|
||||||
|
utiliser la commande de génération :
|
||||||
|
|
||||||
|
.. code:: bash
|
||||||
|
|
||||||
|
cd /var/secrets
|
||||||
|
openssl genrsa -out oidc.key 4096
|
||||||
|
|
||||||
|
|
||||||
Configuration des tâches récurrentes
|
Configuration des tâches récurrentes
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
|
@ -268,6 +268,10 @@ OAUTH2_PROVIDER = {
|
|||||||
'OAUTH2_VALIDATOR_CLASS': "permission.scopes.PermissionOAuth2Validator",
|
'OAUTH2_VALIDATOR_CLASS': "permission.scopes.PermissionOAuth2Validator",
|
||||||
'REFRESH_TOKEN_EXPIRE_SECONDS': timedelta(days=14),
|
'REFRESH_TOKEN_EXPIRE_SECONDS': timedelta(days=14),
|
||||||
'PKCE_REQUIRED': False, # PKCE (fix a breaking change of django-oauth-toolkit 2.0.0)
|
'PKCE_REQUIRED': False, # PKCE (fix a breaking change of django-oauth-toolkit 2.0.0)
|
||||||
|
'OIDC_ENABLED': True,
|
||||||
|
'OIDC_RSA_PRIVATE_KEY':
|
||||||
|
os.getenv('OIDC_RSA_PRIVATE_KEY', '/var/secrets/oidc.key'),
|
||||||
|
'SCOPES': { 'openid': "OpenID Connect scope" },
|
||||||
}
|
}
|
||||||
|
|
||||||
# Take control on how widget templates are sourced
|
# Take control on how widget templates are sourced
|
||||||
|
Loading…
x
Reference in New Issue
Block a user