问题标签 [auth-request]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
26162 浏览

nginx - 使用 NGINX auth_request 和 oauth2_proxy 设置标头

我想使用auth_requestoauth2_proxy在成功的身份验证请求上设置标头,然后将其传递给将处理实际请求的下一个内联代理。

我已经设置了 NGINX 和各种代理来做他们的事情,但是我不确定如何设置我用于身份验证请求的服务器的标头(图中的 AUTH PROXY),以便将该标头传递给下一个服务器(图中的 BACKEND SERVER)

我的 NGINX 配置看起来像

当我发出实际请求时,我在 NGINX 调试日志中看到以下内容(这是来自身份验证服务器的响应的一部分):

我想获取x-user标头并将其传递给后端服务器。

我已经在location /块中尝试了各种组合,但它们都没有奏效。例如

  • proxy_set_header x-user $upstream_http_x_user;
  • proxy_set_header x-user $http_x_user;
  • proxy_set_header x-user $sent_http_x_user;
  • proxy_pass_header x-user

这些似乎都不起作用。有什么想法可以完成这项任务吗?请注意,设置我要传递给后端服务器的标头的是身份验证代理,

0 投票
1 回答
1665 浏览

nginx - nginx auth_request_set 不允许在上下文中测试变量

我正在寻找 fcgi 授权方的解决方法,这就是我的测试配置的外观:

如果我可以在子请求返回后立即测试变量$nodewithing结构,那将是一件很高兴和很好的事情。if不幸的是,它总是空的,我必须设置一个单独的服务器来解决它:

不幸的是,这仅在 $http_node 不为空并且返回 400(未知位置)时才有效,并且调试日志没有解释原因:

我已经花了整整两天的时间,真的需要一个新的输入......

0 投票
1 回答
10939 浏览

php - 使用 auth_request 模块进行 Nginx 身份验证

我已经安装了启用了 auth_request 模块的 nginx,但是当我尝试设置身份验证时遇到了问题。我想通过 php 脚本进行身份验证,当用户向此位置发出请求时,然后向 php 文件发出 nginx 请求,如果响应为 2xx,则身份验证为 true,如果响应为 4xx,则身份验证失败。

这是我现在所做的,它正在完美地工作,但我不知道如何在 php 文件上传递参数,例如用户名密码: http ://example.com/live/index.php?username=test&password=密码

这是没有这些参数的配置。

谢谢

0 投票
1 回答
8440 浏览

php - 从 nginx 将参数传递给 auth_request 模块

我想对实时 HLS 流进行 protext 处理。我想使用 auth_request 模块。我想通过传递密钥来检查请求是否有效。就像这样:http ://domain.com/hls/stream.m3u8?key=xxxxxxx

我在 nginx.conf 中有以下设置:

现在我需要在http://localhost.com:8080/on_play.php中获取 key=xxxxx 。

我尝试了很多,但似乎没有任何效果。我也尝试过类似的东西:

但这也行不通。似乎不可能在 on_play.php 中获得关键参数

$_SERVER["REQUEST_URI"] 也不包含参数。

还尝试了以下配置:

我也尝试过这样的事情,但这也不起作用:

但这也行不通。

nginx -V 的输出是:

我可以在 php 中读取 $_SERVER["HTTP_X_ORIGINAL_URI"],但我喜欢将变量与 $_GET 一样。这似乎不起作用。

从下面的日志中可以看到,子请求中只添加了 $is_args 变量。debug.log 如下:

0 投票
0 回答
123 浏览

nginx - 如何将两个 nginx 模块链接在一起?

鉴于我的设置,我需要做一个重定向规则,但前提是请求没有被ngx_http_auth_request_module授权。

我做了一些搜索,但找不到任何东西。我应该能够根据请求授权的结果设置一个全局变量,然后ngx_http_rewrite_module将能够只给客户端一个 200 响应,但具有我选择的自定义内容。

我正在提供视频播放器,所以除了 200 之外,我无法返回任何其他响应代码,否则将不会播放警告视频。

0 投票
1 回答
1964 浏览

web - 如何根据子请求设置变量值

如果用户正确登录,我将尝试根据结果设置变量的值。我将将此变量用于条件 ssi。我正在使用auth_request module来授权用户。此授权适用于所有页面。我面临的问题是,对于 401/403 错误,NGINX 会传递401给客户端。我想要做的是无论如何都显示一些页面(即使授权失败),但是为条件 ssi 设置变量(到子请求的状态)。

配置文件

0 投票
0 回答
825 浏览

python - 如何使用 nginx auth_request 模块 + python 授权访问目录

我想授权/private使用auth_requestNginx 模块访问目录。

Nginx 文档中,似乎我应该像下面这样:

在我的例子http://localhost:8080/中是一个 python 服务器,它应该根据数据库对用户进行身份验证。这是python代码:

现在,当我http://localhost/private/在浏览器中访问时,它会打印:

等待我返回的代码

问题:如何请求/接收用户名和密码数据,以便引发 401 异常或让用户通过?

0 投票
1 回答
1039 浏览

nginx - Nginx 单点登录 - auth_request 模块

我希望实现的流程

我该如何执行这样的微服务架构?主要的是我想将数据从一个微服务传递到另一个微服务,同时不授予对第二个微服务的访问权限,如果

0 投票
1 回答
1887 浏览

apache - NGINX proxy_pass 到另一个端口

我正在尝试通过代理传递在 nginx 中执行 auth_request,但我不断收到:

这是我的配置:

请求应该被发送到正在监听端口 5029 的 apache 服务器。我做错了什么?

0 投票
1 回答
3012 浏览

ajax - 我如何处理会话 cookie 设置,然后将其与 NGINX auth_request 一起使用?

我们正在尝试实现一个简单的身份验证机制,使用 NGINX 作为代理服务器和 auth_request 来保护一些静态文件。

  • 静态文档位于docs.mydomain.com
  • 使用电子邮件/密码生成会话令牌的 API 在login.otherdomain.com中(它将返回带有电子邮件和会话令牌的 JSON)

当前的身份验证过程如下所示:

  1. 当用户尝试访问 docs.mydomain.com 时,他们将看到一个登录表单。在那里,他们输入他们的凭据,然后通过 AJAX 发送电子邮件/密码,API 会给我们一个会话令牌,我们将它存储在一个 cookie 中,类似这样(还注意到在 login.otherdomain.com 我有启用身份验证)。

    /li>
  2. 然后表单实际发送(使用 GET),您可以看到请求中清除的字段(电子邮件和密码)看起来有点难看。请求被发送到 docs.mydomain.com/docs,它将根据 login.otherdomain.com 检查会话令牌并验证它是否仍然有效,所有这些都使用 nginx auth_request ( https://developers.shopware.com/blog/2015 /03/02/sso-with-nginx-authrequest-module/)。像这样的东西:

    /li>

然后显示文档。我们仍然需要对错误消息进行干净的处理,但这首先是可行的。尽管如此,它仍然感觉很难看(特别是获取会话令牌的 AJAX 请求),我认为应该有更好的方法来做到这一点。关于如何改进的任何想法?我们尝试实现这一点的方式是否存在安全隐患?