authorization - ASP Core Identity Server 4 客户端 Cors 和启动配置 Cors 之间的区别

标签 authorization identityserver4

对于 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 一起使用,因为它是标准实现,并且一切正常。但我需要帮助来理解一些事情:

  1. 如果我在 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 的请求。

enter image description here

希望这有帮助。因此,在 IdentityServer 中定义 CORS,以请求 IdentityServer 提供的 API(例如 UserInfo 端点)以及您自己的 API 的其他 CORS 设置。

关于authorization - ASP Core Identity Server 4 客户端 Cors 和启动配置 Cors 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63636998/

相关文章:

java - 如何从 JAX-WS Web 服务中的编程授权检查返回正确的 HTTP 状态代码?

nginx - 通过 IdentityServer4 认证后,NGINX 背后的 .Net Core 返回 502 Bad Gateway

openid-connect - 检查 session Iframe OpenIDConnect

PHP 安全认证永存

reactjs - 使用 Cognito 授权者从 API 网关返回 401 - 无论传入什么内容

node.js - 使用 OAuth2 处理重定向代码

identityserver4 - 在 IdentityServer 中将授权存储与身份验证存储分开

asp.net-core - Asp.net core 2.0+ - 多种身份验证方案(Cookie/Bearer)

asp.net-core - 在 IdentityServer4 的 token 请求中使用电子邮件

java - 使用 Spring Security for REST API 进行基本身份验证中的用户权限