对于 Identity Server 4,我想知道添加客户端特定 CORS 之间的区别
new client() {client.AllowedCorsOrigins = new List<string>() { "http://localhost:4222" };}
并在 Startup.cs 配置中添加设置
services.AddCors(options =>
{
// this defines a CORS policy called "default"
options.AddPolicy("default", policy =>
{
policy.WithOrigins("Origin")
.AllowAnyHeader()
.AllowAnyMethod();
});
});
就上下文而言,我最近一直在学习 ReactJS SPA 在通过另一方访问单点登录时需要使用的方法,就目前情况而言,我已经实现了库“oidc-client-js”并使用授权代码与 PKCE 一起使用,因为它是标准实现,并且一切正常。但我需要帮助来理解一些事情:
- 如果我在 StartUp 中删除 Cors 选项,授权将失败并返回
origin has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource
,为什么客户端Cors设置不够呢? (它是否可以通过 API 调用进一步使用?)
您知道的任何信息都会很有帮助,谢谢。
最佳答案
IdentityServer 作为中间件实现,与 ASP.NET Core CORS 中间件相同。
您需要将 CORS 添加到 IdentityServer 模块,因为您希望能够限制每个 IdentityServer 客户端的 CORS 设置。
ASP.NET Core CORS 模块将处理 IdentityServer 无法捕获的所有内容,例如对您自己实现的 REST API 的请求。
希望这有帮助。因此,在 IdentityServer 中定义 CORS,以请求 IdentityServer 提供的 API(例如 UserInfo 端点)以及您自己的 API 的其他 CORS 设置。
关于authorization - ASP Core Identity Server 4 客户端 Cors 和启动配置 Cors 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63636998/