Authentification | Utilisateurs | Mot-de-passe |
---|---|---|
✔ | ✔ |
LL::NG peut agir comme un client OpenID-Connect (« Relying Party » RP), ce qui permet de fédérer <a1>LL::NG</a1> avec : L'identité utilisateur sera récupérée via in jeton d'identification, et les attributs utilisateurs via le point d'accès UserInfo.
Comme RP, LL::NG supporte de nombreuses fonctionnalités OpenID-Connect :
On peut utiliser ce module d'authentification pour lier un serveur LL::NG à n'importe quel fournisseur OpenID-Connect. Quelques exemples, avec leur documentation :
Voir le chapître de configuration du service OpenID-Connect.
Dans Paramètres généraux
> Modules d'authentification
, choisir :
Ensuite dans Paramètres généraux
> Paramètres d'authentification
> Paramètres OpenID-Connect
, on peut indiquer :
Pour enregistrer LL::NG, il faut renseigner quelques informations telles le nom d'application ou le logo. Une des informations exigées est l'URL de redirection (une ou plusieurs).
Pour connaître cette information, prendre simplement l'URL et le paramètre GET de rappel, par exemple :
Après enregistrement, l'OP doit donner un identifiant et un secret clients, qui seront utilisé pour configurer l'OP dans LL::NG.
Dans le manager, choisir Fournisseurs OpenID-Connect
et cliquer sur Ajouter un fournisseur OpenID-Connect
. Donner un nom technique (sans espaces ni caratères speciaux), tel “sample-op” ;
On peut ensuite accéder à la configuration de cet OP.
L'OP peut publier sa métadonnée dans un fichier JSON (voir par exemple la métadonnée Google). Copier le contenu de ce fichie dans l'emplacement dédié.
À défaut de métadonnée, il faut les écrire. Les champs obligatoires sont :
On peut aussi définir :
Modèle exemple :
{ "issuer": "https://auth.example.com/", "authorization_endpoint": "https://auth.example.com/oauth2/authorize", "token_endpoint": "https://auth.example.com/oauth2/token", "userinfo_endpoint": "https://auth.example.com/oauth2/userinfo", "end_session_endpoint":"https://auth.example.com/oauth2/logout" }
JWKS est un fichier JSON contenant des clefs publiques. LL::NG peut les récupérer autoatiquement si jwks_uri est défini dans la métadonnée. Sinon copier le contenu du fichier JSON dans l'emplacement dédié.
Définir ici la correspondance entre le contenu de la sessions LL::NG et les champs fournis dans la réponse UserInfo. Les champs sont définis dans le standard OpenID-Connect, et dépendent de la portée requise par LL::NG (voir les options dans le prochain chapitre).
Nom affiché | Type | Exemple de correspondance d'attributs LDAP |
---|---|---|
sub | chaîne | uid |
nom | chaîne | cn |
given_name | chaîne | givenName |
family_name | chaîne | sn |
middle_name | chaîne | |
nickname | chaîne | |
preferred_username | chaîne | displayName |
profile | chaîne | labeledURI |
picture | chaîne | |
website | chaîne | |
chaîne | ||
email_verified | boolean | |
gender | chaîne | |
birthdate | chaîne | |
zoneinfo | chaîne | |
locale | chaîne | preferredLanguage |
phone_number | chaîne | telephoneNumber |
phone_number_verified | boolean | |
updated_at | chaîne | |
formatted | chaîne | registeredAddress |
street_address | chaîne | street |
locality | chaîne | l |
region | chaîne | st |
postal_code | chaîne | postalCode |
country | chaîne | co |
Ainsi on peut définir par exemple:
openid
est exigée.client_secret_post
et client_secret_basic