spr*_*ean 5 azure oauth-2.0 azure-active-directory azure-ad-b2c
设置密钥/机密后,我可以获得这些令牌,但我不知道是否或如何依赖我的应用程序中的 sub 声明。
有关更多背景信息,我的应用程序实际上是一个 B2C 注册应用程序,我将转到 B2C 租户中的 v2 端点,但没有指定策略以使用客户端凭据流(可能导致常规 AAD,非 B2C令牌——我必须在后端加载多个密钥集才能使令牌验证工作,因为我们基本上使用多个令牌源这样做)。在我们的应用程序中,我们使用中间件来验证 JWT Bearer 令牌并通过 sub/oid 查找有效调用者以将任何适当的声明添加到上下文声明标识中。
在这个 client_credentials 案例中,我试图弄清楚 oid 是否与某个服务主体、我的应用程序、代表所使用的客户端机密的 GUID 或其他完全相关的东西 - 以及我是否可以足够依赖它来将它添加到我预期的“用户”数据库具有适当的应用程序权限。理想情况下,会有一种更简单的方法来识别用于服务到服务调用的令牌。
导致:
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 0,
"access_token": "eyJ...pcQ"
}
Run Code Online (Sandbox Code Playgroud)
令牌内容,来自 jwt.io:
@juunas 有正确的答案(它是服务主体)。困难在于验证答案。
就我而言,我正在获取在 Azure AD B2C 租户中定义的 appId 的令牌。租户是使用我的主(企业)登录创建的。在 Azure 中很难找到服务主体,我使用 AzureAD Powershell 扩展跟踪了一些转移注意力的事情。最终我发现我遇到了和这个人同样的问题,所以我在我的租户中创建了一个管理员,以便在使用 MSOnline 扩展通过 Powershell 登录时使用。一旦我完成了该设置并通过 Powershell 使用正确的帐户登录,我就可以运行Get-MsolServicePrincipal -TenantId 88...e9 -AppPrincipalId 0a...23以查看我的应用程序的信息。显示的结果 AppPrincipalId 是在门户中可见的应用程序 ID。返回的 ObjectId 与我在为此应用程序颁发的客户端凭据授予令牌中看到的 oid(和子)相匹配。
| 归档时间: |
|
| 查看次数: |
4664 次 |
| 最近记录: |