Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bonjour,
Tout d'abord merci pour cette merveilleuse application !
Cette PR est plus conséquente que j'aurais cru, je comprendrais qu'elle ne soit pas accepter en l'état.
Objectif de la PR : Supporter le protocole OpenID Connect afin de permettre à Deming de s'intégrer à une solution WebSSO (Single Sign-On) tel que Keycloak. Cela inclut l'authentification, la création et la mise à jour de l'utilisateur.
Cette PR ajoute 2 nouvelles dépendances :
La première est un composant Laravel permettant d'ajouter le support à OAuth2 et OpenID Connect, la seconde est une extension permettant l'intégration de Keycloak.
Les nouveaux fichiers :
app/Http/Controllers/SocialiteController.php
: contrôleur permettant l’authentification/création/mise à jour de l'utilisateur par un SSOapp/Providers/Socialite/GenericSocialiteProvider.php
: un fournisseur comme Keycloak, utilie si vous utilisez un SSO qui n'a pas encore de fournisseurs produit par la communauté LaravelLes fichiers modifiés :
resources/views/auth/login.blade.php
: pour ajouter les boutons redirigeant vers le SSO seulement si activéconfig/services.php
: ajout des configurations du nouveau contrôleur et des 2 fournisseurs (Keycloak et Generic)routes/web.php
ajout de 2 routes/auth.redirect/{driver}
qui redirige l'utilisateur vers le SSO/auth/callback/{driver}
vers laquelle l'utilisateur est redirigé par le SSO une fois authentifiéapp/Providers/AppServiceProvider.php
pour enregistrer les deux fournisseurs (Keycloak et Generic)Configuration
Pour activer l'intégration d'un WebSSO, par exemple Keycloak, il suffit d'ajouter dans le fichier
.env
:Ainsi que la configuration dédié à Keycloak que l'ont retrouve sur le site https://socialiteproviders.com, par exemple :
KEYCLOAK_CLIENT_ID=deming KEYCLOAK_CLIENT_SECRET=secret KEYCLOAK_REDIRECT_URI=${APP_URL}auth/callback/keycloak KEYCLOAK_BASE_URL=https://keycloak.local KEYCLOAK_REALM=main
Enfin vous pouvez :
KEYCLAOK_DISPLAY_NAME="SSO d'entreprise"
Pour la création et la mise à jour il y a 3 paramètres supplémentaires :
Les même paramètres avec OIDC_ à la place de KEYCLOK_ existe pour configurer le fournisseur Generic.
Je reste disponible pour échanger sur cette PR :)