如何将登录模块与AEM 6.0中以RESTful API形式公开的外部用户系统集成



我正在研究如何集成或自定义登录模块,以便与作为RESTful API公开的外部用户系统一起工作。

我看到了AuthenticationHandler接口,但它似乎只从用户请求中提取凭据。然后构建AuthenticationInfo对象并发送给CRX登录模块进行身份验证&批准我在这一点上坚持了下来。

有人知道AEM 6.0中这个问题的解决方案吗?

谢谢你的帮助。

您可能想要创建一个自定义ExternalIdentityProvider,而不是一个自定义AuthenticationHandler。一旦您创建并安装了自己的身份提供商捆绑包,AEM将为所有登录请求考虑使用它。本质上,AEM将对所有注册的身份提供商调用"authenticate"方法(根据其JAAS排名顺序),如果任何模块成功登录,它将认为该用户已通过身份验证。您也不必担心创建JCR用户记录,因为默认的同步处理程序会自动为您处理这些问题。

您所需要做的就是创建一个实现ExternalIdentityProvider的新服务类,并实现getName和authenticate方法。据我所知,其他方法在正常登录场景中没有使用。您还需要配置"Apache Jackrabbit Oak外部登录模块",以便它知道您的身份提供商的名称以及JAAS排名。

有关外部登录模块的更多详细信息,请访问此处:http://jackrabbit.apache.org/oak/docs/security/authentication/externalloginmodule.html

通过查看GitHub中的oak-auth-ldap模块,您还可以找到如何实现自定义外部登录模块的工作示例:https://github.com/apache/jackrabbit-oak

如果您正在寻找自定义身份验证模块,您可以在http://www.wemblog.com/2013/03/how-to-create-custom-authentication.html?m=1

最新更新