我使用 msal.js 保护了我的 Angular 7 应用程序。我创建了一个自定义策略,该策略返回 id_token 和 access_token 中的自定义声明类型。为了实现这一目标,我一直在遵循本教程:https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-custom-rest-api-netfw https://learn.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-custom-rest-api-netfw。当我使用acquireTokenSilent()
msal.js 方法中,JWT 令牌不包含自定义声明(合约、fileUploadAllowed)。
当我使用 Azure 中“自定义策略”窗格上的“立即运行”按钮时,我确实收到了包含自定义声明的 access_token。
JWT 令牌的有效负载是通过在 Azure 中运行策略生成的(更改了一些值):
{
"iss": "https://login.microsoftonline.com/guid/v2.0/",
"exp": 1548416392,
"nbf": 1548455092,
"aud": "c152h904-835a-496f-8919-e74f5013374c",
"contract": "Contract03",
"fileUploadAllowed": false,
"sub": "25a6ec11-16fd-477a-8917-e0728c69e1db",
"nonce": "defaultNonce",
"scp": "portal.read user_impersonation",
"azp": "c154c904-835a-496f-8919-e74f5087384c",
"ver": "1.0",
"iat": 1542213053
}
msal.js 生成的 JWT 令牌 (access_token) 的有效负载:
{
"iss": "https://login.microsoftonline.com/guid/v2.0/",
"exp": 1548416396,
"nbf": 1548455092,
"aud": "c152h904-835a-496f-8919-e74f5013374c",
"sub": "25a6ec11-16fd-477a-8917-e0728c69e1db",
"nonce": "e6df86c9-7c19-4cb5-a4ac-1aa2a89b1951",
"scp": "portal.read user_impersonation",
"azp": "c154c904-835a-496f-8919-e74f5087384c",
"ver": "1.0",
"iat": 1542213953
}
我想接收 msal.js 生成的 access_token 中的自定义声明。有谁知道我应该做什么才能使这项工作成功?
谢谢。