如何在Windows 2016 RTM ADFS上为富客户端或Web应用程序配置客户端和信赖方信任?

Pet*_*ter 3 .net authentication adfs adal windows-server-2016

我以前有一个富客户端使用Windows 2012 R2 ADFS进行身份验证,并在此处进行了记录.我们正在转向Windows 2016 RTM ADFS(因为2012 R2不能正确支持Web Apps/ADAL.js),我正在努力将该配置转换/扩展.无论我做什么,当客户端点击ADFS时我很快就会收到错误:

 MSIS9321: Received invalid OAuth request. The client 'LL957F23-D6C5-4D52-8A40-4F26B3408888' is forbidden to access the resource '<relying-party-url>' 
Run Code Online (Sandbox Code Playgroud)

我已经为ADFS 2016的预览版本找到了几个对此问题的响应,并且所有建议使用相同的解决方案 - 使用powershell设置依赖方并指定以下选项:

-IssuanceAuthorizationRules '=> issue(Type = "http://schemas.microsoft.com/authorization/claims/permit", Value = “true”);'
Run Code Online (Sandbox Code Playgroud)

但是,我已经采用了这些解决方案显示的确切代码,并尝试手动将访问控制策略设置为"允许每个人"(默认),或者使用-IssuanceAuthorizationRules设置,并且都没有解决此问题.

有没有人在Win 2016 RTM上有这个错误或ADFS体验的其他解决方案?

Pet*_*ter 7

好的,我有这个工作.与Windows 2012 R2上的ADFS相比,还有一些其他配置.

在Windows Server 2016 ADFS上,我们需要设置一个应用程序组,它将一个或多个客户端链接到他们希望使用的服务(依赖方).

打开ADFS管理控制台,在左侧右键单击"应用程序组"和"添加应用程序组..."

选择一个客户端 - 服务器模板允许您在向导的一次传递中设置链接的客户端和服务器.如果像我一样,您已经定义了客户端应用程序,则可以选择独立Web Api并稍后链接现有客户端.

在这种情况下,向导的第2页只需要Web Api标识符 - 目标资源URL或其他字符串标识符(它在ADFS上的所有依赖方之间必须是唯一的).

在第3页上,您选择了一个访问控制策略 - 我采用默认值而不是"Permit Everyone".

在第4页上,您可以添加需要令牌的现有客户端以访问顶部面板中的Web API,并指定允许的范围:例如OpenID Connect授权或请求刷新令牌的功能.

添加独立Web API时向导的第4页

就是这样.这摆脱The client is forbidden to access the resource了我的错误.我没有必要使用-IssuanceAuthorizationRules其他帖子中描述的自定义.