Back to Gitlabhq

GitLab en tant que fournisseur d'identité OpenID Connect

doc-locale/fr-fr/integration/openid_connect_provider.md

19.3.05.1 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Vous pouvez utiliser GitLab comme fournisseur d'identité OpenID Connect (OIDC) pour accéder à d'autres services. OIDC est une couche d'identité qui effectue de nombreuses tâches identiques à OpenID 2.0, mais est compatible avec les API et utilisable par les applications natives et mobiles.

Les clients peuvent utiliser OIDC pour :

  • Vérifier l'identité d'un utilisateur final sur la base de l'authentification effectuée par GitLab.
  • Obtenir des informations de profil de base sur l'utilisateur final de manière interopérable et similaire à REST.

Vous pouvez utiliser OmniAuth::OpenIDConnect pour les applications Rails et de nombreuses autres implémentations clientes sont disponibles.

GitLab utilise le gem doorkeeper-openid_connect pour fournir le service OIDC. Pour plus d'informations, consultez le dépôt doorkeeper-openid_connect.

Si certains utilisateurs utilisent GitLab uniquement comme fournisseur OIDC et n'ont pas besoin d'accéder aux projets ou groupes GitLab, envisagez de leur attribuer le rôle accès minimum dans leur groupe principal. Les utilisateurs avec un accès minimum ne consomment pas de sièges dans l'abonnement et conservent l'accès lorsque l'accès restreint est actif et qu'aucun siège n'est disponible.

Activer OIDC pour les applications OAuth {#enable-oidc-for-oauth-applications}

Pour activer OIDC pour une application OAuth, vous devez sélectionner la portée openid dans les paramètres de l'application. Pour plus d'informations, consultez Configurer GitLab en tant que fournisseur d'identité d'authentification OAuth 2.0.

Découverte des paramètres {#settings-discovery}

Si votre client peut importer des paramètres OIDC depuis une URL de découverte, GitLab fournit des endpoints pour accéder à ces informations :

  • Pour GitLab.com, utilisez https://gitlab.com/.well-known/openid-configuration.
  • Pour GitLab Self-Managed, utilisez https://<your-gitlab-instance>/.well-known/openid-configuration

Informations partagées {#shared-information}

Les informations utilisateur suivantes sont partagées avec les clients :

RéclamationTypeDescriptionInclus dans le jeton d'IDInclus dans l'endpoint userinfo
substringL'identifiant de l'utilisateur{{< yes >}}{{< yes >}}
auth_timeintegerL'horodatage de la dernière authentification de l'utilisateur{{< yes >}}{{< no >}}
namestringLe nom complet de l'utilisateur{{< yes >}}{{< yes >}}
nicknamestringLe nom d'utilisateur GitLab de l'utilisateur{{< yes >}}{{< yes >}}
preferred_usernamestringLe nom d'utilisateur GitLab de l'utilisateur{{< yes >}}{{< yes >}}
given_namestringLe prénom de l'utilisateur{{< yes >}}{{< yes >}}
family_namestringLe nom de famille de l'utilisateur{{< yes >}}{{< yes >}}
emailstringL'adresse e-mail principale de l'utilisateur{{< yes >}}{{< yes >}}
email_verifiedbooleanIndique si l'adresse e-mail de l'utilisateur est vérifiée{{< yes >}}{{< yes >}}
websitestringURL du site web de l'utilisateur{{< yes >}}{{< yes >}}
profilestringURL du profil GitLab de l'utilisateur{{< yes >}}{{< yes >}}
picturestringURL de l'avatar GitLab de l'utilisateur{{< yes >}}{{< yes >}}
groupsarrayChemins des groupes dont l'utilisateur est membre, directement ou via un groupe ancêtre.{{< no >}}{{< yes >}}
groups_directarrayChemins des groupes dont l'utilisateur est membre direct.{{< yes >}}{{< no >}}
https://gitlab.org/claims/groups/ownerarrayNoms des groupes dont l'utilisateur est membre direct avec le rôle Owner{{< no >}}{{< yes >}}
https://gitlab.org/claims/groups/maintainerarrayNoms des groupes dont l'utilisateur est membre direct avec le rôle Maintainer{{< no >}}{{< yes >}}
https://gitlab.org/claims/groups/developerarrayNoms des groupes dont l'utilisateur est membre direct avec le rôle Developer{{< no >}}{{< yes >}}

Les réclamations email et email_verified ne sont incluses que si l'application a accès à la portée email et à l'adresse e-mail publique de l'utilisateur. Toutes les autres réclamations sont disponibles depuis l'endpoint /oauth/userinfo utilisé par les clients OIDC.