问题标签 [c2wts]

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 投票
2 回答
2204 浏览

sharepoint - 性能点/Excel Services 的 Sharepoint Claims/c2wts 问题

我创建了一个自定义声明提供程序,以允许用户从现有网站登录 SharePoint。这会发出声明,包括格式为 username@domain 的 UPN 声明。在我启用SharePoint Web 应用程序 web.config之前mapToWindows,用户可以正常登录。此时我收到一条标准的 SharePoint 错误消息,并且跟踪中可以看到以下异常。useWindowsTokenServicesamlSecurityTokenRequirement

我认为 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数据的账号,所以使用固定的连接字符串是不可行的。

0 投票
1 回答
2016 浏览

sharepoint - 对 windows 令牌服务模拟令牌的声明

我有一个基于声明的 SharePoint 2010 网站,我需要调用后端非声明感知系统 (K2 blackpearl)。

因此,为了实现这一点,我尝试使用对 Windows 令牌服务的声明来模拟用户,如此处所述

现在,当使用用户 UPN 调用 c2wts 以使用以下代码转换为声明时:

现在,当我模仿 windowsIdentity.ImpersonationLevel 是识别而不是模仿

我认为这是导致问题的原因,因为当尝试使用失败的令牌调用服务时。上面提到的文章谈到了取回模拟令牌,但我无法做到这一点。

有谁知道我可能做错了什么?

谢谢

0 投票
1 回答
1531 浏览

sharepoint-2010 - 从 Sharepoint Claims Base Athentication Webapplication 中的代码访问 windows 共享

我想通过代码访问另一台机器上的共享资源。我的环境是在声明身份验证模式下工作的 Sharepoint 2010 WebApplication。应用程序的 Windows 身份是 NT AUTHORITY\IUSR - 不是已登录的用户,因此要访问另一台机器上的网络共享资源,我需要执行模拟。由于我没有有效的 Windows 令牌来执行模拟,我需要使用对 Windows 令牌服务的声明,我已将其配置为能够由 NT AUTHORITY\IUSR 访问。该服务作为本地系统帐户运行。我可以使用以下代码从我用来执行模拟的服务中获取模拟级别的 Windows 令牌:

该服务正在正确返回令牌并且模拟成功,当我使用以下代码返回当前登录用户的身份时:

我正在获取登录到共享点的用户的用户名。

问题是尝试访问网络资源时出现“拒绝访问”错误。问题很明显是因为通过 c2wts 进行的模拟,因为当我使用以下代码提供实际凭据(登录名和密码)来模拟用户时:

我能够毫无问题地枚举服务器上的共享。

根据我在 Internet 上找到的信息,要正确配置服务以访问另一台服务器上的 sql 数据库,我需要在 Active Directory 中启用协议转换和约束委派,并将该约束设置为 mysql 服务。我仍然不确定在这种情况下如何启用委派,因为我想要实现的是能够访问任何机器上的任何共享,只要用户有权这样做。

总而言之,我想从基于 Sharepoint 声明的身份验证 WebApplication 中模拟用户以访问其他计算机上的网络共享,但即使使用 c2wts 进行艰难的模拟似乎也是成功的(检查当前用户名时返回正确的用户名)我无法访问另一台计算机上的资源。另一方面,当使用代码中直接提供的登录名和密码进行模拟时,一切正常,但这对我来说不是一个选择。

0 投票
0 回答
676 浏览

wif - 使用 WIF 和 ADFS 1.0 实现 ASP.NET Web

我开发了一个使用 WCF 服务作为后端的 ASP.NET 前端解决方案。该网站目前使用 ADFS 1.0 进行身份验证(我无法控制 ADFS 的实现,但它已针对我的 Web 应用程序进行了配置)。此外,无法升级到 ADFS 2.0(至少在不久的将来不会)

Web.config 中的配置如下:

这工作正常,我可以使用 ADFS 中的帐户访问应用程序。问题是我需要将此声明身份转换为 WindowsIdentity才能访问后端 WCF 服务(它们使用带有模拟/委托的 Windows 身份验证)。

有什么方法可以使用 ADFS 1.0 完成此任务?我曾尝试使用 WIF (Windows Identity Foundation),但如果可以将它与 ADFS 1.0 一起用作 STS,我找不到任何明确的信息。我还调查了“基于 Windows NT 令牌的应用程序”选项(http://technet.microsoft.com/en-us/library/cc784956(v=ws.10).aspx),但我想避免更改如果可能,在当前的 ADFS 实现中。

为了测试 WIF 选项,我在 Web.config 中使用了以下配置(移除了 websso 上的部分):

我还在网络服务器上运行“对 Windows 令牌服务的声明”(c2WTS)。

我被重定向到 ADFS 服务器,但我只收到来自服务器的一般错误。