Apache Shiro/Active Directory 集成以支持 Grails Web 应用程序中的 SSO

Posted

技术标签:

【中文标题】Apache Shiro/Active Directory 集成以支持 Grails Web 应用程序中的 SSO【英文标题】:Apache Shiro/Active Directory integration to support SSO in a grails web application 【发布时间】:2011-10-28 20:44:44 【问题描述】:

我正在开发一个使用 Apache Shiro 进行身份验证的 grails Web 应用程序。现在,我被要求在此应用程序中实现 SSO 和 Active Directory 集成。由于我是 LDAP/AD 新手,我很难正确实施它。

这就是我所做的,我通过执行某些网站上提到的以下命令生成了一个 ShiroLdapRealm.groovy 文件。

grails create-ldap-realm

然后我在 grails-app/conf/Config.groovy 中为 LDAP 添加了一些配置属性。

ldap.server.url = "ldap://localhost:10389"
ldap.search.base = "ou=users,ou=system"
ldap.search.user = "uid=admin,ou=system"
ldap.search.pass = "secret"
ldap.username.attribute = "uid"
ldap.skip.authentication = false
ldap.skip.credentialsCheck = false
ldap.allowEmptyPasswords = false

但现在我不确定如何在我的应用程序中获取当前登录的 windows 用户并提供一个 UsernamePasswordToken 来针对这个生成的 ShiroLdapRealm 进行身份验证。我只是想为用户来自 Windows Active Directory 的 shiro 提供 SSO 体验。我找不到任何好的文档。

此外,我对是否使用某些帖子中提到的 ShiroLdapRealm 或 ActiveDirectoryRealm 感到困惑。这两者之间可能有什么区别?什么时候用哪个?

谁能帮我解决这个问题。

提前致谢。

阿山

【问题讨论】:

【参考方案1】:

不幸的是,您的方法毫无用处。这不会给您带来任何单点登录。您必须编写一个 KerberosRealm 来处理来自客户端的票证。这将为您提供完整的 SSO。

【讨论】:

以上是关于Apache Shiro/Active Directory 集成以支持 Grails Web 应用程序中的 SSO的主要内容,如果未能解决你的问题,请参考以下文章

apache用户认证

82.配置apache和PHP

apache2 限制访问空文件展示目录

Apache配置虚拟目录+Zend Studio访问

apache + redmine 403 - 前提很好

Apache虚拟机vhost.conf详细配置