目前,我有一个 Ruby on Rails 应用程序来维护我的用户,我有一个单独的应用程序 (Pentaho),它使用 Acegi/Spring Security 来验证用户身份。
我已经能够更改 Acegi/Spring Security 对用户进行身份验证的方式,现在它指向我的 Ruby on Rails 应用程序的数据库,并且我可以通过基于表单的登录让用户进行良好的身份验证。
我想知道是否可以将我的用户从我的 Ruby on Rails 应用程序转发到 Pentaho 的 Acegi/Spring Security 并让他们在无需填写登录表单的情况下进行身份验证? (我不打算使用 CAS/SSO)
我做了一些研究,发现你可以使用:
- URL 参数,即 http://www.domain.com/auth?userid=[username]&password=[password]
- 基本身份验证
- 摘要式身份验证
显然,即使通过 HTTPS,使用 URL 参数方法也不安全,因为它传递明文密码(基本身份验证也是如此),因此我的最后一个解决方案是摘要式身份验证。
我如何将用户凭据从 Ruby on Rails Web 应用程序推送到使用 Spring/Acegi 身份验证的 Pentaho,并让用户无需填写表单即可进行身份验证?
我需要对 Spring/Acegi 框架进行哪些更改?我需要在 Ruby on Rails 中创建什么类型的链接或方法才能执行此操作?
如有任何帮助,我们将不胜感激!
最佳答案
用户已经登录的应用程序(服务器端)将用户 ID 传递给其他应用程序,并获得一个短暂的生存 token 作为返回。这是安全的,因为它发生在应用程序之间。然后,用户将被重定向到带有 token 的第二个应用程序。我们通过这种方式实现了两个应用程序之间的 SSO。我很想知道您是否通过其他方式实现了同样的目标。
关于java - Pentaho Acegi 安全框架摘要式身份验证和 Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1297625/