внедрение единого входа SAML в odoo для приложения в Microsoft azure

#azure #azure-active-directory #odoo #saml-2.0

#лазурный #azure-active-directory #odoo #saml-2.0

Вопрос:

я пытаюсь внедрить единый вход для приложения Azure AD в odoo. я создал приложение и добавил настройки единого входа в Azure, я загрузил auth_saml и установил в odoo. Затем я настроил поставщиков odoo saml. когда я тестирую соединение с Azure, я получаю сообщение об ошибке 500, а также от oddo. я вставляю журнал ошибок внизу, пожалуйста, помогите, и я застрял здесь на 2 дня. заранее благодарю вас.

  2021-12-10 02:57:32,491 29639 ERROR mydb werkzeug: Error on request:
Traceback (most recent call last):
  File "/Users/hemanthbethu/Xaana/enigma/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 810, in dispatch
    r = self._call_function(**self.params)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 359, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 348, in checked_call
    result = self.endpoint(*a, **kw)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 916, in __call__
    return self.method(*args, **kw)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 535, in response_wrap
    response = f(*args, **kw)
  File "/Users/hemanthbethu/Xaana/enigma/addons/auth_saml/controllers/main.py", line 137, in get_auth_request
    self._get_saml_extra_relaystate(), request.httprequest.url_root.rstrip("/")
  File "/Users/hemanthbethu/Xaana/enigma/addons/auth_saml/models/auth_saml_provider.py", line 216, in _get_auth_request
    saml_client = self._get_client_for_provider(url_root)
  File "/Users/hemanthbethu/Xaana/enigma/addons/auth_saml/models/auth_saml_provider.py", line 194, in _get_client_for_provider
    spConfig = self._get_config_for_provider(base_url)
  File "/Users/hemanthbethu/Xaana/enigma/addons/auth_saml/models/auth_saml_provider.py", line 186, in _get_config_for_provider
    "key_file": self._get_cert_key_path("sp_pem_private"),
  File "/Users/hemanthbethu/Xaana/enigma/addons/auth_saml/models/auth_saml_provider.py", line 146, in _get_cert_key_path
    keys_path = model_attachment._full_path(keys.store_fname)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/addons/base/models/ir_attachment.py", line 91, in _full_path
    path = re.sub('[.]', '', path)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/re.py", line 194, in sub
    return _compile(pattern, flags).sub(repl, string, count)
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/werkzeug/serving.py", line 306, in run_wsgi
    execute(self.server.app)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/werkzeug/serving.py", line 294, in execute
    application_iter = app(environ, start_response)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/service/server.py", line 476, in app
    return self.app(e, s)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/service/wsgi_server.py", line 112, in application
    return application_unproxied(environ, start_response)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/service/wsgi_server.py", line 87, in application_unproxied
    result = odoo.http.root(environ, start_response)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 1313, in __call__
    return self.dispatch(environ, start_response)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 1279, in __call__
    return self.app(environ, start_wrapped)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/werkzeug/middleware/shared_data.py", line 220, in __call__
    return self.app(environ, start_response)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 1489, in dispatch
    result = ir_http._dispatch()
  File "/Users/hemanthbethu/Xaana/enigma/odoo/addons/base/models/ir_http.py", line 241, in _dispatch
    return cls._handle_exception(e)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/addons/base/models/ir_http.py", line 209, in _handle_exception
    return request._handle_exception(exception)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 748, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "/Users/hemanthbethu/Xaana/enigma/odoo/http.py", line 301, in _handle_exception
    raise exception.with_traceback(None) from new_cause
TypeError: expected string or bytes-like object - - -
 

Ответ №1:

Кажется, что путь к сертификату или ключу не задан. Таким образом, модуль пытается обработать пустую строку и терпит неудачу.

Это может происходить, хотя вы не установили флажок «Подписать», что является ошибкой в версии 3.0, о которой сообщается здесь: https://github.com/OCA/server-auth/issues/315 . в качестве временного обходного пути создайте сертификат и ключ и загрузите их, не нажимая кнопку входа.

Если вы решите использовать флажок «Подписать», вы можете столкнуться с дополнительными проблемами, такими как описано в https://github.com/OCA/server-auth/issues/321 где возникает ошибка в случае, если поставщик удостоверений не подписал утверждение.