问题标签 [claims]

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

wcf - 如何在 WCF 中禁用每个请求(基于 URL)声明授权?

我有一个使用基于声明的授权的 WCF 服务。

我想要做的是用 a 来赋予一个操作,ClaimsPrincipalPermissionAttribute并且在我的 custom 中只有一次授权检查触发器ClaimsAuthorizationManager。但是我发现这个授权检查被触发了两次;一次用于 URL,然后第二次用于操作本身。

我找不到关于这个主题的太多信息,但我发现表明这是设计使然。我是否可以覆盖此行为而不对 URL 执行任何授权,而仅基于操作进行授权?

我对基于 URL 进行授权没有兴趣,并且真的宁愿避免为每个 URL 添加声明,因为我可能有很多它们,并且它们将来可能会改变。

我已经阅读了几篇文章,并看过 Dominick Baier 关于这个主题的视频,虽然我从中学到了很多东西,但我仍然找不到答案。这根本不可能,我只需要处理必须基于 URL 进行授权的问题吗?

0 投票
2 回答
4483 浏览

asp.net-mvc - 使用 Windows Azure Active Directory (WAAD) 转换声明

我目前在我的 MVC.NET 应用程序中使用 windows azure 活动目录作为单点登录,这部分效果很好。我可以针对 WAAD 进行身份验证并毫无问题地加载我的 ClaimsPrinical。

下一步是通过添加来自不同数据源的新声明来转换从 WAAD 检索到的声明。为此,我创建了一个继承 ClaimsAuthenticationManager 的类(如下)。声明被添加到 Principal 并在 CreateSession 方法中持久化到会话 cookie。

我现在的问题是 ClaimsPrincipal.Current 不包含我添加的任何其他声明。当我在 SessionAuthenticationModule_SessionSecurityTokenReceived 事件中设置断点时,我可以看到 ClaimsPrincipal.Current 之间存在差异

和 e.SessionToken.ClaimsPrincipal。

我在这里想念什么?在所有处理转换声明的示例中,我发现没有提到从 cookie 中手动重新加载 ClaimsPrincipal。会话安全令牌事件是否是重新加载 ClaimsPrincipal 的正确位置,还是我破坏了安全模型?

谢谢。

0 投票
0 回答
311 浏览

asp-classic - AUTH_USER、声明和经典 ASP

我正在尝试将基于声明的解决方案实施到应用程序中。我有一个 MVC/Classic ASP 应用程序,以及一个 STS。使用 STS 进行身份验证后,我可以从我的 MVC 页面中看到 AUTH_USER 服务器变量。但是,这(以及 AUTH_TYPE、LOGON_USER 等)在我的 Classic ASP 页面中不可见。我希望能够针对用户实际上在服务器上经过身份验证的服务器变量进行测试。如果可能的话,我可以阅读 STS 创建的声明,以使用我的经典 ASP 页面验证用户(不确定这是否是一个选项)

基本上,我需要一种方法让我的经典 asp 页面在我通过 STS 登录时知道用户是有效的。

谢谢!

0 投票
1 回答
264 浏览

asp.net - 将应用程序中的角色转换为 groupid

在我正在处理的一个 ASP.NET 项目中,我有一些由管理员在数据库中设置的角色。我必须通过用户主体声明来比较这些角色。

目前我正在将所有 GroupSID 转换为相应的名称:

_roleNames是包含角色的字符串列表。

问题是这个过程非常缓慢。主体来自 Active Directory,并且有很多声明。

有没有办法将我的应用程序中的 roleNames 转换为 aGroupSID所以我基本上可以跳过将其转换GroupSID为他们的名字的过程?

伪代码:

0 投票
2 回答
1541 浏览

wif - 本地 STS 到生产

我现在正在开发一个 Web 项目,其中选择的身份验证机制是 Windows 身份验证(内联网应用程序)。一旦项目上线,间隔两个月左右,STS就会建立起来。然后 web 项目应该开始使用它,而不需要对代码进行太多更改。怎么做?

我计划将 WIF 4.5 与我自己的 STS(WCF 项目/Web 应用程序)一起使用基于声明的身份验证并将其付诸实践。一旦在 Intranet(ADFS)/cloud(WAAD) 中设置了 STS。我只是将本地 STS URL 更改为新的“原始”STS。

1)它会工作吗?2)本地STS可以是dll吗?

0 投票
0 回答
66 浏览

wif - 不使用 STS 的 WIF

是否可以在不使用 STS 的情况下在 Web 应用程序中对 Active Directory 用户(内联网)使用基于声明的身份验证?需要使用 WIF。

“身份验证将由 WIF 提供的模块或第三方身份提供商 (STS) 处理。” 取自 cprakash.com/2013/01/03/identity-in-net-4-5-aka-wif

哪个 WIF 提供的模块取代了 STS?

我的场景:我计划使用这个 WIF 模块将我的 Web 应用程序投入生产。当真正的 STS 由客户端设置时,我计划在对我的 Web 应用程序进行最小更改的情况下使用它,因为我已经使用了 WIF。

0 投票
1 回答
464 浏览

sql-server - SQL Server 中的 ADFS 角色

场景:在内网应用程序中,ADFS 使用 AD 进行身份验证(帐户存储),使用 Sql server 进行授权(角色/属性存储)。

这些角色是我自己的应用程序特定的。还有其他需要使用 ADFS 的应用程序。如果 ADFS 配置为使用我的 SQL Server 来获取角色,其他应用程序会做什么?他们将如何管理他们的授权?

我的理解正确吗?如果是,请验证我的回答:

回答:ADFS 只返回我的 AD 标识符(SID/名称)。我将它映射到我的 sql 服务器角色。角色管理应该由我自己的应用程序连接到 Sql 服务器来完成。使用 session 来防止每次都点击 DB 进行授权。

0 投票
2 回答
80 浏览

claims-based-identity - Why RP and IP communicates through browser instead of going directly?

Why is RP using browser as a mediator, Why can't RP redirect directly to IP before authentication and vice versa after authentication?

I came up with some reasons but couldn't convince myself.. so asking you :)

1) RP and IP cannot keep a line of connection (against: what if RP calls STS web service and gets the data in response)

2) To manage cookies/session(against: but can't RP finally return the cookie? And the browser returns it in each request thus maintaining a session),

3) It is the browsers responsibility to pass the credentials to IP because of data protection policy(good one)

4) IP needs to know who the caller is (against: why?)

0 投票
1 回答
10626 浏览

security - MVC5 AntiForgeryToken 声明/“序列包含多个元素”

案例:我有一个启用了 Google 身份验证方法的 MVC5 应用程序(基本上是带有脚手架视图的 MVC5 模板)。该应用程序已配置为接受电子邮件作为用户名,并将从 Google 分配的声明(例如姓氏、名字、电子邮件、名称标识符等)存储到会员数据库 (AspNetUserClaims)。

当我使用“本地”用户注册并登录时,一切都很好。如果我使用 Google 用户登录,那就没问题了。如果我使用设置为同时具有本地和外部登录的帐户登录,我会收到以下错误。

我尝试使用 Application_Start 中的 AntiForgeryConfig 选项将令牌的类型更改为不同的设置(示例)

但是,当结合本地和外部登录时,似乎所有的声明都是重复的。最奇怪的是,声明集合(我假设有答案)对于组合登录和外部唯一登录是相同的。

当以本地用户身份登录时,这些声明被分配

当使用仅远程或组合帐户登录时,索赔列表如下所示

任何帮助都感激不尽!

错误和堆栈跟踪如下:



0 投票
1 回答
784 浏览

asp.net-mvc - 当用户的声明由管理员更新时,如何重新发出会话令牌 cookie?

我正在开发 MVC5 应用程序。当站点管理员更新当前登录用户的声明集合时,我遇到了一个简单的情况。刷新登录用户声明的最佳实践是什么?