我有以下情形:(客户端/浏览器)=>(Web服务/ Web API)=>(SharePoint REST-Api)。 基本上,我想要达到的目标是让中间应用程序(WebService / Web API)充当SharePoint-REST-API的正面外观,以简化需要与我们的SharePoint-Application通信的任何人的开发。 (基本上,我们将一些SharePoint请求调用包装到Web API / Facade中的单个调用中)。

现在的问题是,我还希望能够将已登录的Windows用户(AD用户)从客户端发送到Web服务,然后Web服务应代表该Windows用户执行操作并执行以下操作: SharePoint REST-API(这是确保对文件等的权限实际上是根据经过身份验证的用户设置的)。

到目前为止,我们已经尝试在一台服务器上设置Web Service,在另一台服务器上设置SharePoint。然后,我们尝试使用Kerberos和委派设置身份验证,但无法正常工作。 根据我提供的信息,如果我们设法正确地设置Kerberos,你们是否认为像这样的“双跳”将可行?

令我震惊的另一个想法是,也许我们不必在两个不同的服务器中托管Web Service和SharePoint应用程序,但实际上我们可以将它们都托管在具有两个站点的单个IIS服务器中的同一服务器上。 这是否仍需要使用双跳设置Kerberos? 还是仅在票证实际上从一台服务器离开到另一台服务器后才进行“跳跃”计数。.在这种情况下,从Web服务到SharePoint-REST-API的请求将永远不会离开实际的服务器,但可能会交叉域(例如在网络域中,而不是AD域中)。 可以这样做,而不用麻烦于Kerberos双跳,SPN,什么不行吗?

#1楼 票数:0

当您使用集成身份验证时,匿名功能将在那时被禁用,而模拟则被启用。因此安全设置将不允许您的站点访问任何网络服务器上的资源。

当您使用集成身份验证向IIS服务器进行身份验证时,这将用完您的第一个“跃点”。 当IIS尝试访问网络设备时,这将是不允许的第二跳或第二跳。 iis不会将这些凭据传递给下一个网络设备。

如果您使用匿名启用并模拟关闭,则不会发生此问题。

要在iis中配置Kerberos身份验证,您可以按照以下步骤操作:

1)打开iis管理器并选择站点。

2)从中间窗格中选择身份验证功能。

3)启用Windows身份验证并禁用匿名。

4)使用Windows身份验证,从“操作”窗格中单击提供程序。

5)通过以下方式设置提供商:

谈判

NTLM

在此处输入图片说明

保存更改。

6)返回并选择配置编辑器。

从部分下拉列表中选择system.webServer / security / authentication / windowsAuthentication。

“ useAppPoolCredentials”设置为true。

将“ useKernelMode”设置为“ True”并保存设置。

7)重启iis。

8)配置SPN

以管理员身份打开命令提示符,然后运行以下命令以检查计算机名称:

hostname

当您具有自定义主机名并将其注册到域帐户时,需要在下面创建一个SPN。

setspn -a HOST/${FQDN_HOST} ${MACHINE_NAME}
setspn -a http/${FQDN_HOST} ${MACHINE_NAME}

9)之后,将应用程序池标识设置为自定义帐户,并设置用户名和密码。

您可以参考下面的这篇文章,以获取更多详细信息:

https://weblogs.asp.net/owscott/iis-windows-authentication-and-the-double-hop-issue

https://active-directory-wp.com/docs/Networking/Single_Sign_On/SSO_with_IIS_on_Windows.html

https://techcommunity.microsoft.com/t5/IIS-Support-Blog/Setting-up-Kerberos-Authentication-for-a-Website-in-IIS/ba-p/324644

  ask by Inx51 translate from so

未解决问题?本站智能推荐:

1回复

Kerberos双跳之类的问题-即使不使用Windows身份验证

我有一个使用域帐户标识的应用程序池下运行的Web应用程序。 Web应用程序配置为“ 匿名身份验证 ”。 该Web应用程序使用集成安全性连接到域帐户具有适当权限的SQL Server数据库(在同一域中的其他服务器上运行)。 当用户(通过Chrome / IE)访问Web应用程序(ASP.
1回复

在不提示身份验证的情况下查看来自 Web 应用程序的报告 - Reporting Services 2017

我公司刚刚完成了一个2017年的报表服务服务器。该服务在一个域名下运行。 在同一台服务器上,已设置 IIS 以在 ASP.NET 中运行 Web 应用程序,该应用程序将从报表查看器提供报表。 IIS 当前正在使用默认应用程序池运行。 目标:我们希望客户能够从 Web 应用程序访问报告,而无需在
1回复

我的身份验证问题与双跳问题有关吗?

我们的自制协作网站存在身份验证问题。 我们有带有Collab平台的服务器A。 我们使用我们的域帐户登录网站。 该网站与服务器B上的API进行通信,但是服务器B也应该能够从服务器C上的Intranet(Sharepoint)中获取数据。这是双跳问题吗? 使用的是NTLM,而不是Kerb
1回复

在.NET Core中将Kerberos身份验证与WebAPI结合使用

我已经构建了一个由IIS托管的.net核心应用程序,并且我想强制某个API端点仅使用协商身份验证。 所以我尝试将以下内容添加到web.config中: <location path="~/api/v1/authentication/sso"> <system
1回复

.NET应用程序Kerberos,Sharepoint和Sql服务器身份验证

在由IIS托管的C#Web应用程序中,我希望使用技术用户连接到数据库,而我的web.config(用户AD)中没有任何凭据。 此外,我的应用程序通过kerberos身份验证与Sharepoint库进行通信。 模式 我的问题是我不知道该怎么做。 到目前为止,数据库凭据都位于web.
3回复

使用Kerberos身份验证从Java应用程序访问SharePoint网站

我试图从Java应用程序访问SharePoint网站。 SharePoint服务器更喜欢Kerberos身份验证。 能否请您提供仅实施Kerberos身份验证的示例?
2回复

Windows身份验证-Kerberos或NTLM(协商oYICO…)

我在Intranet应用程序中的单个用户遇到了问题。 客户端是WPF应用程序,它与ASP.Net Web API Web服务进行通信。 客户端使用以下命令发送HTTPS GET和POST请求 在IIS上,Windows NT通过NTLM和Negotiate提供程序启用身份验证。
1回复

设置对文件服务器的双跳身份验证,出现401错误

我已经关注了很多关于此的文章 ,但没有任何帮助 流程是这样的 www.example.com-> Windows身份验证,IIS7,ApplicationPoolIdentity 内容是// UNCshare中的所有静态内容 在计算机帐户上启用委派