使用 ADAL 和 ADFS 的响应无效

Invalid response using ADAL and ADFS

在 Xamarin I 中构建移动应用程序时 运行 遇到通过 ADFS 进行身份验证的问题。我是 运行 VPS 上的 AD 和 ADFS,我希望移动应用程序通过那里进行身份验证以访问 Web Api。我在应用程序中安装了 Active Directory 身份验证库 (ADAL),当我使用 https://login.windows.net/common 作为权限时它似乎工作正常。

但是当我尝试使用自己的域 https://www.example.com/adfs 作为权限时,ADAL 请求总是 returns The authorization server returned an invalid response.

我试过像这样通过浏览器进行手动请求:

https://www.example.com/adfs/oauth2/authorize?response_type=code&client_id=xxxxxxx&redirect_uri=xxxxxx&resource=xxxxxxxx

这个请求工作正常,因为它向我显示了登录页面,但在成功登录后,它重定向到重定向 uri,并显示一般错误消息。我不得不去服务器的 ADFS 日志中查找以下错误:Unsupported token type.

我是否遗漏了 ADFS 配置或 ADAL 实施中的某些内容?

ADAL 使用 OAuth 而不是 WS-Fed 或 SAML。

ADFS 3.0 对 OAuth 的支持非常有限 - 要获得全面支持,您需要 ADFS 4.0。

This article 描述了您需要做什么。

https://login.windows.net/common 是 Azure AD,得到全面支持,因此有效。

请注意,您需要使用 PowerShell 按照文章配置 RP。