针对 Active Directory 的 Web 应用的 Intranet 企业 SSO

针对 Active Directory 的 Web 应用的 Intranet 企业 SSO

我正在尝试在公司环境中规划和实施 SSO 解决方案,该解决方案为在 CentOS 上运行的内部网 Web 应用程序提供服务:

  • 企业门户(Drupal 后端)
  • 项目管理 (Project.NET)
  • 文档协作系统(Alfresco)
  • 帮助台(Redmine)
  • 问题跟踪(Atlassian Jira)

由于这些应用程序支持开箱即用或通过插件提供,因此可以通过 LDAP 成功实现针对 Active Directory 的身份验证。

鉴于上述所有 Web 应用程序都没有任何稳定的本机 SSO 插件或模块,我倾向于使用 Shibboleth 部署作为身份提供者和 SSO 解决方案。由于我不确定这是否适合给定的情况,我想问以下问题:

  • Shibboleth 是否适合在此方案中充当中介来提供 SSO 登录:

Active Directory <= 域凭据 <=暗语=> 身份 => 应用登录

  • 据我所知,Shibboleth 为应用程序提供的身份验证实际上是通过 Web 服务器配置(Apache、Tomcat 等)实现的。这种类型的身份验证仅提供查看给定页面内容的权限,还是可以与应用程序身份验证完全集成(就像 LDAP 身份验证一样)?
  • 如果上述身份登录确实有效,经过身份验证的用户的应用程序功能仍将有效,就好像用户使用其域凭据正常登录一样?(例如,Redmine 支持在首次域用户登录成功后即时创建帐户)。

答案1

身份提供者 (IdP) 处理针对数据库或 LDAP 服务器的身份验证,并将用户信息传递给应用程序 = 服务提供商 (SP)。

我假设您的意思是使用 Shibboleth 创建者提供的服务提供商实现(称为 shibboleth-sp)与 Shibboleth IdP 对话。

其工作原理是在 Web 服务器配置中指定要保护的资源,并通过 SP 从 IdP 请求的属性来扩充传递给应用程序的参数。所述属性必须由 IdP 发布给请求 SP (attribute-filter.xml),并且必须对应用程序有意义。IdP 不进行访问控制,应用程序必须决定如何解释从 IdP 收到的参数。

因此,您要么拥有一个可以直接与 IdP 对话的应用程序(通过 SAML2,例如 Liferay EE),要么使用 shibboleth-sp 并使用属性将用户映射到应用程序的角色模型。

基本情况类似于使用 HTTP 身份验证,在应用程序中禁用身份验证并使用参数 REMOTE_USER 来识别用户。应用程序可以在其数据存储中检索更多数据。

概述:http://predic8.com/shibboleth-web-services-sso-en.htm

相关内容