繁体   English   中英

WSO2 + NGINX - 访问创建的 API 时出现问题

[英]WSO2 + NGINX - Problem to access created APIs

情况:

环境:1 服务器:Oracle Linux 运行 Api-Manager 4.1.0 的微集成器 4.1.0 运行 Admin、Publisher、DevPortal 站点可以在服务器和局域网内访问 我用 oauth2(授权+令牌)创建的 API 可以在局域网内访问(通过 Postman)

现在...我想将 API 公开给 inte.net。 我的 IT 团队将以下内容添加到 DMZ 服务器 (NGINX) 配置文件中,其中 oauth2 用于调用身份验证服务,而 dsFenicio 是 API。

    location /oauth2 {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass https://192.168.135.64:9443;
            proxy_read_timeout  300;
            proxy_ssl_server_name on;
            proxy_ssl_session_reuse off;
            proxy_ssl_verify off;
    }


    location /dsFenicio {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_pass https://192.168.135.64:8243;
            proxy_read_timeout  300;
            proxy_ssl_server_name on;
            proxy_ssl_session_reuse off;
            proxy_ssl_verify off;
    }

问题:当我发送 oauth2 授权代码请求(来自邮递员)时,我在浏览器中收到一条消息,指出:“发现可疑的身份验证尝试在身份验证过程中发现可疑的登录尝试。请尝试重新登录”

在此处输入图像描述

这是在日志中(wso2carbon.log):

错误 {org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator} - 身份验证框架 org.ws$wso2.carbon.identity.application.authentication.framework.exception.FrameworkException 中的异常:Session session 的 nonce cookie 值与 sessionDataKey 不匹配:bf74d0ec-05ef-4682-...

这是由于默认启用的称为Session Nonce Cookie 验证的功能。

我能够重现这种情况并能够解决这种情况,同时保持启用 session nonce cookie 验证 遵循以下步骤。

  1. 除了/oauth2端点之外,还通过 nginx 公开了/commonauth/authenticationendpoint/logincontext端点。
  2. 将以下内容添加到deployment.toml
[authentication.endpoints]
login_url="https://<loadbalancer_hostname>/authenticationendpoint/login.do"
retry_url="https://<loadbalancer_hostname>/authenticationendpoint/retry.do"

如果没有上述步骤,您也可以禁用此功能以使您的场景正常工作。 可以通过将以下内容添加到deployment.toml文件来禁用此功能。

[session.nonce.cookie]
enabled="false"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM