我在Linux上运行的应用程序需要通过最终用户的身份访问数据库。目前,用户通过在表单中输入他们的电子邮件地址和密码来登录应用程序。电子邮件地址和密码将根据LDAP进行验证。从LDAP检索用户的组成员资格,并用于在我的应用程序中设置安全组和角色。我缓存密码,并可以根据需要使用它代表该用户连接到数据库。这是有效的,因为通过SSO集成,使用LDAP的密码也可以与数据库一起使用。
客户希望转向SAML身份验证。问题是我的应用程序永远不会获得密码,所以我永远不会有机会将其缓存以供以后使用。我需要一种代表该用户对数据库进行身份验证的方法。
一种可能性是SAML提供程序可以传回Kerberos令牌。然后,我可以使用该Kerberos身份代表用户对数据库进行身份验证。
客户正在使用Tivoli Federated Identity Manager 6.2.2 for SAML和Active Directory提供LDAP / Kerberos。我的应用程序是用JRuby(JVM上的Ruby)编写的,所以我的Kerberos身份验证将使用Java的工具,我的数据库连接将使用JDBC。