跳转到主要内容

通过HTTP远程用户进行认证

项目描述

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

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

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

用例。

该模块允许与外部安全系统([1])集成,这些系统可以通过远程用户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

启用您的新虚拟主机

$ 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

对于本地测试,将《MY_VHOST.com》添加到您的/etc/vhosts文件中。

最后,重新加载配置

$ sudo service apache2 reload

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

贡献者

  • Laurent Mignon

项目详情


下载文件

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

源分布

此版本没有可用的源分布文件。请参阅生成分布存档的教程

构建分布

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面