【问题标题】:Authenticate via XMLRPC in Odoo from a PHP system从 PHP 系统通过 Odoo 中的 XMLRPC 进行身份验证
【发布时间】:2016-10-13 04:27:14
【问题描述】:

我想通过 xmlrpc 向 Odoo 进行身份验证,但作为 SSO 类型的实现。用户的凭据在 Odoo 和 PHP 中是相同的,所以当用户登录时,基本上会从 php 系统重定向到 Odoo。问题是由于密码在 PHP 和 Odoo 端都经过哈希处理,因此无法将密码从 php 传递到 odoo。我知道如果用户名和密码都通过了就可以进行认证了,但是这里不是这样,那么有没有办法针对上面的场景实现SSO呢?

感谢和问候,

亚辛谢里夫

【问题讨论】:

    标签: php python openerp odoo-8 xml-rpc


    【解决方案1】:

    Odoo 支持本地密码以外的其他身份验证机制,开箱即用:

    • LDAP 身份验证由内置的auth_ldap 模块提供。它需要外部 LDAP 服务,例如 openldap 或 Microsoft Active Directory。它也适用于 XML-RPC 级别,因为它是一种基于密码的机制。
    • OAuth2 身份验证由内置的auth_oauth 模块提供。它需要外部 OAuth2 提供程序,例如 Google 或 Facebook 帐户。这在 XML-RPC 级别上不能透明地工作,因为它不是严格基于密码的。您需要先对 HTTP 会话进行 OAuth 身份验证,然后您可以像使用 XML-RPC 一样使用 JSON-RPC API 远程访问 Odoo。
    • Odoo 8 还通过auth_openid 模块内置了对OpenID 集成的支持。这需要外部 OpenID 服务,但从 Odoo 9 开始已弃用,取而代之的是等效的 OAuth 服务。与 OAuth 类似,它不是基于密码的,因此不能直接在 XML-RPC 级别工作。

    Odoo API 可以通过 XML-RPC 或 JSON-RPC 完全访问,它们是严格等价的。大多数语言都有各自的 RPC 库,流行的语言通常有专门的 Odoo RPC 库。

    您可以通过使用其中一种外部身份验证机制轻松地在 Odoo 和您的 PHP 应用程序上实现 SSO,因为它们都有 PHP 库。您只需要为您的案例选择合适的提供商。

    此外,还存在用于其他身份验证机制的第三方社区模块(初学者请查看here)。例如,对于 7.0 版,有一个模块将在 Odoo 中基于 HTTP 基本身份验证 (auth_from_http_basic) 进行身份验证,从而允许基于 Web 服务器的可插入身份验证的 SSO。我不认为它是为版本 8 移植的,但您或许可以联系作者并帮助完成它。

    【讨论】:

    • 嗨 Odony,有没有办法实现从 Shiboleth 到 odoo 的 saml sso?
    猜你喜欢
    • 2010-11-18
    • 2010-10-01
    • 2011-09-09
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多