【问题标题】:ASP Core Identity Server 4 Difference between Client Cors and start up Configuration CorsASP Core Identity Server 4 Client Cors 和启动配置 Cors 之间的区别
【发布时间】:2020-08-29 01:00:25
【问题描述】:

对于 Identity Server 4,我想知道添加特定于客户端的 CORS 之间的区别 new client() {client.AllowedCorsOrigins = new List<string>() { "http://localhost:4222" };} 并在 Startup.cs Configure 中添加设置

 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 调用进一步使用?)

您知道的任何信息都会很有帮助,谢谢。

【问题讨论】:

    标签: authorization identityserver4


    【解决方案1】:

    IdentityServer 被实现为中间件,与 ASP.NET Core CORS 中间件相同。

    您需要将 CORS 添加到 IdentityServer 模块,因为您希望能够限制每个 IdentityServer 客户端的 CORS 设置。

    ASP.NET Core CORS 模块将处理 IdentityServer 未捕获的所有内容,例如对您自己实现的 REST API 的请求。

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

    【讨论】:

    • 一旦添加了Client specific CORS,还需要做什么吗?现在,这就是我所做的一切,但是在发出 AJAX 请求时出现了 CORS 错误。 project on GitHub
    • 我在您的 Startup 类中没有看到任何 CORS 设置,请参阅 docs.microsoft.com/en-us/aspnet/core/security/…
    • 我想因为我有app.UseIdentityServer(),IdentityServer 会为我处理 CORS 的东西,尤其是客户端配置的?你是说和客户端配置的一样,我必须通过中间件设置相同的东西吗?
    • IdentityServer 在 cors 中的构建仅处理对 identityServers 自己的 API 的 API 请求,但是如果您添加自己的 API,那么 IdentityServer 并不关心这些……这就是您需要添加 ASP.NET 的原因核心一也是。看我上面的照片。
    • 没错,我没有调用我自己的 API,我调用的是 IdentityServer 自己的 API,所以我很困惑为什么没有设置 Access-Control-Allow-Origin。基本上,this is my problem.
    猜你喜欢
    • 2019-04-26
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 2019-01-09
    • 2013-12-13
    • 1970-01-01
    • 2019-03-10
    相关资源
    最近更新 更多