【发布时间】:2022-12-08 22:12:45
【问题描述】:
我已尝试让具有自定义角色功能的 Azure 静态 Web 应用程序在我的环境中工作,正如以下指定的那样:https://learn.microsoft.com/en-us/azure/static-web-apps/assign-roles-microsoft-graph
一切似乎都按预期工作,但是当访问受特定角色限制的页面时,API 似乎没有分配预期的角色。
我已经修改了 API 并删除了所有逻辑来为每个登录的人分配一个角色,但仍然不起作用。这是修改后的代码:
const fetch = require('node-fetch').default;
module.exports = async function (context, req) {
const user = req.body || {};
const roles = [];
roles.push('superuser');
context.res.json({
roles
});
}
这是我的 staticwebapp.config.json 文件:
{
"auth": {
"rolesSource": "/api/GetRoles",
"identityProviders": {
"azureActiveDirectory": {
"userDetailsClaim": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name",
"registration": {
"openIdIssuer": "https://login.microsoftonline.com/44263d43-a2f0-45a8-8f55-9b100ecfb4dc",
"clientIdSettingName": "AAD_CLIENT_ID",
"clientSecretSettingName": "AAD_CLIENT_SECRET"
},
"login": {
"loginParameters": ["resource=https://graph.microsoft.com"]
}
}
}
},
"routes": [
{
"route": "/secured/*",
"allowedRoles": ["superuser"]
},
{
"route": "/admin/*",
"allowedRoles": ["administrator"]
},
{
"route": "/contributors/*",
"allowedRoles": ["contributor", "Contributor"]
}
],
"responseOverrides": {
"401": {
"redirect": "/.auth/login/aad?post_login_redirect_uri=.referrer",
"statusCode": 302
}
}
}
我试过更改配置文件的顺序。我在发布之前的最后一次尝试是删除所有逻辑,只为每个人分配“超级用户”角色。
每个人都可以成功登录,预定义的角色就像一个魅力,但没有人获得“超级用户”角色。
我想弄清楚我做错了什么,或者 Azure 静态 Web 应用程序是否已更改,以便此代码无法像一年前那样工作?
提前谢谢你的帮助。
【问题讨论】:
-
api/GetRoles通过 POST 动词调用。尝试确保 Azure Functions 正确注册并接受 POST 请求。
标签: azure static-web-apps