azure-active-directory - 使用 Azure AD 进行 Blazor 身份验证 - 检索用户角色

标签 azure-active-directory blazor

我已成功设置 Blazor 应用程序以向我工作的 Azure 租户进行身份验证。身份验证工作得很好。我在 Azure 中设置了应用注册,并在 list 中定义了 appRoles。我已经将一些用户添加到应用程序中,并分配了这些角色,但是在通过身份验证后,我没有在用户上下文中获得任何角色声明。

启动文件

services.AddAuthentication(AzureADDefaults.AuthenticationScheme)
                .AddAzureAD(options => Configuration.Bind("AzureAd", options));


        services.AddControllersWithViews(options =>
        {
            var policy = new AuthorizationPolicyBuilder()
                .RequireAuthenticatedUser()
                .Build();
            options.Filters.Add(new AuthorizeFilter(policy));

        });

显现:
"appRoles": [
    {
        "allowedMemberTypes": [
            "User"
        ],
        "description": "Coming soon.",
        "displayName": "Viewer",
        "id": "{guid goes here}",
        "isEnabled": true,
        "lang": null,
        "origin": "Application",
        "value": "Viewer"
    },
    {
        "allowedMemberTypes": [
            "User"
        ],
        "description": "Coming soon.",
        "displayName": "Manager",
        "id": "{guid goes here}",
        "isEnabled": true,
        "lang": null,
        "origin": "Application",
        "value": "Manager"
    }
],

我试图在身份验证后使用声明检索这些角色,但没有角色通过。这显然使 IsInRole 不起作用,而且在我的一生中,我找不到任何代码示例来实现这一点。

如果有人能指出我正确的方向,我将不胜感激!

最佳答案

如果用户已被分配应用程序角色,则应在 id token 中返回。您可以使用 https://jwt.io/ 解码 id token .

enter image description here

我没有找到 blazor 样本,但你可以引用这个 aspnetcore sample .

关于azure-active-directory - 使用 Azure AD 进行 Blazor 身份验证 - 检索用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60007447/

相关文章:

c# - 登录到Azure Web应用程序失败并显示“AADSTS50079:要求用户使用多因素身份验证”

c# - 添加到服务提供者后能否更改Msal Authentication中的Authority、ClientId、DefaultAccessTokenScopes

bootstrap-modal - 当表单处于引导模式结束时,Blazor EditForm 提交处理程序未调用,提交按钮是模式解除命令

jwt - Blazor jwt 从客户端到服务器

visual-studio - Blazor:无法启动调试适配器

windows - 如何在使用 Microsoft adal 身份验证的组织帐户登录阶段修复此问题 "Need admin approval"

azure - 限制 Azure Active Directory 同步

azure - 从 terraform 创建服务主体时出现权限不足,无法完成操作的错误

azure - 使用外部租户、Azure Active Directory 登录

c# - 多次重用 blazor 组件的好方法是什么?