跳转到主要内容

通过HTTP远程用户进行身份验证

项目描述

License: AGPL-3

允许用户自动登录

此模块通过在HTTP请求的HEAD中查找HTTP_REMOTE_USER字段并尝试将给定值绑定到用户来初始化会话。要生效,该模块必须安装在预期的数据库中,并在启动时加载;将–load参数添加到启动命令中

--load=web,web_kanban,auth_from_http_remote_user, ...

如果在头部找到该字段且没有用户匹配给定的用户,系统将发出登录错误页面。(401 未经授权

系统参数

默认情况下,此模块不允许同一用户同时从不同的浏览器会话连接。它为每个会话创建一个新随机伪密码(sso_key),该密码在每个会话创建时都不同。要允许同一用户从不同的浏览器会话连接,可以配置一个带秘密的系统参数。在会话创建时,生成的伪密码将基于秘密和用户ID进行哈希,使伪密码对同一用户的每个会话都相同。系统参数的键必须是

http_remote_user.secret

并且值可以是任何字符串(例如:123456789abcdefgh)。

用例。

该模块允许与外部安全系统集成 [1],这些系统可以通过Remote_User HTTP头部字段传递用户的身份验证。在许多情况下,这是通过Apache HTTPD或nginx代理Odoo的服务器来实现的。

如何使用Apache测试模块[2]

Apache可以用作反向代理,提供身份验证并在Http头部中添加所需字段。

安装Apache

$ sudo apt-get install apache2

通过在/etc/apache2/sites-available中放置新文件来为Apache定义一个新的vhost。

$ sudo vi  /etc/apache2/sites-available/MY_VHOST.com

内容如下

<VirtualHost *:80>
  ServerName MY_VHOST.com
  ProxyRequests Off
  <Location />
    AuthType Basic
    AuthName "Test Odoo auth_from_http_remote_user"
    AuthBasicProvider file
    AuthUserFile /etc/apache2/MY_VHOST.htpasswd
    Require valid-user

    RewriteEngine On
    RewriteCond %{LA-U:REMOTE_USER} (.+)
    RewriteRule . - [E=RU:%1]
    RequestHeader set Remote-User "%{RU}e" env=RU
  </Location>

  RequestHeader unset Remote-User early
  ProxyPass / http://127.0.0.1:8069/  retry=10
  ProxyPassReverse  / http://127.0.0.1:8069/
  ProxyPreserveHost On
</VirtualHost>

启用所需的Apache模块

$ sudo a2enmod headers
$ sudo a2enmod proxy
$ sudo a2enmod rewrite
$ sudo a2enmod proxy_http

启用您的新vhost

$ sudo a2ensite MY_VHOST.com

创建用于配置的基本身份验证的htpassword文件。

$ sudo htpasswd -cb /etc/apache2/MY_VHOST.htpasswd admin admin
$ sudo htpasswd -b /etc/apache2/MY_VHOST.htpasswd demo demo

对于本地测试,在您的/etc/vhosts文件中添加MY_VHOST.com

最后重新加载配置

$ sudo service apache2 reload

打开您的浏览器并转到MY_VHOST.com。如果一切配置正确,您将在Odoo外部提示登录名和密码,并自动登录系统。

问题追踪器

问题在GitHub Issues上进行跟踪。如有问题,请检查是否已报告您的问题。如果您是第一个发现它的人,请帮助我们通过提供详细且受欢迎的反馈来解决问题。

致谢

图片

  • Odoo社区协会:图标

贡献者

维护者

Odoo Community Association

本模块由OCA维护。

OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛使用。

要为此模块做出贡献,请访问https://odoo-community.org

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

本版本没有提供源代码分发文件。请参阅生成分发存档的教程

构建的分发版本

支持者