从哪里获取 Gitlab 的 OpenID ID Token?
Where to get Gitlab's OpenID ID Token?
使用 Gitlab 为 OpenID 范围提供访问令牌,即
https://gitlab.com/oauth/userinfo?access_token=<bearer token>
return信息量有限,例如用户名、群组等。但是,它不会 return 用户的电子邮件地址。
Gitlab documentation 表示:
The claims sub, sub_legacy, email and email_verified are included in
the ID token, all other claims are available from the /oauth/userinfo
endpoint used by OIDC clients.
给定 AccessToken - 我如何检索 ID 令牌?
*这是一个已知/已讨论的问题 cf. here
这完全取决于您在首次向 GitLab 发送初始身份验证请求时要求的范围。
您需要请求 email 范围才能取回该信息,您应该同时取回 ID-token获得第一个 access-token.
的时间
通过授权请求获取代码时,需要指定范围,范围需要包括openid
,read_user
,profile
,email
.
用第一步得到的code兑换token时,可以return到access_token
和id_token
.
当第二步得到的access_token
用于获取用户信息时,可以return用户的e-mail
.
参考上面使用范围的解释:
openid
:授予使用 OpenID Connect 向 GitLab 进行身份验证的权限。还授予对用户个人资料和组成员资格的只读访问权限。
read_user
:通过 /user API 端点授予对经过身份验证的用户配置文件的只读访问权限,其中包括用户名、public 电子邮件和全名。还授予对 /users. 下的只读 API 端点的访问权限
profile
:使用 OpenID Connect 授予对用户配置文件数据的只读访问权限。
email
:使用 OpenID Connect 授予对用户主电子邮件地址的只读访问权限。
使用 Gitlab 为 OpenID 范围提供访问令牌,即
https://gitlab.com/oauth/userinfo?access_token=<bearer token>
return信息量有限,例如用户名、群组等。但是,它不会 return 用户的电子邮件地址。
Gitlab documentation 表示:
The claims sub, sub_legacy, email and email_verified are included in the ID token, all other claims are available from the /oauth/userinfo endpoint used by OIDC clients.
给定 AccessToken - 我如何检索 ID 令牌?
*这是一个已知/已讨论的问题 cf. here
这完全取决于您在首次向 GitLab 发送初始身份验证请求时要求的范围。
您需要请求 email 范围才能取回该信息,您应该同时取回 ID-token获得第一个 access-token.
的时间通过授权请求获取代码时,需要指定范围,范围需要包括
openid
,read_user
,profile
,email
.用第一步得到的code兑换token时,可以return到
access_token
和id_token
.当第二步得到的
access_token
用于获取用户信息时,可以return用户的e-mail
.
参考上面使用范围的解释:
openid
:授予使用 OpenID Connect 向 GitLab 进行身份验证的权限。还授予对用户个人资料和组成员资格的只读访问权限。read_user
:通过 /user API 端点授予对经过身份验证的用户配置文件的只读访问权限,其中包括用户名、public 电子邮件和全名。还授予对 /users. 下的只读 API 端点的访问权限
profile
:使用 OpenID Connect 授予对用户配置文件数据的只读访问权限。email
:使用 OpenID Connect 授予对用户主电子邮件地址的只读访问权限。