如何从 JWT 声明中识别登录是否来自 Microsoft(个人)帐户?

问题描述 投票:0回答:2

在 JWT 令牌的声明中,PUID 值是从 altsecid 声明

{
  "aud": "https://graph.windows.net",
  "iss": "https://sts.windows.net/b7-******--5/",
  "iat": 1579684439,
  "nbf": 1579684439,
  "exp": 1579688339,
  "altsecid": "5::10*********E", --> PUID value
  "acr": "1",
  "amr": [
    "pwd",
    "rsa"
  ],
  "idp": "https://sts.windows.net/b*-**-**-**9/",
  "tid": "b7******---**--****5",
  "unique_name": "abc@xyz",
  "ver": "1.0"
}

需要注意的点是: 在 Microsoft Login 的情况下,令牌没有对象 id (oid) 声明。 我们的代码中有自定义逻辑来处理来自 AAD 登录的 MSA 登录。

确定给定令牌来自 AAD 与 Microsoft Login 的正确标识符是什么?

目前,我们有以下逻辑:

if tid == "F8CDEF31-A31E-4B4A-93E4-5F571E91255A" (live.com tenant id)
 OR idp == "live.com"

但我想确定是否可以依赖 altsecid 声明作为识别 Microsoft(个人帐户)登录的事实来源?

c# azure active-directory azure-active-directory microsoft-graph-api
2个回答
3
投票

根据文档,您可以使用发行人声明:

标识构建和返回令牌的安全令牌服务 (STS) 以及对用户进行身份验证的 Azure AD 租户。如果令牌是由 v2.0 端点颁发的,则 URI 将以 /v2.0 结尾。 指示用户是 Microsoft 帐户的消费者用户的 GUID 为 9188040d-6c67-4c5b-b112-36a304b66dad。

或 tid 声明:

代表用户所属 Azure AD 租户的 GUID。对于工作和学校帐户,GUID 是用户所属组织的不可变租户 ID。对于个人账户,值为 9188040d-6c67-4c5b-b112-36a304b66dad。需要配置文件范围才能接收此声明。

因此 Microsoft 帐户始终具有相同的租户 ID。 但这似乎不是您所拥有的。

我不确定您为什么要在用于 Azure AD Graph API 的访问令牌中查找此信息。 您确实不应该解码不适合您的访问令牌。 您应该查看提供给您的应用程序的 ID 令牌,或者用于您的 API 的访问令牌。


0
投票

“用户数据”:{ “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.TFLUserAPICalled”:0.19140625, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.hfmmEnabled”:0.216796875, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.isTelProtocolHandlerRegistered”:0.25390625, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.SmbUserIntent”:0.4296875, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.chatListLastAccessDate_FlyoutHomepage”:0.27734375, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.previousActiveNoiseSuppressionMode”:0.263671875, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.noiseSuppressionMode”:0.236328125, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.user-experience-preferences-key”:0.25, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.displayMusicModeInFlyout”:0.2421875, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.twowaysms.50:smsunverified:+17143765710,8:live:robert_luque”:0。 455078125, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.ecEnabled”:0.2109375, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.CallingDropsCollectorService:CallEntries”:0.267578125, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.TflFreProfileCardDisplayed”:0.244140625, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.tmp.AQMkADAwATE0YzgwLWNmNTgtNzIzOC0wMAItMDAKAEYAAANY0Zk3 A9ZTQJf_N5k6JPKYBwDx2Zg6Az1cTpO-NxTTquiyAAAAfydY7gAAAPHZmDoDPVxOk783FNOq6LIABbuBnFsAAAA=.refreshExternalAccount":0.6328125, “tmp.9188040d-6c67-4c5b-b112-36a304b66dad.00000000-0000-0000-1d78-7bf3f9b843f0.react-web-client.TflSignInFlyoutDisplayed”:0.240234375, “其他TMP”:1245.794921875, “非TMP”:55.994140625 } }

© www.soinside.com 2019 - 2024. All rights reserved.