GitLab作为OpenID Connect身份提供者

本文档是关于使用GitLab作为OpenID Connect身份提供者登录到其他服务。

OpenID Connect简介

OpenID连接OIC是OAuth 2.0协议之上的一个简单的身份层。它允许客户端基于GitLab执行的身份验证来验证最终用户的身份,并以可互操作和类似rest的方式获取有关最终用户的基本配置文件信息。OIC执行许多与OpenID 2.0相同的任务,但它是以一种api友好的方式完成的,并且本机和移动应用程序都可以使用。

在客户端,您可以使用omniauth-openid-connect用于Rails应用程序,或任何其他可用的客户端实现

GitLab的实现使用doorkeeper-openid_connectgem,请参阅其README以了解有关支持规范的哪些部分的更多详细信息。

为OAuth应用程序启用OpenID连接

参考OAuth指南有关如何在GitLab中设置OAuth应用程序的基本信息。要为应用程序启用OIC,所要做的就是选择openid作用域在应用程序设置中。

目前与客户端共享的用户信息如下:

索赔 类型 描述
字符串 唯一标识用户的不透明令牌
auth_time 整数 用户上次身份验证的时间戳
名字 字符串 用户的全名
昵称 字符串 用户的GitLab用户名
电子邮件 字符串 用户的公共电子邮件地址
email_verified 布尔 是否验证用户的公共电子邮件地址
网站 字符串 用户网站的URL
配置文件 字符串 用户的GitLab配置文件的URL
图片 字符串 用户的GitLab头像的URL
数组 用户所属的组名
Baidu
map