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

single-sign-on - 当应用程序在 SSO 中由发行者解密令牌时,涉及哪种算法?

在使用 SSO 的基于声明的身份验证的情况下,应用程序从颁发者处为特定用户接收令牌,并且该令牌包含声明以及某种数字签名,以便应用程序跟踪颁发者是受信任的一。我想知道,该应用程序是否涉及某种算法来识别发行人?我读过发行者有一个公钥,而所有其他应用程序都有自己的私钥,这是真的吗?

0 投票
2 回答
5775 浏览

.net - 在控制台应用程序中使用 ClaimsAuthenticationManager

我正在玩 4.5 中的新东西,并编写了一个简单的控制台应用程序,它应该检查新的基于声明的安全模型中的一些东西。我已经创建了 ClaimsAuthorizationManager 和 ClaimsAuthenticationManager 的自定义实现,将它们添加到应用程序配置文件中,将 AppDomain 主体策略设置为 Windows 主体,除了调用 AuthenticationManager.Authenticate 方法之外,几乎所有东西都运行良好。

AuthorizationManager.CheckAccess 正在按预期调用。

我想这是正确的行为,因为在运行控制台应用程序时,用户已经过身份验证,无需在应用程序启动时执行此操作。但是,我想根据 - 让我们说存储在数据库中的配置文件来转换一些声明。当然,我可以手动完成并自己处理 CurrentPrinciapal 对象。但是我想知道是否有办法强制应用程序使用 AuthManager 为我做这件事。

只是好奇:)

所以,这里有两个经理。他们基本上什么都不做,只是为了设置断点而存在:)

App.config 看起来像这样:

没有什么特别的代码:

0 投票
1 回答
180 浏览

active-directory - 如何从 ADFS 对所有注册的依赖方调用相同的声明规则?

我的公司正在进入 ADFS 和 WIF 以建立具有 SSO 功能的内部门户。我们目前有自定义规则,可根据用户的活动目录组从 SQL 属性存储构建附加声明。

在几年内,可能会有超过 30-40 个应用程序连接到门户中。出于可维护性的目的,我们希望在一个地方更改这些适用于所有这些应用程序的基本规则。我们希望避免必须在 ADFS 中的每个信赖方条目上设置自定义规则。

此外,SharePoint 不是门户的选项。

任何人都可以就实现这一目标的最佳方式提供建议吗?

0 投票
2 回答
558 浏览

sharepoint - SharePoint 声明 HNSC 之间的信任

我们必须使用声明和表单身份验证在同一 SPWebApplication 上的HNSC https://division1.corp.com https://division2.corp.com。登录到https://division1.corp.com时,我们应该可以访问https://division2.corp,但我们再次获得登录对话框。UserInformationList 在这个 HNSC 之间是同步的。通过查看cookie,它们是不同的。我们将如何解决这个问题?

0 投票
3 回答
1626 浏览

asp.net - ClaimsPrincipalPermission - 错误代码

我在我的 asp 4.5 网站中使用 ClaimsPrincipalPermission 进行授权。

这工作正常。

但是,当用户尝试调用一个不允许他访问的页面时,返回的错误代码是 500,而不是像 401 这样的错误代码。

这是预期的行为吗?我假设 401 会更多地表达为什么这个页面不能被调用。

还是我有错误?在调试器中,我看到正确抛出了安全异常。

有没有办法改变这种行为?有谁知道为什么会这样?

0 投票
3 回答
13282 浏览

.net - 有什么方法可以在我的 ASP.NET MVC Web 应用程序中模拟声明主体?

我有一些ASP.NET MVC控制器代码可以检查用户是否经过身份验证,如果是,它会检查它是否有特定的声明。工作正常。

我有一些单元测试,我需要模拟一个IPrincipal(这很容易做到)......但我不确定如何检查索赔!我通常会做类似的事情

和一些控制器代码......

但是当我在我的单元测试中测试这个时这一切都失败了..因为我不确定我怎么mockClaimsPrincipal

有任何想法吗?

0 投票
0 回答
119 浏览

sharepoint-2010 - Sharepoint 2010:Windows Live ACS:重定向到登录页面

环境:SharePoint 2010

身份验证:基于声明(通过 ACS 的 Windows Live)和 Windows 声明。

授权:用户使用 PUID 添加到站点上的 Contribute 组。

问题:每当用户单击 SharePoint 页面上的任何链接时,都会将用户重定向到登录页面。这只发生在 Live 用户而不是 Domain 用户。

我是否缺少任何配置。

0 投票
1 回答
2843 浏览

wif - 基于声明的身份验证 - SharePoint 和一般

全部,

我一直在围绕基于声明的身份验证进行大量阅读,但仍然有些困惑。我试图巩固我的理解,特别是与 SharePoint 2010/2013 相关,但也普遍(即 ASP.NET)。

我对各种技术术语的理解如下:

  • WIF (Windows Identity Foundation) - 一个 .NET 库(API 集),用于使用身份声明和构建自定义 STS 等。

  • 信赖方 - 声明的“消费者”(即 SharePoint、ASP.NET 网站等)。声明通过 STS(仅 IP-STS?)提供。

  • STS(安全令牌服务)- 一种发布安全令牌的专用 Web 服务。有两种口味,有些 STS 可能同时是两种口味?

    • RP-STS(依赖方安全令牌服务)
    • IP-STS(身份提供商安全令牌服务)
  • 受信任的身份提供者(SharePoint 术语)-AKA。IP-STS。

  • SharePoint 2010/2013 STS - 使用 WIF 开发的 SharePoint 服务应用程序,仅充当 RP-STS。充当许多用户可配置的可信身份提供者 (IP-STS) 的可插入聚合点。如果需要,这些可以使用 WIF 手工构建。

  • ADFS 2.0 - 一个 Windows 角色,专门设计用于仅针对 Active Directory 实例联合组织。公开使用 WIF 构建的 IP-STS 端点。我对 ADFS 2.0 的理解是它不允许您“聚合”其他身份提供程序 - 它只允许您针对可能不是本地的特定 AD 实例进行身份验证,因此需要联合以支持 SSO .

  • Windows Azure ACS 2.0 - 一种专门用于联合任何已配置的第三方身份提供程序(即 Microsoft 帐户、Google、Facebook、ADFS 2.0)的服务。作为其他身份提供者的可插入聚合点,它的行为有点像依赖方。公开使用 WIF 构建的 IP-STS 端点。它聚合的身份提供者不一定是 IP-STS,但 ACS 2.0 使用其内置的 IP-STS 通过声明公开所有内容。

SharePoint 2010/2013 问题:

我的主要问题是,我看到了一些关于 ADFS 2.0 和 SharePoint 的文章,这些文章几乎读起来就好像您正在用 ADFS 2.0替换内置的 SharePoint 2010/2013 STS!希望这只是我的阅读,但它混淆了我的理解。

  1. 你真的可以这样做吗?如果你真的想要,我看不出你为什么不能这样做,但我认为你需要禁用 SharePoint STS 并进行大量手动配置?
  2. 你为什么想做这个?

2.1。SharePoint STS 已经支持 AD 身份验证作为 OOTB 受信任的身份提供程序选项,如果您想改用 ADFS 2.0,您可以将其添加为受信任的身份提供程序 (IP-STS),我已经看过博客文章。

2.2. 根据我对 ADFS 2.0 的描述,将其更改为 SharePoint STS 实际上会给您一个不太灵活的解决方案吗?

声明:

  • 您可以将 SharePoint STS 配置为使用 ADFS 2.0 a 可信身份提供程序 (IP-STS) 以及本地 AD,或者代替本地 AD。
  • 您可以将 SharePoint STS 配置为使用 Windows Azure ACS 2.0 a 可信身份提供程序 (IP-STS)。这将使支持第三方身份验证提供程序变得非常容易,而无需使用 WIF 开发您自己的 IP-STS。

ASP.NET WIF 问题:

  1. 我的理解是,为了执行信任协商和声明交换,RP-STS 必须与 IP-STS 对话。它是否正确?
  2. 因此,在使用 WIF 构建基于声明的 ASP.NET Web 应用程序(依赖方)的上下文中,您是否会因此开发/重用并将 RP-STS 包含到应用程序中,并将其配置为与 IP 建立信任关系- STS?如果不能,您可以使用 WIF 直接从 IP-STS 获取身份吗?

只是写这篇文章就帮助我摆脱了这个想法,但是任何关于不准确/过于简单化/完全不真实的帮助将不胜感激!

问候,

迈克尔·泰勒

0 投票
1 回答
104 浏览

c# - WIF - 每个实体的索赔

在我的应用程序中,有分层数据(如树),用户可以访问树的任何节点,而与父节点无关。WIF 如何在此处提供帮助以及属性?

0 投票
1 回答
3276 浏览

sharepoint-2010 - 集成 Sharepoint 2010、ADFS 2.0 和 ThinkTecture IdentityServer

我有以下情况:

  • Sharepoint 2010 与基于声明的身份验证 Web 应用程序。
  • ADFS 2.0 已将声明提供程序信任配置到 ThinkTecture IdentityServer。
  • 已将 ADFS 2.0 配置为依赖方的 ThinkTecture IdentityServer。
  • Sharepoint 2010 配置了指向 ADFS 2.0 的 SPTrustedIdentityTokenIssuer。

现在,当我登录到 Sharepoint 时,当我选择身份提供程序时,我被重定向到 ADFS 2.0 Home Realm 页面。然后我被重定向到 ThinkTecture IdentityServer。然后我使用来自 IdentityServer 的凭据进行登录,然后我被重定向回 ADFS,然后重定向到 Sharepoint。问题是,共享点显示错误消息。我正在从 sharepoint 添加日志记录:

通过登录提供程序进行身份验证。验证请求安全令牌。

受信任的登录提供程序“SAML2 提供程序”未发送配置的输入身份声明类型“http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress”

SPSecurityTokenService.Issue() 失败:System.ServiceModel.FaultException:受信任的登录提供程序未提供此场接受的令牌。
在 Microsoft.SharePoint.IdentityModel.SPSecurityTokenService.SPRequestInfo.ValidateTrustedLoginRequest()

拒绝访问:需要身份验证。

我发现,从 Identity Server 返回到 ADFS 的令牌包含电子邮件地址声明,但从 ADFS 返回到 SP 的令牌不包含。这很奇怪,因为我已将 ADFS 配置为支持电子邮件地址通过所有声明(在声明提供者对身份服务器的信任中)。我需要在其他地方设置 adfs 吗?我是 adfs 的新手。

我想要实现的是通过 ADFS 将我的请求转发到 IdentityProvider(在本例中为 ThinkTecture IdentityServer)并从 IdentityProvider 取回令牌。ThinkTecture IdentityServer 只是在我的真实环境中的测试环境中,它将被 Oracle Identity Federation 取代。

目标问题是将 Sharepoint 2010 与 Oracle Identity Federation 集成。但问题是,Sharepoint 不支持 OIF 将作为专有端点绑定提供的 SAML 2 协议。因此,我尝试使用 ADFS(作为类似于代理的某种思维)来破解它,它将在一侧与基于 SAML 1.1 的 Sharepoint 进行通信,在另一侧与基于 SAML 2 的 OIF 进行通信。

这是 IdP 元数据的以下摘录:

所以我没有选择使用 WS-Federation。

如果这是实现所需行为的好方法,我将不胜感激。

谢谢