Oauth 2.0 在哪里可以找到Gitlab';什么是OpenID令牌?

Oauth 2.0 在哪里可以找到Gitlab';什么是OpenID令牌?,oauth-2.0,gitlab,openid-connect,Oauth 2.0,Gitlab,Openid Connect,使用Gitlab为OpenID范围提供的访问令牌,即 https://gitlab.com/oauth/userinfo?access_token=<bearer token> https://gitlab.com/oauth/userinfo?access_token= 返回有限数量的信息,例如用户名、组等。但是,它不会返回用户的电子邮件地址。 报告指出: 索赔sub、sub_legacy、email和email_verified包含在 ID令牌,所有其他声明都可以从/oa

使用Gitlab为OpenID范围提供的访问令牌,即

https://gitlab.com/oauth/userinfo?access_token=<bearer token> 
https://gitlab.com/oauth/userinfo?access_token= 
返回有限数量的信息,例如用户名、组等。但是,它不会返回用户的电子邮件地址。
报告指出:

索赔sub、sub_legacy、email和email_verified包含在 ID令牌,所有其他声明都可以从/oauth/userinfo获得 OIDC客户端使用的端点

给定AccessToken-如何检索ID标记?


*这是一个已知/讨论的问题,请参见。

这完全取决于您第一次向GitLab发送初始身份验证请求时所请求的范围

您需要请求电子邮件范围以获取该信息,并且您应该在获取第一个访问令牌的同时获取ID令牌

  • 当您通过授权请求获取代码时,需要指定范围,范围需要包括
    openid
    read\u user
    profile
    email

  • 使用第一步中获得的代码交换令牌时,您可以返回到
    access\u-token
    id\u-token

  • 当第二步中获得的
    access\u令牌
    用于获取用户信息时,它可以返回用户的
    电子邮件

  • 请参阅上述使用范围的说明:

    • openid
      :授予使用openid Connect向GitLab进行身份验证的权限。还提供对用户配置文件和组成员身份的只读访问
    • read\u user
      :通过/user API端点授予对经过身份验证的用户配置文件的只读访问权限,该端点包括用户名、公共电子邮件和全名。还授予对/users下的只读API端点的访问权限
    • 配置文件
      :使用OpenID Connect授予对用户配置文件数据的只读访问权限
    • 电子邮件
      :使用OpenID Connect授予对用户主电子邮件地址的只读访问权限

    我怀疑我必须将电子邮件包括在范围内。我只是不确定OpenID范围的描述方式。带有访问令牌的ID令牌非常简单,所以我希望/认为不是这样。