gpt4 book ai didi

azure - 从 Azure AD OAuth v2 token 端点获取 client_credentials token 时,sub 和 oid 声明中包含什么内容?

转载 作者:行者123 更新时间:2023-12-03 23:54:19 25 4
gpt4 key购买 nike

我可以在设置 key / secret 后获取这些 token ,但我不知道是否或如何依赖我的应用程序中的子声明。

有关更多背景信息,我的应用程序实际上是 B2C 注册应用程序,我将转到 B2C 租户中的 v2 端点,但没有指定策略来​​使用客户端凭据流(可能会导致常规 AAD,非 B2C token ——我必须在后端加载多个 key 集才能进行 token 验证,因为我们基本上使用多个 token 源以这种方式进行操作)。在我们的应用程序中,我们使用中间件来验证 JWT Bearer token ,并通过 sub/oid 查找有效的调用者,以将任何适当的声明添加到上下文声明身份中。

在这个 client_credentials 案例中,我试图弄清楚 oid 是否与某些服务主体、我的应用程序、代表所使用的客户端 key 的 GUID 或其他完全相关 - 以及我是否可以足够依赖它来使用适当的应用程序权限将其添加到我预期的“用户”数据库中。理想情况下,会有一种更简单的方法来识别用于服务到服务调用的 token 。

以下是使用 Postman 检索这些 token 的示例: using Postman to get a client_credentials token

结果:

{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 0,
"access_token": "eyJ...pcQ"
}

token 内容,来自 jwt.io:

enter image description here

最佳答案

@juunas 给出了正确的答案(它是服务主体)。困难在于验证答案。

就我而言,我正在获取在 Azure AD B2C 租户中定义的 appId 的 token 。租户是使用我的主(企业)登录创建的。在 Azure 中很难找到服务主体,我使用 AzureAD Powershell 扩展跟踪了一些转移注意力的事情。最终我发现我遇到了和this guy同样的问题。 ,因此我在租户中创建了一个管理员,以便在使用 MSOnline 扩展通过 Powershell 登录时使用。一旦完成该设置并通过 Powershell 使用正确的帐户登录,我就可以运行 Get-MsolServicePrincipal -TenantId 88...e9 -AppPrincipalId 0a...23 来查看以下信息:我的应用程序。显示的结果 AppPrincipalId 是在门户中可见的应用程序 ID。返回的 ObjectId 与我在为此应用程序颁发的客户端凭据授予 token 中看到的 oid(和子)相匹配。

Powershell output

关于azure - 从 Azure AD OAuth v2 token 端点获取 client_credentials token 时,sub 和 oid 声明中包含什么内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51617708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com