通过http远程用户进行身份验证
odoo9-addon-auth-from-http-remote-user的Python项目详细描述
允许用户自动登录
此模块通过在中查找字段http_remote_user来初始化会话 http请求的头,并尝试将给定值绑定到用户。 要激活此模块,必须将其安装在预期的数据库中并加载 在启动时,将–load参数添加到启动命令:
--load=web,web_kanban,auth_from_http_remote_user, ...
如果在标题中找到该字段,并且没有用户与给定的用户匹配,则 系统发出登录错误页。(401未经授权的)
用例。
该模块允许与可以通过 通过远程用户http头字段对用户进行身份验证。在许多 这是通过apache httpd或nginx代理odoo等服务器实现的。
重要
当用apache或nginx代理odoo服务器时,它是 在 请求由代理处理以避免安全问题。在阿帕奇你 可以在virtualhost中使用requestheader指令 章节
<VirtualHost *:80> ServerName MY_VHOST.com ProxyRequests Off ... 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[2]
测试模块apache可以用作反向代理,提供身份验证和添加 http头中的必需字段。
安装apache:
$ sudo apt-get install apache2
通过将新文件放入 /提供etc/apache2/站点:
$ 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>
重要
requestheader指令用于添加remote user http头中的字段。默认情况下,'http-'前缀被添加到 字段名。 在odoo中,header的字段名是规范化的。因此 规范化,“http远程用户”可用作“http远程用户”。 如果你不知道你的指定字段是如何被奥多看到的,运行 激活模块并查找条目后,服务器处于调试模式 例如:
DEBUG openerp1 openerp.addons.auth_from_http_remote_user.controllers. session: Field 'HTTP_MY_REMOTE_USER' not found in http headers {'HTTP_AUTHORIZATION': 'Basic YWRtaW46YWRtaW4=', ..., 'HTTP_REMOTE_USER': 'demo')
启用所需的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外提示输入登录名和密码,并自动 已登录系统。
[1] | Shibolleth, Tivoli access manager, .. |
[2] | Based on a ubuntu 12.04 env |
缺陷跟踪器
错误在GitHub Issues上跟踪。如果有麻烦,请 如果您的问题已经报告,请检查那里。如果你先发现它, 通过提供详细而受欢迎的反馈,帮助我们粉碎它。
学分
图像
- 奥多社区协会:Icon。
贡献者
- 劳伦特·米格农,laurent.mignon@acsone.eu>;
维护人员
此模块由OCA维护。
oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。
若要对此模块作出贡献,请访问https://odoo-community.org。