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

wcf - 在声明身份验证的 SharePoint 2010 中托管的 WCF 服务中的模拟

我有一个 WCF 服务,它使用带有消息安全性和 Windows 身份验证的 wsHttpBinding。

控制台应用程序服务客户端能够调用该服务,我可以看到 ServiceSecurityContext.Current.WindowsIdentity 和 Thread.CurrentPrincipal.Identity 都代表正确的用户。

正如预期的那样,currentprincipal 是一个 IClaimsIdentity。

当我尝试打开 SharePoint 网站时出现问题:我收到拒绝访问错误,提示无法将模拟身份传递到数据库或共享点服务器。不过,这一切都在同一台机器上,所以不应该有任何双跳认证问题。

这不是对声明应用程序中托管的服务进行无头身份验证的正确方法吗?

0 投票
1 回答
1240 浏览

c# - SharePoint 2010 自定义声明提供程序

全部,

我最近尝试在 SharePoint 2010 中实现自定义声明提供程序。声明填充了数据库中的一些业务逻辑。

这些声明似乎正在向用户传达。这是一个很好的第一步。

下一步是检查人员选择器是否工作。

如果您单击“检查名称”按钮,PeoplePicker 可以搜索和解析名称。但是...如果您进入 PeoplePicker,然后单击浏览,然后搜索您的声明,选择它并将其添加到“添加”框中,然后单击确定。什么都没有发生,没有任何内容添加到“授予权限”框中。或者,如果您只是输入索赔并单击“检查名称”按钮,它将很好地解决它,但如果您单击确定,它会清空该字段并说它是必需的。或者,如果您键入声明而不单击“检查名称”按钮并单击“确定”,则会收到一条错误消息,指出:参数 loginName 不能为空或大于 251 个字符。

所以在实现 SPClaimProvider 时,有 2 个 FillResolve 方法,一个接受字符串,一个接受 SPClaim。接受 SPClaim 的人永远不会被调用。我相信,如果我理解正确的话,它会根据 SharePoint 中的声明进行最终解决以应用安全性。

我试图在不提供代码的情况下尽可能详细,但请让我知道您需要知道的任何信息以帮助解决此问题。

提前致谢,斯科特

0 投票
2 回答
2973 浏览

wcf - 从 SharePoint 2010 BDC 到 WCF 服务再到 SQL Server 时,如何克服双跳问题

我们有一个 SharePoint 应用程序,它需要从 WCF 服务检索外部数据,该服务又从 SQL 服务器 (2005) 获取数据。SharePoint 通过 NTLM 进行身份验证,并且可以将凭据转换为 SharePoint 服务器上的声明。

WCF 服务连接到以前由 Web 应用程序访问的数据库(正在将 Web 应用程序迁移到 SP+WCF)。该数据库是经过许可的,因此必须以最终用户的身份访问它,当它是客户端->Web 应用程序->SQL Server 时很好,但当它是客户端->SharePoint->WCF 服务->SQL Server 时会失败。

我已经阅读了一些关于模拟和 c2wts 的信息,我认为这适用于这种情况,但我不确定它是如何适应的。它应该在 SharePoint 服务器还是服务服务器等上......?

如何通过 SharePoint 和 WCF 服务保留最终用户的身份以便能够访问 SQL 服务器?

0 投票
2 回答
1048 浏览

azure - NameIdentifier 和 IdentityProvider (WIF) 声明能否用于唯一标识任何用户?

考虑使用访问控制服务 (ACS)Windows Identity Foundation (WIF)来保护我的 WCF 数据服务 Web API 应用程序。

如何使用声明来唯一标识用户?

我的想法是使用标准声明NameIdentifier和 WIF 声明 IdentityProvider 的组合来为任何用户创建一个唯一 ID。

这个组合真的稳定且独特吗?IP 会不会突然改变它的 IdentityProvider 字符串?

这里的想法是将两半的连接字符串存储为任何用户的唯一 ID。

NameIdentifier 声明是否有任何安全隐患?

干杯,

M。

0 投票
1 回答
4342 浏览

sharepoint - SharePoint 2010 声明身份验证/FBA - 重置密码不起作用

我有一个带有声明身份验证和 FBA 设置的 SP 站点。Dual auth Win/Forms 运行良好。

我在应用页面上有一个 asp:PasswordRecovery 控件。它似乎可以正确查找帐户 - 如果未找到用户名,则返回“未找到”消息。但是,它无法使用以下 execption 重置密码:

提前致谢。

更新:
我添加:
enablePasswordReset="true"
到应用程序 web.config 和令牌服务 web.config

编写了一些代码进行手动测试,当我的代码尝试“重置”密码时仍然得到这个:
此提供程序未配置为允许密码重置。要启用密码重置,请在配置文件中将 enablePasswordReset 设置为“true”。

0 投票
0 回答
478 浏览

wcf - SharePoint 2010 中的 WCF 服务不进行模拟,甚至不传递凭据

添加对服务的引用会产生使用 NTLM 的绑定,因此应正确配置服务。在同一台计算机上运行的服务客户端(目前)实例化一个新的 BasicHttpBinding,将 ClientCredentialType 设置为 Ntlm,将 AllowNtlm 设置为 true,甚至(在某些测试中)将 Credentials.Windows.ClientCredential 设置为 DefaultNetworkCredentials 或特定的 NetworkCredentials。

无论我做什么,Thread.CurrentPrinciple 在服务端始终是匿名的,ServiceSecurityContext.Current.WindowsIdentity 同样是空的。

我在这里做错了什么?

0 投票
1 回答
1102 浏览

wcf - 从基于声明的 SharePoint 调用 Net Tcp WCF 服务

我有一个运行 WCF Net Tcp 绑定服务的 Windows 服务。所有绑定和端点信息都以编程方式设置。

在 sharepoint 中,我正在使用通道工厂访问此服务:

此代码使用 SharePoint 2007 运行良好。现在我们将 SharePoint 网站升级到 2010,基于表单的新声明身份不会发送客户端凭据。我得到这个错误。

有谁知道我如何让 Channel Factory 发送应用程序池的凭据?现在我已经通过使用 RunWithElevatedPrivileges 解决了我的问题,但我并不热衷于这样做,除非我没有其他选择。

0 投票
0 回答
1019 浏览

c# - 通过 Web 前端将声明传递到 WCF 服务

我一直在开发一个断开连接的 WCF 系统,该系统带有一个需要使用 Windows Identity Foundation 对 RP 进行身份验证的 Web 前端。基本设置如下;

RP(+ 声明)-> Web 前端-> WCF 服务(~)

WCF 需要确保登录的用户在 RP 上并且拥有执行特定操作所需的声明。

我在从 Web 前端调用 WCF 服务时遇到问题,并且仍然有最初从 RP 检索到的授权和声明可用。

基本上,当 Web 前端调用 WCF 时,我无法从 WCF 访问 RP 声明。

0 投票
2 回答
1498 浏览

wcf - 以声明模式托管在 Sharepoint 中的 WCF 服务

我在声明模式下为 Https 配置了一个共享点服务器。我在共享点服务器中托管了 WCF 服务。此 WCF 服务器使用客户端证书进行身份验证。

WCF 服务使用BasicHttpBinding.

在客户端以下是绑定:

我还使用以下调用设置了客户端证书:

客户端证书在客户端和服务器中正确设置。

当我尝试调用该服务时,我收到以下错误:

尽管我已将客户端凭据设置为证书,但尚不清楚为什么它说 http 客户端身份验证方案是匿名的。

0 投票
1 回答
1313 浏览

sharepoint - SharePoint SPClaimProvider 详细信息/用法

我必须为 PeoplePicker 实现我自己的 SPlaimProvider。有一些方法可以覆盖。问题:我无法弄清楚某些方法/参数的用法。所有这些方法都是特定于声明的。

例子:

  • 方法 FillClaimValueTypes。什么是索赔价值类型?这是什么意思?
  • 方法 FillSearch、参数 hierarchyNodeID、searchTree - 这一切是关于什么的?我该如何使用它?

有想法吗?