问题标签 [remoteusermiddleware]

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 投票
0 回答
353 浏览

python - RemoteUserMiddleware 不起作用,它只是将我重定向到 /accounts/login/?next=

我试图WWW-Authenticate在 Django 中使用简单的 HTTP 身份验证REMOTE_USER。这是通过RemoteUserMiddleware完成的。

不幸的是,像这样更改我的配置文件后:

并将@login_required装饰器添加到我的视图中,它不起作用。当我查看该页面时,它会将我定向到accounts/login/?next=/page/I/tried/to/access,它不存在并引发 404 错误。

为什么不直接发送WWW-Authenticate?如果这不是正确的方法,我该怎么办?

0 投票
1 回答
1579 浏览

django - Django 使用管理站点添加远程用户

我在启用 Shibboleth 的服务器上运行 Django 站点,因此使用Remote User authentication backend。所有用户都通过此服务(如 LDAP)进行身份验证。这对我有用。但是,我的站点已被锁定,因此只有属于员工组的用户才能访问视图——因此这需要“超级用户”进入数据库或管理站点并将用户更改为员工。我想扭转这个工作流程,这样我就可以在 Django 管理站点中预先创建/预先授权远程用户,所以当他们第一次尝试登录时,他们不必等待某人翻转他们帐户上的“员工”标志。

问题是 Django 管理站点希望您为所有新用户输入密码。不过,在我的数据库中,远程用户的密码字段为空白——虽然密码字段的内容似乎对远程身份验证无关紧要,但我希望超级管理员不必为每个人设置“假”密码.

如果我直接在 MySQL 数据库中创建用户,我可以很好地创建远程用户,因为我可以将密码字段留空。但是,我不希望将直接数据库访问权限分配给其他超级管理员。

我已尝试根据此 SO 帖子从管理站点中删除密码字段。但它仍然会返回一个验证错误,即我缺少一个字段(即密码)。

我的管理员.py:

问题:在 Django 设置中预填充授权远程用户的最佳方法是什么?我正在使用 MySQL 运行 1.5.1。如果我创建自定义添加用户视图,这是最简单的方法吗?或者有没有办法以某种方式利用现有的 Django 管理视图?

谢谢!

0 投票
1 回答
1922 浏览

django - Django 远程用户后端

我正在尝试在 Django 1.5 中使用多个身份验证后端。

我想RemoteUserBackend与自定义header和标准一起使用ModelBackend

似乎我可以使一项或另一项工作,但不能两者兼而有之。如果我尝试使用登录,ModelBackend则会收到此错误:

设置.py:

custom_auth.py:

我不确定我错过了什么。如果我设置了“CUSTOM_USERID”,它可以工作,但我不能使用标准登录。

我错过了什么?

0 投票
0 回答
592 浏览

django - 重定向后 django 中的 REMOTE_USER 为空

在我看来,我不太了解 REMOTE_USER 变量。我有三个基于不同主机的实例:nginx、django_auth_server、django_app_server。我正在尝试实现“单点登录”:用户通过 nginx 登录到 django_auth_server,被重定向到 django_app_server 并继续冲浪而无需身份验证。在我重定向到根文件夹后(从“/login”到“/”),REMOTE_USER 变量为空。但它确实存在于请求标头中:

授权视图中的代码(djangoauth 实例):

我不确定以这种方式设置变量是否正确。

nginx 配置的一部分

如何将变量传递给应用服务器?

0 投票
1 回答
344 浏览

python - Django 没有设置 REMOTE_USER

我正在尝试获取有关访问该网站的用户的信息以进行用户身份验证以及出于其他目的。在查看了 Django 的官方文档后,我得到了这篇文章,但是当我尝试访问时,我仍然request.META["REMOTE_USER"]收到错误,因为不存在密钥。经过一些调整,当我再次尝试时,即使我尝试从同一网络上的另一台 PC 访问我的网站,我也得到了我的 PC 的用户名。

我正在使用 Django 的轻量级服务器进行测试,托管在我的 PC 上,并尝试从同一网络上的另一台 PC 访问该网站。

请帮助并尝试解决此问题。