问题标签 [claims-based-identity]
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.
sharepoint - Kerberos、基于声明的身份验证和 Sharepoint:无法连接到数据库
我有一台托管 Sharepoint 2010 的服务器。我还有另一台托管 SQL Server 2008 R2 的服务器。SharePoint 基于 Kerberos/声明。
在我的 SharePoint 上,我安装了一个自定义的 Web 部件,它使用标准连接字符串 ( Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
) 连接到 SQL Server 机器。
问题是当 webpart 尝试连接到 sql server 时,我收到以下消息:
我们做了什么:
- 验证所有 spn/delegation/trusts 的东西 - 一切似乎都很好。
- 尝试通过 UDL 文件直接从 sharepoint 机器连接到 sql server,它可以工作。
- 尝试将 webpart 作为单机服务器上的独立 ASPX 页面来证明代码应该可以工作,并且可以工作。
- Wireshark -> 当 ANONYMUS LOGON 尝试连接到 sql server(很明显)时,我们可以看到 KDC_ERR_S_PRINCIPAL_UNKNOWN。
- SharePoint 开发人员仪表板向我们显示了我们当前的用户名,它不是 ANONYMUS。
- webpart 中的跟踪显示了两件事:HTTPCONTEXT 设置为我当前的用户,Thread.Current 也是如此。
- 使用 SQL Profiler,我们可以看到请求来自 ANONYMUS
- 我们试图从另一个定制的 webpart 访问另一台服务器上的 web 服务,但由于同样的原因 (ANONYMUS) 失败了。
我们缺少什么?问题确实似乎是 SharePoint 无法将当前用户凭据发送到另一台服务器(sql 与否)。
sharepoint - 声明身份验证替换 STSTestCert 证书以供生产使用
我使用此处的声明演练创建了自定义 STS:http: //msdn.microsoft.com/en-us/library/ff955607.aspx。
我现在想使用不同的证书,以便我们可以将其发布到生产中,但不知道如何去做,即
- 我们需要从某个地方购买签名证书吗?
- 应该是什么类型的证书?
任何帮助将不胜感激。
asp.net-mvc - 如何从 Azure ACS 获取电子邮件和名称?
我正在使用 Azure ACS,并且一直在寻找从 SAML 2.0 响应或其他内容中获取电子邮件和名称的方法。
但我没有看到任何选项,我将用户重定向到 localhost:8000/acc/completesigninup/
我有来自 FormCollection 对象的 XML,我在 xml 中看到了电子邮件和名称,但我不确定如何获取它。Identity dll中是否包含解析器来获取该信息?
sharepoint - 性能点/Excel Services 的 Sharepoint Claims/c2wts 问题
我创建了一个自定义声明提供程序,以允许用户从现有网站登录 SharePoint。这会发出声明,包括格式为 username@domain 的 UPN 声明。在我启用SharePoint Web 应用程序 web.config之前mapToWindows
,用户可以正常登录。此时我收到一条标准的 SharePoint 错误消息,并且跟踪中可以看到以下异常。useWindowsTokenService
samlSecurityTokenRequirement
我认为 c2wts 模拟部分工作正常,因为如果我禁用由传递的 UPN 声明表示的 AD 帐户,那么当我尝试以该用户身份登录时,SharePoint 中会显示不同的“访问被拒绝”错误。
同样在 SharePoint 日志中,UPN 似乎已转换为 Windows AD 帐户,因为我在日志中得到以下信息:
更新
看起来这可能不是在 SharePoint 中使用的受支持设置。但是,如果我关闭该设置,SharePoint 网站中嵌入的 Performance Point 和 Excel Services 报告似乎无法正常工作。我收到如下错误:
The data connection uses Windows Authentication and user credentials could not be delegated.
(Excel)$Resources:ppsma.ServerCommon, ErrorCode_DataSourceCannotGetWindowsIdentityForNonWindowsClaim;
(性能点 SSRS 报告)
有没有解决的办法?我需要用户的UPN是用来查询这些背后的SSAS数据的账号,所以使用固定的连接字符串是不可行的。
asp.net-mvc-3 - Asp.net MVC - 将声明身份映射到自定义用户身份
在收到来自 Azure AccessControl Service 2.0 的声明身份验证后,我试图找出 ASP.NET MVC3 基础结构中映射自定义用户信息(从本地数据库加载)的最佳扩展点在哪里
我试图通过覆盖 Microsoft.IdentityModel.Claims.ClaimsAuthenticationManager 类的 Authenticate 方法来实现这一点:
但是,似乎在页面加载请求期间多次调用此方法。在此处加载自定义用户信息可能会产生性能问题。我想在每个经过身份验证的会话中只加载一次。
有没有更好的地方可以做到这一点?也许在构造 IClaimsPrincipal 的较低级别的某个地方?
c# - Windows Azure:多个实例上的 Web 应用程序,身份验证?
我想迁移到 Windows Azure 云的现有 Web 应用程序在 (post)authenticaterequest 事件中以下列方式对用户进行身份验证:
CreateGenericPrincipal 方法在 xml 文件中查找 claimidentity 的角色,并使用该角色创建一个新的 GenericPrincipal。需要认证的页面只执行
这适用于一个 webrole 实例,因为与普通 IIS 托管没有太大区别。但它仍然适用于 2、3 或 5 个实例吗?Azure 负载均衡器不是“粘性的”,用户可以在使用应用程序时被转发到另一个实例。不知道 Thread.CurrentPrincipal 是否仍然是要走的路。
我在这里使用基于声明的身份。用户第一次进入页面时,他会被转发到安全令牌服务。到目前为止,这种情况只发生一次。如果在使用多个实例时多次发生这种情况会很烦人..
谢谢!
sharepoint-2010 - 以编程方式将声明添加到列表
我编写了一小段代码,在 Sharepoint 中向网站添加了声明。我这样进行:
很简单,但我想将声明添加到我创建的列表中。到目前为止,我正在使用 SPSite 和 SPWeb 访问该站点,但我需要更深入:) 我找不到方法...
先感谢您!
wso2 - WSO2 身份服务器 + Rest STS 客户端(无 ESB)
是否可以使用 WSO2 IS?我浏览过不同的 WSO2 博客。他们是很好的指针。我仍然需要就此提出建议。
要求 - WSO2 身份服务器 + Rest STS 客户端(无 ESB)
- 用户在 WSO2 身份服务器上进行管理。
- STS Client 使用 RestFul API 调用 WSO2 Identity Server 的 STS 服务 a) 获取 Security Token b)Validate Token c)cancel Issued Token d) renew Issued Token
- 使用特定的安全令牌检索用户配置文件。
参考:
- https://web.cci.emory.edu/confluence/display/EmorySTS/Security+Token+Service+Client+API
- http://blog.facilelogin.com/2011/07/integrating-3-legged-oauth-with-xacml.html
- http://blog.facilelogin.com/2010/05/managing-users-and-roles-with-wso2.html
- http://blog.facilelogin.com/2009/05/security-token-service-with-wso2.html
- http://blog.facilelogin.com/2009/05/accessing-proxy-services-in-wso2-esb.html
- http://download.forgerock.org/downloads/openam/javadocs/9/com/sun/identity/wss/sts/TrustAuthorityClient.html
sharepoint-2010 - 在用户仍登录时重新计算 SharePoint 2010 用户的声明
无论如何,我都不是 SharePoint 专家,而且我一直很难找到这方面的正确信息。请帮忙!
我需要一种方法来通过调用来建立声明令牌,SPFederationAuthenticationModule.SetPrincipalAndWriteSessionToken
以重新计算令牌上的声明,而无需注销当前用户。有没有办法做到这一点?
关于我为什么要问这个的一些背景:
我们在自定义 SharePoint 2010 Web 应用程序上为 authN/Z 使用自定义角色和成员资格提供程序。无需详细说明原因(这很复杂),角色提供者会根据用户在主应用程序数据库中的状态为用户创建动态生成的角色名称;这些角色代表用户的权限,并在 SharePoint 内部用于确定用户对应用程序中网站和网站集的访问权限。
在我们的应用程序中,用户可以通过多种方式更改其权限,通过角色提供程序有效地添加新角色,授予用户在应用程序内的额外访问权限。我们遇到的问题是,我们被迫在 SP2010 中使用的基于声明的身份验证会在登录时预先计算权限并将这些权限编码到会话令牌中——有效地迫使我们要求用户在他们之前注销并重新登录可以获得他们的新权限。这会产生各种可用性问题,因此是我的问题。
是否有某种方法可以在不注销用户的情况下以编程方式重新计算会话令牌?
还是我们找错了树?在我正常快乐的 ASP.NET 领域中,我会使用 Forms Auth,它会在每个请求而不是登录时计算授权。不幸的是,这似乎不是 SP2010 中的一个选项,我现在相当坚持使用 SharePoint。我们可以采取其他行动吗?
authentication - WIF STS,不同“类型”的用户、应用程序和声明
我们目前正在考虑实施我们自己的 STS (Microsoft WIF) 来验证我们的用户,在这个过程中,我们提出了一些我们无法回答的问题。
我们有不同类型的用户,使用不同类型的应用程序。每种类型的用户都需要一些特殊类型的声明,这些声明只与该类型的用户和应用所属的应用程序相关。请注意,我们不会控制所有客户端。
假设所有用户都使用简单的 https 使用用户名和密码 (.NET MVC3) 进行授权。用户由其类型、用户名和密码(不仅仅是用户名和密码)唯一标识。所以我需要为每种用户类型创建一个端点,以便能够区分它们。当用户授权时,我将发出一个令牌,其中包含代表用户类型的声明。有没有更简单的方法来做到这一点?我可以为每种用户类型避免一个端点(目前有三个)吗?
然后,我的令牌服务可以检查授权用户的令牌并转换声明,发出一个包含所有用户类型特定声明的令牌。到目前为止一切顺利,除了我认为的多个端点?
如果我需要多个端点,我是否也应该公开不同的元数据文档,每个端点一个?拥有一个包含所有声明描述的大型元数据文档没有任何意义,因为没有应用程序需要所有声明。
更新
一些澄清。
某些应用程序仅由某些类型的用户使用。多个用户类型不能使用一个应用程序。
根据请求来自的应用程序类型,需要针对该用户类型比较用户名和密码。每种类型的应用程序都有用户存储。这就是为什么我需要知道请求来自什么应用程序类型。我无法仅通过用户名和密码来解析类型。