【问题标题】:How do I configure client and relying party trust on Windows 2016 RTM ADFS for a rich client or web app?如何在 Windows 2016 RTM ADFS 上为富客户端或 Web 应用程序配置客户端和信赖方信任?
【发布时间】:2017-08-17 02:59:15
【问题描述】:

我之前有一个使用 Windows 2012 R2 ADFS 进行身份验证的富客户端,并记录了它here。我们正在迁移到 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>' 

对于 ADFS 2016 的预览版,我发现了几个对此问题的响应,并且都提出了相同的解决方案 - 使用 powershell 设置依赖方并指定以下选项:

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

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

是否有人对此错误有其他解决方案或在 Win 2016 RTM 上使用 ADFS 的经验?

【问题讨论】:

    标签: .net authentication adfs adal windows-server-2016


    【解决方案1】:

    好的,我已经完成了这项工作。与 Windows 2012 R2 上的 ADFS 相比,还有一些额外的配置。

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

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

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

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

    在第 3 页上,您选择了访问控制策略 - 我采用了默认值,而不是“允许所有人”。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      相关资源
      最近更新 更多