小编Box*_*ype的帖子

ADFS 3 OAuth 2 CORS错误

我将ADFS身份验证添加到具有WebApi后端的Angular SPA网站.为此,我已经使用客户端和RP设置了ADFS实例.

为了登录SPA,用户被重定向到sts.domain/adfs/oauth2/authorize端点.用户在网页上进行身份验证,并重定向到应用程序中的页面 - www.domain/token/redirect.html?code = SOMECODE&state = URL

此页面从URL参数中提取令牌,并调用sts.domain/adfs/oauth2/token端点以获取WebApi后端的JWT令牌.

var url = "https://sts.domain/adfs/oauth2/token";
$.ajax(url, {
type: "POST",
data: {
grant_type: "authorization_code",
client_id: client,
redirect_uri: redirect,
code: token
}
})
Run Code Online (Sandbox Code Playgroud)

然后,应用程序保存WebApi令牌并将其添加到Angular $ http.defaults.headers.common.Authorization,以便它将用于与WebApi后端通信.然后它重定向回SPA.

这一切都可以在IE中正常工作,但在调用/ token OAuth端点时,Firefox和Chrome在标准CORS错误消息中失败.

请求的资源上不存在"Access-Control-Allow-Origin"标头.因此,不允许来源" https://www.domain "访问.

好像我应该将SPA URL添加到ADFS实例的CORS配置中,但我找不到配置ADFS实例的CORS配置的方法.如何在ADFS 3.0 OAuth中配置CORS?有没有不同的方法来完成更标准的任务?

oauth adfs asp.net-web-api angularjs single-page-application

7
推荐指数
1
解决办法
4251
查看次数