使用 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。
在 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。