# Nextcloud 30 hub 9 + Keycloak 26.0.5
Installation Docker-compose de Keyclaok et Nextcloud
## KEYCLOAK
Grace aux variables d'environnement, Keycloak fabrique un admin temporaire qu'il faut changer.
Aller sur https://auth.lamiete.fr
Cet user qu'on va upgrade au statut d'admin :
Création d'user "zac" : ne pas oublier de créer son mot de passe via l'onglet "crédential".
Création du role admin via "realm roles", admin, j'ai ajouté tous les "associated roles".
## Création du client Nextcloud
Création du client "create client"
Confirmation en OpenID
Client ID: nextcloud
Name: nextcloud
Root URL: https://nuage.lamiete.fr
Home URL : https://nuage.lamiete.fr
Valid redirect URIs: https://nuage.lamiete.fr/*
Web origine: https://nuage.lamiete.fr
Admin URL: https://nuage.lamiete.fr
Client authentification: ON
Authorisation: ON
Si vous avez ce message d'erreur

C'est le protocole sécurisé d'https qui pose problème. la redirection est possible avec un simple http.
Configuration client nextcloud, client scope, ajouter prédéfini map "client roles" et ensuite le relié a l'ID client "nextcloud", et aussi activer l"userinfo"
Récupération des informations du Realms dans "Realms setting" et tout en bas "OpenID Endpoint Configuration" pour récupérer les lien/URL qui permettons de relier Keycload à Nexcloud.
Relier les groupes keycloak et Nextcloud:
Il faut créer un client scope "groups-nextcloud"
Name: groups-nextcloud
Type: None
Protocol: OpenID Connect
Display on consent screen: On
Include in token scope: On
aller ensuite sur l'onglet "mappers", "add mappe", choisir "configuration..." et sélectionner "group membership" pour créer le token de liaison avec Nextcloud:
apper type: Group Membership
Name: groups-mapper
Token Claim Name: groups
Full group path: Off
Add to ID token: Off
Add to access token: On
Add to lightweight access token: Off
Add to userinfo: On
Add to token introspection: Off
Une fois le client scope créer, on va le rajouter au "client" de la barre de gauche, sélectionner "nextcloud", puis dans l'onglet "client scopes" et "add scope" "groups-nextcloud" par "défault"
Création de groupes avec la barre sur la gauche "groups"
J'ai créé un groupe "admin users" qui va s'occuper de la gestion des users avec les "role mapping":
J'ai sélectionné :
- master-realmview-users
- master-realmquery-users
- master-realmmanage-users
- master-realmquery-groups
- account view-groups
Ainsi on peut ajouter les users dans les groupes "users", on sélectionne l'user et dans l'onglet "groups": "join group"
## NEXTCLOUD
Création d'un admin
Installer l'application/pluggin "Social login" pour relié les deux applis
utiliser le "parametre admin" puis "Connexion via Social"
J'ai coché "créer les groupes automatiquement s'ils n'existent pas"
Créer une connexion OpenID personnalisé
Rentrer toutes les caractérisitques récupérées de "OpenID Endpoint Configuration" Keycloak:
Nom interne: Keyclaok
Fonction: keycloak
URL d'autorisation: https://auth.lamiete.fr/realms/master/protocol/openid-connect/auth
URL du jeton: https://auth.lamiete.fr/realms/master/protocol/openid-connect/token
Réclamation du nom d'affichage (optionnel): (je n'ai rien mis)
URL des informations utilisateurs (optionnel): https://auth.lamiete.fr/realms/master/protocol/openid-connect/userinfo
URL après déconnexion (optionnelle): https://auth.lamiete.fr/realms/master/protocol/openid-connect/logout
Identifiant client: nextcloud
Secret client: xxxxxxxxx (a récupérer sur keycloak dans "client" "nextcloud" "Credentials", il est masqué "client secret")
Portée: openid
Réclamation des groupes (optionnel): groups
Apparence du bouton: (au choix)
Groupe par défaut: aucun
### Guide qui m'a aidé:
- [Video plouf](https://www.youtube.com/watch?v=Pb2OkR0Pt8c)
- https://github.com/zorn-v/nextcloud-social-login/blob/master/docs/sso/keycloak.md