【问题标题】:How to fix CORS when requesting a token from ADFS from a SPA (Angular)?从 SPA (Angular) 向 ADFS 请求令牌时如何修复 CORS?
【发布时间】:2020-01-24 06:36:25
【问题描述】:

我正在使用 OAuth2 code flow 授权 Angular 应用程序,并使用 ADFS 作为授权服务器,但是当我尝试使用 post 向 ADFS 服务器的 /token 端点发出请求来获取 access_token 时,请求被 CORS 阻止。我该如何修理帽子?

【问题讨论】:

标签: angular oauth-2.0 adfs


【解决方案1】:

好吧,我认为至少有两种方法; 首先安装 cors 作为角度依赖; npm install cors --save,然后在你的服务器中(假设是 javascript)

var express = require('express')
  ,cors = require('cors')
  , app = express();

如果不是,这可能是两个端口之间本地/远程通信的问题;所以也许创建一个 prox.config.js 。这通常是默认的。

改变任何你需要的地方,例如一个 tomcat 部署:

【讨论】:

    【解决方案2】:

    在 ADFS 4.0 (Server 2016) 及更低版本上无法更改 ADFS 标头。

    但是,ADFS 5.0(Server 2019)确实允许这样做,包括 support for CORS

    【讨论】:

      【解决方案3】:

      我已经设法通过在我的 Angular 应用程序中添加 http interceptor 并仅为对 ADFS 令牌端点的请求添加 CORS 标头来解决问题,并且在 ADFS 方面,我启用了 CORS 并更新了列表允许的来源。

      【讨论】:

      • 您如何为 ADFS 启用 CORS?除非您有 ADFS 2019。
      • 我正在使用最新版本的 ADFS。一种解决方法是在后端服务器上创建挑战,并在登录完成后将令牌返回给客户端。
      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 2016-10-03
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-24
      相关资源
      最近更新 更多