问题标签 [role-base-authorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1318 浏览

azure-sql-database - 如何使用 Azure 应用程序 appRoles(在应用程序清单中定义)作为 Azure SQL 中的角色

在 Azure 门户中注册应用程序时,我们的团队希望使用应用程序清单中定义的应用程序角色。这是我们的 TestApp 清单中的一个示例。

这些应用程序角色在 Web 应用程序中显示为角色声明,允许开发人员通过如下所示装饰端点来控制对端点的访问。

通过 Azure 门户(在企业应用程序下),我们可以将用户和/或组分配给特定应用程序的角色,并且一切正常。但是,当尝试直接访问数据库(从 SSMS)时,应用程序角色的成员资格不起作用。

我们也试过

在任何一种情况下,在数据库级别检查成员身份都会返回“0”假。

但是,如果我们创建一个 AAD 组(例如'My Group For TestApp My App Role 2'),通过 Enterprise Apps 接口将'My App Role 2' 角色分配给组,并通过 AAD 用户将用户分配到组和组接口...我们可以通过在 SQL 中使用组来查看组的成员资格。

下面创建 Azure SQL 和 AAD 中的组安全主体之间的关系。

任何在该组中直接登录 SQL 的用户都将显示为该组的成员。对于同时也是 AAD 组成员的经过身份验证的 SSMS 用户,以下返回 true。

虽然这可行,但如果我们从组中删除应用程序角色(在 Azure 企业应用程序下),上述查询仍然返回 true。这是因为即使该组不再有权访问应用程序角色,用户仍然是该组的有效成员。因此,这种变通方法无效,因为数据库实际上并未验证用户是否参与了应用程序角色。

我们如何将应用程序角色直接关联到数据库角色以确保适当的安全性?

0 投票
1 回答
86 浏览

authorization - Keyrock 中的角色是如何工作的?

我想知道基于角色的授权在 FIWARE Keyrock 中是如何工作的。我测试了一个场景,用户 A 在 Keyrock 中注册了一个应用程序 appA。不在应用程序 appA 授权列表中的用户 B 可以为另一个应用程序(例如 appB)请求令牌,并使用从 appB 获得的令牌成功访问 appA。

执行的另一项测试是将用户 A 包括在 appA 的授权列表中,但其角色没有权限。同样,用户 A 可以使用来自另一个应用程序的凭据访问 appA。

谁能解释我这是如何工作的,如果它真的有效吗?

0 投票
1 回答
23 浏览

authorization - Keyrock中生成的角色并没有真正注册

我正在为 Keyrock 中的应用程序创建权限并将其与用户 A 相关联。当我向 orion v2/entities 发出 GET 请求(等于创建的权限)时,我收到一条User token not authorized消息。在 PEP 日志中,我可以看到该角色未与用户关联:

这真的很奇怪,因为我为用户 A 添加了包含特定权限的角色。

有人能帮忙吗?我究竟做错了什么?

0 投票
1 回答
98 浏览

authorization - Wilma和AZF中的魔法钥匙有什么作用?

我想知道在 Wilma PEP Proxy 以及 AZF 中魔术键参数的实际用途。这在两种配置中都是强制性的吗?如果没有,我们什么时候需要使用它?

我看到这里描述了与之相关的错误

0 投票
0 回答
175 浏览

asp.net-web-api - 使用广告访问令牌的 asp.net web api 中基于角色的授权

我需要从本机客户端应用程序为 asp .net web api 实现基于角色的授权,访问令牌将在标头中发送,所以当我给我的 web api 提供 [Authorize] 属性时它工作正常,但是当我给 [Authorize (Role="Admin")] 它给出了未经授权的错误,然后每当检查声明中的角色时,它总是为空。

我的 startup.cs 是

我已经为一个方法应用了授权属性

这里角色值始终为空

请帮助我

0 投票
3 回答
1373 浏览

asp.net-mvc-5 - 为什么 ASP.NET MVC 应用程序在修改后无法立即识别用户角色更改?

我有一个 ASP.NET MVC 混合应用程序,它ApiController除了 MVC 控制器之外还有一个。我在 MVC 控制器和 ApiController 中都在控制器级别,有时在方法级别使用基于角色的授权属性。我正在使用 Entity Framework 6 和基于模型的设计。

控制器级别授权:

或者

当我转移控制器级别授权时,因为非登录用户可以访问它:

或者因为我软化了授权(“用户”的特权低于“常规用户”):

用户注册后,通常会获得“用户”和“常规用户”角色。我可以通过查询数据库的 AspNetUserRoles 表来确认这一点,或者我什至有一个管理视图供管理员控制,它甚至可以通过同一个 ASP.NET MVC 应用程序显示角色。但是,当新创建的用户尝试访问 MVC 控制器上的端点或视图时,它会受到框架的授权规则的破坏并获得401 Unauthorized. 这就像一些内部部分(我不知道它是否使用 RoleManager 或引擎盖下的东西)“没有得到消息”用户已经在角色中。

奇怪的是,ApiController 端点可以工作并识别用户的角色。在 MVC 控制器抛出 a 之后401,用户被重定向到登录页面(带有重定向提示)。在用户登录的同时,菜单栏反映了这一点(即使重定向到登录页面 - 这很混乱)。一旦用户服从并突然重新登录,精神分裂症的行为就会消失,并且 MVC 控制器端点也开始识别用户的角色。不用说,这种方式是不可接受的。

我的包裹:


的属性在我ApiController的MVC 控制器使用时使用。我认为 ApiController 获得了正确的角色,但显然我将 MVC 控制器中的所有授权声明替换为,但这也没有解决问题。[Authorize(Roles="...")]System.Web.Http.AuthorizeAttributeSystem.Web.Mvc.AuthorizeAttributeSystem.Web.Http.AuthorizeAttribute


@solidau 询问的 Startup.Auth:

是的,有一个技巧可以使会话ApiController不仅可用于 MVC 控制器,因为我真的需要它。我猜 auth 子系统与 MVC 控制器使用的常规实体上下文(在基类中实例化)具有不同的 DB 上下文。

并且每个 MVC 控制器都是该基类的后裔。尽管我可能有不同的上下文,但我绝对确认我在数据库中添加了正确的角色,它们是持久的。auth 子系统上下文能否与 DB 的状态不同步?怎么同步呢?


@Ali,当前代码:

我尝试在 之后执行角色添加/删除SignInAsync,但到目前为止没有帮助。实际SignInAsync是 ASP.NET MVC 模板提供的一个方法AccountController


请注意,Azure 提供的默认字符串没有启用 MARS。但是这样我得到了一个错误,所以我设置了MultipleActiveResultSets=True. 也许这是解决问题的线索。

0 投票
1 回答
3406 浏览

react-router-v4 - React 路由器 v4 角色库授权

我是反应世界的新手并添加了路由器 v4,但无法实现反应角色基础授权。让我知道是否有任何来源让我走上正确的道路。

0 投票
1 回答
3060 浏览

c# - aspnet 身份中用户的多个角色

在我的项目中,我有一个具有 2 个职位的用户,因此,我在我的数据库的 AspNetUserRoles 表中添加了一个具有 2 个角色的用户,

因此,例如,我的用户名:“email@something.com”有 2 个角色:“会计”和“ ExecutiveExpert

但是当我调用User.IsInRole("ExecutiveExpert")函数时,它只检查第一个角色:会计,而不是所有角色(会计ExecutiveExpert),它返回 false,

如何更改 asp.net 身份以检查所有用户角色?一般可以吗?

这些是我的桌子:

0 投票
0 回答
425 浏览

asp.net-core - 使用 jwt 在 ASP.NET Core 中基于令牌的身份验证 Web API

我正在使用 jwt 在 ASP.NET Core 中执行基于令牌的身份验证 Web API。我不明白为什么我们需要[Authorize("Bearer")]在动作方法上方的属性中使用 Bearer 关键字进行授权,而我无法进行授权角色基础或简单如附件截图所示。在此处输入图像描述

看下面的代码

我正在点击此链接进行授权

0 投票
0 回答
344 浏览

ruby - Sinatra 中基于角色的身份验证/权限

我正在使用 Sinatra 用 Ruby 编写一个 Web 应用程序。该应用程序将有许多受限制的路由,未经身份验证的用户将不允许访问这些路由。我正在使用 Warden 进行用户身份验证。它适用于验证单一类型的用户。但是,我希望用户具有不同级别的访问权限。(目前我希望至少能够区分普通用户和管理员。)我想这是一个常见的要求,但我找不到任何关于如何在 Sinatra 中实现它的指导。在 Sinatra(或更一般的 Ruby)中是否有基于角色的身份验证/权限的“标准”gem 或方法?

我知道用于 rails 的 cancan gem(在 Sinatra 中不可用)和 sinatra-can gem(自 2011 年以来未维护)。我还阅读了 Warden 中有关“范围”的概念。似乎它们可能是我需要的,但从 Warden 文档中不清楚它们是否/如何解决我的问题。