ASP Core Azure Active Directory 登录使用角色

2024-02-25

我创建了一个 Azure Active Directory 应用程序,我想使用基于角色的安全性。我按照以下教程进行操作:https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/ https://azure.microsoft.com/en-us/resources/samples/active-directory-dotnet-webapp-openidconnect-aspnetcore/

登录正常,我将角色添加到应用程序清单中并分配了角色Approver到我自己的帐户。现在我想使用这些角色。

登录后,控制器中将进行以下操作:

[Authorize]

但是添加角色时,用户没有被授权:

[Authorize(Roles="Approver")]

另外,以下返回 false:

User.IsInRole("Approver");

似乎角色没有被检索,关于如何将角色功能添加到这个演示项目有什么建议吗?


使用 Azure AD For Groups 时,组成员身份信息不会神奇地出现在应用程序中,您需要使用图形API https://learn.microsoft.com/en-us/rest/api/graphrbac/Users/GetMemberGroups在身份验证后获取用户的组,或配置 Azure AD 以发回代表用户组成员身份的声明。

配置 Azure AD 以发送组声明:

通过转到 Azure 门户 => Azure Active Directory => 应用程序注册 => 所有应用程序 => 选择您的应用程序 => 单击顶部操作栏中的清单来更改应用程序清单

Change 团体会员声明到安全组,

完成后,您应该会收到来自 Azure AD 的组声明,我们可以通过迭代用户的声明属性快速看到这一点。

声明的值将是对象 ID,您需要知道一个或多个组的对象 ID。

有了 ID,您现在可以定义 ASP.NET Core 授权策略,如下所示:

        services.AddAuthorization(options => {
            options.AddPolicy("Approver",
                    policyBuilder => policyBuilder.RequireClaim("groups",
                    "c63b2f53-eff9-4d68-8b47-07f151270c74"));
        });

您已准备好检查此政策,如下所示:

   [Authorize("Approver")] OR
   [Authorize(Policy = "Approver")]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP Core Azure Active Directory 登录使用角色 的相关文章

随机推荐

  • 无法在 OS X 上的 Visual Studio Code 中运行命令

    所以我已经启动并运行了 Visual Studio Code 据我所知 我已经安装了所有先决条件 我能够创建一个 ASP NET 5 项目并通过在中键入 dnx web 来运行该网站我的终端 所有这些都有效 我遇到的问题来自 Visual
  • 在 JUnit 中删除文件和目录

    我正在为在目录中创建文件的方法编写测试 我的 JUnit 测试如下所示 Before public void setUp objectUnderTest new ClassUnderTest assign another directory
  • Chrome 打包应用程序具有 onblur 侦听器

    Chrome 打包应用程序是否有任何事件侦听器来判断应用程序是否失去焦点 我正在尝试制作一款游戏 但当我改变焦点时 我似乎无法使其暂停 我尝试了一些不同的方法 例如以下方法 但似乎都不起作用 document onblur pause do
  • 在本地计算机上有效但在服务器上无效的命令?

    我的桌面使用 ubuntu 10 04 服务器使用 Ubuntu 10 04 服务器版本 以下命令 sudo pip install e git http github com facebook python sdk git egg fac
  • 实现接口的数组的隐式类型

    我的印象是 C 编译器将根据它们都可以隐式转换为的类型隐式键入一个数组 编译器生成未找到隐式类型数组的最佳类型 public interface ISomething public interface ISomething2 public
  • 在线图上绘制误差阴影带 - python

    假设我有 25 行这样的代码 x np linspace 0 30 60 y np sin x 6 np pi error np random normal 0 1 0 02 size y shape y1 y np random norm
  • Unity3d 中的 Signalr 和 WebSocketSharp

    我目前已经构建了一个简单的信号中心 我正在将消息从 Unity5 项目推送到其中 鉴于 SignalR2 客户端不适用于 Unity5 我使用 websocketsharp 来拦截 websocket 帧 消息已成功推送到集线器 但是当我尝
  • 选择上一行mysql?

    如果我有一个 mysql 表 其中包含主 ID 和另一个名为 gameScore 的字段 我可以做一些类似的事情 SELECT gameScore FROM table1 WHERE id 100 ORDER BY gameScore AS
  • Oracle VIEW - 列中超过 4000 字节

    我正在使用 SQL 语句的这一部分从 N N 关系中获取信息 目标是获得一个包含如下列的视图 字符串 1 字符串 2 字符串 3 这工作正常 但有时我的列中有超过 4000 字节 SELECT RTRIM XMLAGG xmlelement
  • Linux 等待单个对象?

    这是一段显示问题的代码 main Process process NULL while process cout lt
  • 调整浏览器大小时可以避免浮动元素移动吗?

    我是编码和 CSS 领域的新手 并且注意到当我调整浏览器大小时 所有浮动元素都会移动到右侧 并且用户被迫水平滚动才能查看菜单 首先是否需要防止浮动元素不改变其位置 其次 如果我应该预防的话 有没有办法可以避免这种情况 浮动是一个痛苦的事情
  • 我可以在嵌入饼图的 R 条形图中制作这样的图表吗

    我有以下数据 I II Total A 15 25 40 B 5 45 50 C 15 5 20 R数据输入 group lt c A B C A B C subgroup lt c I I I II II II yvar lt c 15
  • 如何在 Windows 上创建 conda 环境快捷方式

    安装了 Anaconda 后 我得到了anaconda baseWindows 开始菜单上的快捷方式 打开我创建的 virtualenv 例如 myenv 我必须单击anaconda base并输入activate myenv在打开的cmd
  • 如何以编程方式打开“网络连接”窗口

    如何在Win7 XP中使用C 以编程方式打开 网络连接 窗口 使用 shell 执行启动一个新进程 然后运行 NCPA cpl 就像这样 ProcessStartInfo startInfo new ProcessStartInfo NCP
  • 查找 SAP 表 (gridview) 中某个范围的每个单元格值

    我正在尝试从 Excel 文件到 SAP 表中查找特定文本 我尝试了下面的代码 但它给了我错误 无效的下一个控制变量引用 到目前为止 下面是我的代码 set rLastRow rSheet Cells rSheet rows Count A
  • Lua中的“C like struct”用于长缓冲区操作?

    为了 Lua 的简单性和美观性 我想用 Lua 而不是 C 来编写 映射 代码 假设在 C 语言中我可以有以下内容 typedef struct my struct char field 1 10 char field 2 250 char
  • 旧版本 Python 中字典中键的顺序

    Code d a 0 b 1 c 2 l d keys print l 这打印 a c b 我不确定该方法如何keys 确定其中关键字的顺序l 但是 我希望能够以 正确 的顺序检索关键字 正确的顺序当然会创建列表 a b c Python
  • 如何判断 jsTree 是否已完全加载?

    我正在尝试编写一个在 jsTree 上打开特定节点的函数 但遇到一个问题 即在从 ajax 调用加载我的基础树之前执行该函数 我如何判断我的 jstree 数据是否已加载并等待加载完成 以下是我尝试使用的功能 function openNo
  • Obj-C、Storekit RestoreCompletedTransactions 返回零事务?

    我在恢复已完成的交易时遇到一些问题 SKPaymentQueue defaultQueue restoreCompletedTransactions 我添加了几个示例中提到的观察者 我尝试添加paymentQueueRestoreCompl
  • ASP Core Azure Active Directory 登录使用角色

    我创建了一个 Azure Active Directory 应用程序 我想使用基于角色的安全性 我按照以下教程进行操作 https azure microsoft com en us resources samples active dir