问题标签 [claims-authentication]

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 回答
225 浏览

.net-core - 已通过身份验证后,如何在 .NET Core 3.1 中添加/更新声明?

在我的场景中,我在用户和企业之间建立了多对多的关系。所以,一个企业可以有很多员工,一个用户可以是很多企业的员工。

在登录页面上,我只想显示电子邮件和密码文本框。一旦他们成功通过身份验证,我想将他们重定向到一个页面,该页面包含他们所雇用的企业的下拉列表。

由于他们已经进行了身份验证,因此他们的声明已经被填充。之后如何添加另一个声明(他们的 BusinessID)?

0 投票
1 回答
358 浏览

c# - 如何在 C# 中使用 foreach 循环向声明数组添加新声明?

我想在 foreach 循环中向声明数组添加新声明。怎么做?

我最后想要的是这样的,其中 Role_1、Role_2 等来自 userRole 列表。

0 投票
1 回答
25 浏览

saml - 如何在 ADFS 中初始化输入声明集

我对声明规则以及它们在 ADFS 中的处理方式有疑问。根据我在阅读 [this] 后的理解(https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/the-role-of-the-claims-engine)声明规则执行分为三个部分 - 初始化(创建输入声明集并将输入声明放置在此处),声明规则中的条件和规则的执行,以及向依赖方发布声明。我想了解的是,如果只有默认声明信任提供者,即 AD 并且用户登录尝试执行 IdP 发起的 SAML,那么在初始阶段,输入声明集是否填充了用户的所有属性广告?在执行过程开始之前,谁或什么决定了输入声明中将出现什么?

0 投票
0 回答
202 浏览

sharepoint - SharePoint 2016 工作流权限问题

我有一个 SP2016 网站集。农场的组成如下:域服务器:DomainSPxxx 前端服务器:FrontendSP 数据库服务器:DatabaseSP

网站集有两个扩展:

  1. 默认 (http) - 通过 Windows 身份验证访问 DomainSPxxx.com 域

  2. 具有混合访问权限 (https) 的互联网 - 具有对 DomainSPxxx.com 域的 Windows 身份验证访问权限以及始终与 DomainSPxxx.com 域关联的 LDAP 提供程序的基于表单的访问权限

当域帐户使用 Windows Auth 进行身份验证时,显示的用户名是:userx@DomainSPxxx.com 当它与 ldap 连接时,它将类似于 '0#.f|ldapmember:userx|userx@DomainSPxxx.com'

在扩展默认情况下,仅使用管理帐户。此扩展专门用于服务/维护活动。例如,对其进行文档搜索爬取。

问题。我开发了一个对 SP 列表执行操作的工作流。鉴于: 正确配置了工作流管理器 正确配置了用户配置文件 这两个服务处于活动状态。该站点的 Worflow 应用程序处于活动状态并正确配置 throw appinv.asxp 页面 StsApplication 池负载配置文件为 true Worflow 可以使用应用程序功能处于活动状态

解释问题在实践中,当启动来自 https 互联网扩展的工作流时,对于执行的每个操作(例如读取记录),就好像系统要求文档库的域用户存在一样。

示例:用户 '0#.f|ldapmember:userx|userx@DomainSPxxx.com' 列表 'TestList' 上的合作者。如果工作流使用用户 '0#.f|ldapmember:userx|userx@DomainSPxxx.com' 对文档库 'TestList' 执行读取操作,则此操作失败,表明存在资源访问问题。我检查了SP日志。下面是一个例外:

实际上元素存在我尝试使用 Sharepoint api 从 url 启动查询,并连接用户 '0#.f|ldapmember:userx|userx@DomainSPxxx.com' 并返回数据

就好像从工作流进行的调用仅通过使用 Windows auth 进行身份验证的域帐户声明访问权限。在上述示例的情况下,为帐户“0#.f|ldapmember:userx|userx@DomainSPxxx.com”授予对集合的正确权限是不够的,但要使调用正常工作,您必须给予相同的权限帐户 userx@DomainSPxxx.com 的权限。以下是日志的摘录,其中包含一些让我怀疑的记录:

这是我注意到的:

0 投票
0 回答
20 浏览

.net - OWIN ADFS 的用户可以在隐身 VS 中拥有不同的声明类型。普通浏览器?

我是 .Net 的新手,我正在尝试了解整个声明/身份/OWIN 情况。

在我看来,通过研究一个应用程序,通过 OWIN ADFS 授权的用户在隐身模式下具有 WindowsPrincipal 声明类型,但在普通浏览器中它不是 WindowsPrincipal,没有隐身模式。这可能吗?我对此感到非常困惑。

我可以在 IIS Auth 中进行设置,以便它也可以将没有 Incognito 的用户识别为 WindowsPrincipal 吗?

任何进一步学习的建议或建议将不胜感激,谢谢!

0 投票
2 回答
61 浏览

c# - 基于 WIF 的身份验证不联系 STS 发行者

我正在尝试使用基于声明的身份验证对我们的内部 STS 服务器构建一个 asp.net 4.7 (v4.5 WIF)。我们有可以成功获得索赔的较旧的工作.Net 应用程序 (< 4.5)。

问题是新应用程序从不联系 STS 服务器。


我推测失败在于我如何设置联合 web.config 与旧版本。这是我最新的配置,不工作,然后是使用旧身份进程(WIF 3.5)工作的配置。

V4.0 WIF web.config(新4.7项目)
V3.5 WIF web.config(旧 4.0 项目)

  • 我知道它不会命中 STS 服务器,因为我使用无效audienceUris值作为测试,并且不会像在旧项目中那样被服务器拒绝。
  • 我觉得这与federatedAuthentication旧的缺失值有关,但在新的缺失值中找不到。
0 投票
0 回答
121 浏览

postman - Postman + NTLM 身份验证 + 声明授权 + ASP.NET Core API = 403 Forbidden

我们有一个使用 Windows 身份验证和基于声明的身份的 ASP.NET Core API。API 有一个具有多个操作的控制器。Actions 有不同的授权策略。

在 Startup.cs 我们有这个:

我们还有一个使用这个 API 的前端。当前端应用程序访问我们的 API 时,一切正常。如果用户拥有读取声明,则他们只能访问读取操作,写入操作也是如此。当只有读取声明的用户尝试调用写入操作时,他们将收到 401 Unauthorized。这都是预期的行为。到目前为止没有问题。

当我们尝试从 Postman 访问我们的 API 时,问题就开始了。只有从邮递员那里我们才能得到 403 Forbidden 错误。

Postman 配置为使用我的个人用户名和密码使用 NTLM 身份验证。而且我的帐户有读写声明。

如果我们[Authorize(Policy = "Read")]从动作中删除注释,我们在使用 Postman 调用该动作时将不再收到 403 错误。这让我认为问题出在邮递员和基于索赔的授权上。

有人知道问题是什么吗?我对基于声明的身份以及在这种程度上使用 Windows 身份验证还很陌生。所以任何帮助表示赞赏。

0 投票
1 回答
66 浏览

c#-4.0 - 我需要在单个传出声明中使用 c# 从 ADFS 获取所有用户详细信息

嗨,我为此创建了自定义声明,因此请检查我创建的以下声明:

但在这种情况下,我在传出声明中收到了所有电子邮件(http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress),还在另一个传出声明中获得了所有给定名称( http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress /schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname)。

请查看下面的屏幕截图,了解我现在如何使用 C# 代码从 adfs 中获取电子邮件和姓名的值。 https://docs.microsoft.com/en-us/answers/storage/attachments/137282-image.png

但是我需要一个传出声明,例如 email=abc@gmail.com、Givenname=abc(任何逗号分隔或任何分隔符),我需要一个传出声明中的电子邮件和名字。

我已经在 Microsoft Ignite 论坛中生成了相同的内容:https ://docs.microsoft.com/en-us/answers/questions/566015/how-to-get-all-users-of-adfs-with-all-attributes -e.html

您能帮我使用 Windows 帐户登录从 adfs 获取所有用户的详细信息并获取所有用户的详细信息吗?

谢谢

0 投票
0 回答
36 浏览

node.js - 在 Node.js 和 MongoDB 中使用基于角色的访问控制实现基于声明的访问控制

我正在开发一个医院管理系统,我可以在其中实施基于角色的访问控制 (RBAC) 和基于声明的访问控制 (CBAC),以便管理员可以决定员工的角色,例如医生、经理、护士。此外,管理员还应该能够限制使用 CBAC 的角色的某些资源,即使该资源在 RBAC 中允许该特定角色使用。管理员还应该能够在不分配任何角色的情况下允许特定用户使用某些资源。

我已经看到这两个都在 ASP.NET Core Identity Framework 中使用。我想做的是,使用 Node.js 和 MongoDB 实现一个非常相似的解决方案。现在自己实现 RBAC 非常简单,但是如何在 RBAC 之上实现 CBAC?

如果有一个或者我遗漏了什么,请向我建议一个替代解决方案。

0 投票
0 回答
38 浏览

c# - 有人可以详细解释一下索赔在.net核心中的主要作用以及如何从索赔中获取信息吗?

我创建了一个策略,我需要检查我的处理程序中的数据,例如 userId 和 companyId ...

所以从名为用户的声明主体,我需要从中获取信息,请问我该怎么做

增加处理程序:

}

这是我需要政策的地方:控制器:

这是启动文件:

我需要专注于我的处理程序addscreaninghandler 并获取用户信息,我该怎么做。

这是调试结果: 在此处输入图像描述

在此处输入图像描述