SAML后门解决方案

时间:2018-07-24 16:32:57

标签: django security authentication saml federated-identity

我们有一个基于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.Groupdjango.contrib.sessions.middleware.SessionMiddleware的存在,并且需要重新启动应用程序。

实现这种SAML后门解决方案的可能替代方案是什么?此用例是否有任何标准的行业解决方案?

我们正在考虑几种(微创,主要是配置)可能性,也许有人可以提出更好的建议:

  1. 在客户端IDP上建立一个具有执行管理任务所需的所有必要组的用户。
  2. 将我们自己的IdP组件部署到Portal的SP端点,然后在该IdP上为用户配置必要的特权。该用户执行必要的管理工作。
  3. 指定与客户同意的维护时段,此时可以不使用SAML基础架构重新部署Portal,并且所有管理工作都可以由常规管理员用户执行。
  4. 将必需的Portal功能公开为REST API端点,而无需登录即可访问(而是使用其他一些身份验证机制)

如果在安全审核期间发现此类功能,是否将其视为安全漏洞?

谢谢。

0 个答案:

没有答案