【发布时间】:2020-08-31 14:57:00
【问题描述】:
我正在开发一个 SPA,它使用 Azure Function App 作为 API 和 Azure Active Directory 进行身份验证。 adal.access.token在用户登录后设置在本地存储中,但是在绑定的ClaimsPrincipal参数中没有正确设置声明,也没有在HttpRequest参数中设置。无论是否设置了 Authorization: Bearer ... 标头,声明主体对象看起来都相同。如何配置我的 Function App 以使用 AAD 和 ClaimsPrincipalbinding?我使用jwt.io 的令牌调试器验证了声明是在访问令牌中设置的。
public static MyFunction {
[FunctionName("MyFunction")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "some-path")],
ClaimsPrincipal principal
){
// principal does not contain the claims, or any of the token info
}
}
然后我发送请求:
curl -X GET -H "Authorization: Bearer ..." http://localhost:7071/api/some-path
But the claims principle only has one claim, `http://schemas.microsoft.com/2017/07/functions/claims/authlevel: Admin`
更新: 在 Azure 中调用时,主体变量似乎已按预期设置,但在本地开发时未设置。
【问题讨论】:
标签: azure azure-active-directory azure-functions