我们有一个基于Django的Web门户,可通过 SAML SSO 执行用户身份验证和授权。该门户网站充当我们客户的SP(SAML术语中的服务提供者),并允许将其用户标识联合到我们的应用程序中。
但是,我们组织中的某些管理用户还希望能够以与客户端无关的管理用户身份访问门户网站,以执行各种管理/维护任务。如果需要在客户端的IdP中配置我们自己的用户,则期望从客户端进行回退。
当前,SSO流被实现为单独的定制Django后端,它利用python-saml库进行身份验证,并覆盖了django.contrib.auth
身份验证机制,并将SAML消息中提供的组的专有映射映射到Django的{{ 1}}和django.contrib.auth.models.User
。
依次,默认的Django管理应用程序流程(也存在但略有定制以驻留在单独的Django应用程序中)依赖于django.contrib.auth.models.Group
和django.contrib.sessions.middleware.SessionMiddleware
的存在,并且需要重新启动应用程序。
实现这种SAML后门解决方案的可能替代方案是什么?此用例是否有任何标准的行业解决方案?
我们正在考虑几种(微创,主要是配置)可能性,也许有人可以提出更好的建议:
如果在安全审核期间发现此类功能,是否将其视为安全漏洞?
谢谢。