问题标签 [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 回答
1272 浏览

azure - 自动刷新令牌并添加新的用户安全组 Azure AD

我有一个简单的 ASP.Net Web-APP,它使用带有角色/声明身份验证/授权的 Azure AD。基本上,应用程序会检查用户的 IsinRole(),然后根据返回的内容,他可以访问网络应用程序的区域。我们在 Azure AD 中使用安全组。这里的场景是一个用户属于 Group1 并且在登录到 Web 应用程序后他可以访问 Group1 区域,现在后端的管理员将用户添加到 Group2 以及我们想要的是没有用户注销并重新登录门户我们希望他的令牌也包含这个新添加的 Group2。无论如何刷新令牌以为该用户令牌添加额外的 group2 而无需他注销并进入应用程序?

有什么方法可以用新信息强制刷新令牌?

感谢你的帮助。

谢谢你。

0 投票
1 回答
306 浏览

single-sign-on - 在 ASP.NET 中为 SSO 构建安全令牌服务 (STS) 应用程序

我使用 VS 2017 创建了一个新的 ASP.NET 网站,并将身份验证机制更改为使用“个人用户帐户”。这增加了声明主体或 WIF 类支持。我可以单击注册/登录,并设置用户电子邮件,然后检查该用户的声明。我还将使用服务器会话身份验证管理 (SAM) 在服务器上保存声明并进行一些声明转换。

登录后,该站点调用了一个 winform 应用程序,经过一些活动后,我返回到上述站点。

我想知道如何在这里使用 SSO 逻辑并检查我是否已经过身份验证并访问我保存在服务器端/网站上的声明并根据保存的声明对用户进行身份验证。

是否有一些项目或代码示例任何人都可以提供,我可以将其用作使用 SSO 开发此类 STS 服务(在 VS 2017 中)并在来自另一个域后访问我在网站上的声明的开始?

身份和访问工具过去仅适用于 VS 2012,因此在我从 winform 应用程序访问我的网站后,可以通过任何方式复制上述场景并检查我保存的声明。

0 投票
0 回答
27 浏览

claims-based-identity - 如何将 UserClaims 用于租户权限应用程序?

目前,我正在开展一个项目,该项目将部门经理和用户按能力/角色/声明分开。

我将使用基于索赔的授权来完成此操作,但我在部门已封装索赔方面遇到了麻烦

IT 和 HR 部门不仅可以创建/添加用户到各自的部门,还可以添加到其他部门。文员和销售部门管理员只能将用户添加到他们的部门。

  • 我认为这不是处理 UserClaims 的最佳方式
  • 我也认为这行不通,因为每个部门都必须创建一个 CanAdd[Dept]User。
  • 我也不认为这是处理 UserClaims 的最佳方式

因为 UserAdmin 仍然与 IT 和 HR 部门联系在一起,所以另一个 xxx.UserAdmin

  • 我也不认为在 UserClaims 表中添加另一列会有所帮助
0 投票
1 回答
1136 浏览

asp.net-core-mvc - cookie身份验证中基于角色的菜单显示与asp.net核心MVC中的声明身份?

我需要最好的方法来进行基于角色的菜单导航。我的应用程序在 Asp.net core MVC 中,并且我使用了基于 cookie 的身份验证。我正在使用声明身份。

0 投票
1 回答
1198 浏览

c# - .Net Core Identity Framework 通过声明获取用户

在我们的 .NET Core Web API 中,我们配置了基于声明的授权,它运行良好。我们创建了角色声明并将角色分配给用户。我们不使用用户声明。

现在我需要让用户拥有特定的声明。在 UserManager 中有一个 GetUsersByClaimAsync(Claim) 方法,它似乎只考虑用户声明。不是角色声明。所以就我而言,它不可用。

所以我正在考虑通过声明获取角色,然后通过角色获取用户(效率不高,因为它必须进行多次数据库调用才能分别获取每个角色的用户)。但即使这样做,也没有直接的方法可以通过 UserManager 或 RoleManager 中的声明来获取角色。

所以对我来说,除了自定义查询之外,似乎没有什么干净的方法可以实现这一点。

我不确定我在这里遗漏了什么。有没有人用更好的方法做到了这一点?

谢谢

0 投票
1 回答
736 浏览

adfs - ADFS 声明规则字符串连接可能吗?

我是 adfs 声明规则的新手,但我设法配置了法线映射。现在我的客户要求我在传入的 LDAP 属性前面添加 4 个静态字母,例如“1234”。例如,在“电子邮件地址”属性前添加“1234”。我已阅读有关声明规则语言语法的信息,但找不到添加函数。

0 投票
0 回答
123 浏览

asp.net-core - 在 asp.net core 3.1 中具有密码保护链接的匿名用户 - ClaimsPrinciple/cookie 是最好的方法吗?

好的 - 所以我试图做一些类似 vimeo.com
的事情,只需输入密码就可以访问私人视频
,例如,如果你去这里:
https
://vimeo.com/392083444 你会得到一个简单的密码框并提交按钮

我得出的结论是使用声明
,因为用户是匿名的 - 我不想使用身份
,此外视频密码与视频元数据一起保存在数据库中

哦,顺便说一句,就像 vimeo 或 youtube -
有一个正确的身份设置 bc 配置文件由正确的身份登录管理

所以第一个问题是:
使用 ClaimsPrinciple 是最好的策略吗?
还是我赚的太多了?
我的意思是 pre-Core 我会使用 session vars 但现在核心不是这样

这是我到目前为止所得到的

在我的创业公司中,我确定我搞砸了——
因为我觉得我所有人都在阅读文章中的一堆意大利面条代码,
并且随着版本的不断变化,即使是一年前的一些文章也已经过时了

然后稍后:

我引用了这些文章:
https ://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-3.1
https://www.yogihosting.com/aspnet-core-identity-声明/
https://www.red-gate.com/simple-talk/dotnet/net-development/using-auth-cookies-in-asp-net-core/

索赔得到处理,但它们没有被存储如果
是的话,甚至可以与匿名用户一起存储这些索赔,
我应该在哪里与匿名用户一起寻找它们?
如果没有,我接下来应该做什么?

0 投票
1 回答
177 浏览

active-directory - 将 LDAP 属性添加到第三方声明提供者信任声明

  1. 我在 ADFS 上配置了默认的 SAML 2.0 声明提供程序。我们称它为 DefaultProvider。它需要用户名和密码。
  2. 我配置了两个使用 DefaultProvider 的 SAML 2.0 依赖方。我能够从 DefaultProvider 向这些依赖方断言 LDAP 属性并成功进行身份验证。
  3. 我已导入第二个 SAML 2.0 声明提供程序。我们称之为Provider2。
  4. 我可以使用 Provider2 的属性配置 Provider2 的 Claims Allowances 和 Provider2 的 Translation Rules。我能够从 Provider2 登录到我的两个依赖方并接收 Provider2 在断言中发送的属性。

对于第 4 项,是否可以使用来自 Provider2 断言的属性以及来自我本地 ADFS/AD 的本地 LDAP 属性来增强发送给两个依赖方的声明,并将这些属性添加到发送给两个依赖方的断言中?

0 投票
1 回答
602 浏览

c# - AD FS 自定义身份验证提供程序未返回身份验证方法声明

我为 AD FS MFA 创建了一个自定义身份验证提供程序。

我在元数据中定义了一个身份验证方法声明:

我还有一个 TryEndAuthentication 方法(这仅用于实验室目的,一旦这部分工作,我将更改硬编码的 pin):

但是当我在我的 AD FS 中部署它时,当我正确登录时它会给我这个错误: 身份验证提供程序未返回身份验证方法声明

有谁知道出了什么问题?

0 投票
1 回答
598 浏览

angular - 从单个服务订阅、获取和传播 Firebase 自定义声明到 Angular 组件的正确方法

我正在尝试找到/创建一种正确(最佳)的方式来获取和使用 Angular 应用程序中的自定义声明。我通过云功能添加了管理员自定义声明。我现在想要的(以及我试图做的)现在是:

  1. 在一项服务中获取索赔(和登录用户)(例如auth.service
  2. 允许需要读取声明的所有其他组件通过该服务中的简单 API 执行此操作
  3. 不让其他组件订阅 authState 或其他任何内容(只需同步读取 my 的属性auth.service

我为什么要这个?- 因为我相信它更具可读性和更易于维护

authState(通过只在一个地方(例如)读取(订阅authService.ts),从而使维护更容易,并允许其他组件从authService.ts属性/字段同步读取声明)


所以,我现在正在做的代码(它不工作......见POINTS_IN_CODE):

auth.service.ts


登录组件.ts


POINTS_IN_CODE

auth.service.tsat POINT_IN_CODE_#1- 我有想法从这个主题发出claimsSubject并在login.component.tsatPOINT_IN_CODE_#3订阅它并知道,如果它的值为1,则声明auth.service.ts已从authState.

在我知道我可以从中得到索赔,login.component.ts但它只是“感觉”不正确......这就是这个问题的主要内容......POINT_IN_CODE_#2resp.getIdTokenResult

我可能要问的具体问题是:

admin如果他有“管理员”自定义声明,我希望能够在登录页面后重定向用户。

正如我上面所说的(如果可能并且如果它是好的/提高可读性/提高维护能力),我想这样做,而不是直接订阅authState,而是通过auth.service.ts.

例如,我会使用相同的“逻辑”来制作一个AuthGuard只会调用authService.hasClaim('admin')的,而不必订阅authState自己来进行检查。

注意 我想知道我做的方式是否好,是否有任何警告或只是简单的改进。欢迎所有建议和评论,所以请发表评论,尤其是我的为什么我想要这个?部分!

Edit-1: 添加了打字稿代码突出显示并指出了我的代码中不能按我想要的方式工作的确切位置。

编辑 2: 编辑了一些关于我的 authService.user 为空的原因的评论......(我运行了一些代码,在登录组件中检查之前将其设置为空......)