Oauth 2.0 ADFS 2016-OAuth2 SPA-静默获取新代币

Oauth 2.0 ADFS 2016-OAuth2 SPA-静默获取新代币,oauth-2.0,single-page-application,adfs4.0,Oauth 2.0,Single Page Application,Adfs4.0,我有一个SPA,用户在ADFS中进行身份验证,应用程序获得一个访问令牌。我试图使用JS代码来模拟ADALJS的功能,其中使用隐藏的iframe向ADFS发出请求以获取新令牌 这是iframe的“src”值: ADFS配置了两个领域:AD和ADLDS(LDAP)。因此,我不确定需要在ADLDS中为用户传递域提示和登录提示参数的值 请求失败,并显示以下消息: ADFS事件查看器显示此错误: 例外情况详情: Microsoft.IdentityServer.Web.Protocols.OAuth.

我有一个SPA,用户在ADFS中进行身份验证,应用程序获得一个访问令牌。我试图使用JS代码来模拟ADALJS的功能,其中使用隐藏的iframe向ADFS发出请求以获取新令牌

这是iframe的“src”值:

ADFS配置了两个领域:AD和ADLDS(LDAP)。因此,我不确定需要在ADLDS中为用户传递域提示和登录提示参数的值

请求失败,并显示以下消息:

ADFS事件查看器显示此错误:

例外情况详情: Microsoft.IdentityServer.Web.Protocols.OAuth.Exceptions.OAuthNoPassiveException:MSIS9233:为OAuth授权请求找到多个标识提供程序,提示设置为“无”。无法完成主域发现


ADFS 2016中是否实际支持此功能?知道我做错了什么吗?

请求参数的
prompt=none
表示您希望在不与用户交互的情况下通过
/authorize
请求来传递流程。但是在处理过程中,有一些东西需要用户交互——服务器可能不知道选择哪个身份提供者,因此返回错误。如果您仅通过将
/authorize
URL粘贴到浏览器而不使用
prompt=none
参数来发出相同的请求,则服务器可能会让您选择提供商

您编写了希望获取访问令牌的代码,但您的
/authorize
URL包含
响应\u type=id\u令牌。如果需要访问令牌,则参数应为
response\u type=token
(请参阅)


查看,OpenID Connect支持
domain_hint
request参数,因此您的请求
scope
参数
OpenID
值。这也是获得身份证令牌的必要条件(如果你想要的话)。

George,你试过我的答案吗?