我正在尝试使用 ADFS(本地)设置我们的 Angular SPA + .ASPNET Core API 以摆脱 Windows 身份验证。最终目标是:
- Angular SPA -> 将用户重定向到 ADFS 并接收 id_token
- Angular SPA -> 使用此令牌调用 API
- Angular SPA - > 不时刷新令牌
在 ADFS 上正确配置了 Angular SPA 和 API。我正在使用angular-oauth2-oidc来配置水疗中心。
问题是:加载 SPA 时,当 SPA 尝试到达 OpenId Discovery 端点 ( .well-known/openid-configuration
) 时,我收到 CORS 错误。所以我什至无法将用户重定向到 ADFS。没有任何效果。
我在网上看了很多,只发现很多其他人说 ADFS 不支持 CORS。不过看起来很奇怪。Microsoft 声称他们支持单页应用程序,因此您已经或多或少假设 ADFS 将接收 CORS 请求。
有没有其他人碰到过这个问题?说真的,微软已经实现了这一点并且没有以允许 CORS 请求的方式构建?
编辑:我还尝试围绕 adal.js 创建一个包装器。我设法将用户重定向到 ADFS,登录并获取 id_token。现在的问题是 stsaud
在令牌中返回 spa 的声明,而不是 api。当 SPA 使用令牌调用 API 时,它按预期失败。感觉我在这方面遇到了死胡同。