繁体   English   中英

Azure AD B2C Github 身份提供者不提供任何声明

[英]Azure AD B2C Github identity provider does not provide any claims

我想使用 AAD B2C Github 身份提供者在我的应用程序中授权用户。 要创建一个用户,我至少需要从中获得一个 email - 但我什么也得不到。 我确实根据文档设置了所有内容,我可以在 AAD B2C 用户列表中看到为新用户正确设置了Name ,但是User Principal Name email 应该是 null

这是JWT的答案

{
  "typ": "JWT",
  "alg": "RS256",
  "kid": "X5eXk4xyojNFum1kl2Ytv8dlNP4-c57dO6QGTVBwaNk"
}.{
  "exp": 1611879546,
  "nbf": 1611875946,
  "ver": "1.0",
  "iss": "https://apichat.b2clogin.com/4d39cd56-4c18-4bc7-aaa8-36bf91191c8c/v2.0/",
  "sub": "dfe38752-113e-4431-b1bd-23dd53119369",
  "aud": "341eea81-859c-485c-baea-2cc9f75f6512",
  "nonce": "defaultNonce",
  "iat": 1611875946,
  "auth_time": 1611875946,
  "idp_access_token": "c5c79a8f49c44575cf127fc3c64aaa5710a0a465",
  "idp": "github.com",
  "tfp": "B2C_1_susi_debug"
}.[Signature]

我错过了什么?

添加

经过一些研究,我怀疑这里的 Github 提供者没有所需的范围或映射。 到目前为止,我还没有看到任何添加它的方法。 通用 OpenID Connect 提供商可能会解决这个问题,但 Github 不支持well-known/openid-connect-discovery并且我无法在 AAD B2C 中手动设置端点。

到目前为止,我没有看到任何方法可以将 GitHub 连接到我的 AAD B2C 并获得该死的 email - 为什么最大的云平台在拥有相同所有者时不完全支持最大的开发存储库,这超出了我的理解。

好的,我找到的解决方案看起来像这样

  1. 在用户流的应用程序声明中设置Display NameIdentity Provider Access Token
  2. 在 GitHub auth 上,您将获得name aka usernameidp_access_token aka token
  3. 这允许我们调用 github 用户 api curl -u username:token https://api.github.com/user
  4. 默认情况下,用户 api 返回公共用户配置文件,可能没有设置 email
  5. curl -u username:token https://api.github.com/user/emails将返回所有用户关联的电子邮件
  6. 我们需要第一个
{
    "email": "***@gmail.com",
    "primary": true,
    "verified": true,
    "visibility": "public"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM