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

odoo9-addon-auth-from-http-remote-user的Python项目详细描述


License: AGPL-3

允许用户自动登录

此模块通过在中查找字段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

贡献者

维护人员

Odoo Community Association

此模块由OCA维护。

oca,或odoo社区协会,是一个非营利性组织 任务是支持odoo特性和 促进其广泛应用。

若要对此模块作出贡献,请访问https://odoo-community.org

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么数据库最类似于Map,每个用户/id存储无限多个“键”和“值”?   java仅使用super pom进行测试   内存不足如何解析java。OutOfMemoryError:Java堆空间在增加堆大小的情况下将意味着延迟OutOfMemoryError   来自另一个类的mysql和java jdbc调用[运行时应用程序]   java通过下拉菜单更改搜索框搜索的内容   JAVAlang.ClassNotFoundException:sun。jdbc。odbc。JdbcOdbcDriver   java Selenium点击链接   JavaSpringHibernate:从唯一值列表中获取对象列表   java Bing广告与桌面身份验证问题   java如何在没有任何外部SDK的情况下从安卓打印到收据打印机?   未调用java菜单片段类   java在IDEA和PyCharm中同时为同一个项目工作   java我们如何为同一个异常提供不同的海关信息   jakarta ee中是否预定义了“请求”和“响应”变量或值?   java更好地解决“之前和之后”难题?   尝试将数据从Excel添加到Java   发送电子邮件的Java代码只适用于一个电子邮件id?   java如何从资产解析XML?