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

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


License: AGPL-3

来自HTTP远程用户的身份验证

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

--load=web,auth_from_http_remote_user, ...

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

配置

该模块允许与外部安全系统[1]集成,后者可以通过 通过HTTP头的远程用户身份验证。在许多方面 在这种情况下,这是通过服务器实现的,比如apachehttpd或nginx代理Odoo。在

重要的

当用Apache或nginx代理Odoo服务器时 重要的是,在 请求由代理处理以避免安全问题。在阿帕奇你 可以通过在虚拟主机中使用RequestHeader指令来完成 剖面

^{pr2}$

如何使用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中,头的字段名被规范化。因此 规范化时,“Http Remote User”可用作“Http_Remote_User”。 如果你不知道你的指定字段是如何被Odoo看到的,运行 激活模块并查找条目后,服务器处于调试模式 比如:

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

对于本地测试,添加MY_VHOST.com公司在/etc/vhosts文件中。在

最后重新加载配置:

$ sudo service apache2 reload

打开浏览器并转到“我的”_VHOST.com公司. 如果一切都配置得很好 在Odoo外部提示输入登录名和密码,并自动 已登录系统。在

[1]Shibboleth, Tivoli access manager, ..
^{tb2}$

用法

Try me on Runbot

Bug跟踪器

bug在GitHub Issues上跟踪。万一有麻烦,请 检查是否已经报告了您的问题。如果你先发现的话, 通过提供详细而受欢迎的反馈,帮助我们粉碎它。在

学分

图像

  • 奥多社区协会:Icon。在

贡献者
  • 洛朗·米格农

维修人员 Odoo Community Association

本模块由OCA维护。在

OCA,或奥多社区协会,是一个非营利性组织 其任务是支持Odoo特性和 促进其广泛使用。在

要对本模块有所贡献,请访问https://odoo-community.org。在

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

推荐PyPI第三方库


热门话题
java不兼容类型:MainActivity无法转换为LifecycleOwner   java安卓是一种更有效的读取大文本文件的方法   java导出LWJGL本地人与项目?(IntelliJ IDEA)   JDK更新后,JavaJShell不再在下一行打印输出   父类对象上的继承Java比较子属性   Java:有没有一个容器可以有效地结合HashMap和ArrayList?   安卓 Java对象指针   java在annotationdriven Spring MVC应用程序中实现大气   java 安卓源代码构建应用找不到安卓supportv4。罐子   文件系统上的抽象层和Java中的jar/zip   java在水平滚动视图中添加多个图像?   java如何从firebase实时数据库中获取字符串数组   WIndows 10工作站上的java未满足链接错误   java命令在终端中工作,但在使用过程中出现“无结束引号”错误。执行官