AD域登录验证
在很多的应用项目中,客户会采用Windows域登录认证平台。要求 Smartbi 也要接windows域验证,本文介绍如何在windows域验证。请参考如下操作步骤。
1、用 WinRAR 之类的压缩工具,打开 smartbi.war ,将smartbi.war\WEB-INF \ ad.properties 文件从 WinRAR 窗口中拖出来,对其进行修改。接着将修改后的文件,拖放回 WinRAR 窗口中,覆盖以前的旧文件。关闭 WinRAR 窗口保存修改即可。
2、打开ad.properties文件,修改参数,具体如下:
- 修改 provider_url参数,将 ldap://ADServer:3268 修改window域服务器名及端口。
- 修改login_user参数,将 username可以登录windows域服务器的用户,用于获取用户信息。
- 修改 login_password 参数,将 password可以登录windows域服务器的用户的密码(即login_user对应的密码),用于获取用户信息。
- 修改principal_prefix 参数,设置用户名前缀,通常是域的名称+\\
- 如果有必要则修改base 参数,格式一般为ou=people,dc=example,dc=com类似这样的格式,默认为空白
3、启动Smartbi 系统后进入http://localhost:18080/smartbi/vision/config.jsp 配置界面,修改"用户管理"配置段中的"加密类型"为CLASS,"登录验证类"为 smartbi.usermanager.auth.impl.ADAuthentication,具体如下图所示。
4 、配置完成后,点击右下角的"保存"按钮,根据提示再重启Smartbi 后,即可看到效果。
注:若是配置后发现不能正常使用,可以通过下面方法来获取错误信息,以便定位到问题原因。
1.下载testldap.jsp文件,并根据实际情况进行下面修改:
String initialContextFactory = "com.sun.jndi.ldap.LdapCtxFactory";
String providerUrl = "ldap://192.168.1.91:3268";//域服务器地址
String prefix = "smartbi\\";//域名,如图
String userName = "administrator";//用户名
String password = "manager";//用户密码
String baseName = ""; //base名称,格式为ou=people,dc=example,dc=com,默认情况下不需要填写,空白就可以,可以使用使用Softerra LDAP Browser之类的工具查看
String filterPrefix = "(&(objectCategory=Person)(sAMAccountName=";
String filterSuffix = "))";
String searchuser = "administrator"; //需要查询的用户
其中域名的获取方法可见下图:
2.将修改后的testldap.jsp文件放到smartbi.war/vision/目录中,并重启服务器;
3.启动服务器后访问附件文件,访问地址为:http://ip:port/smartbi/vision/testldap.jsp(这里ip和port改成访问smartbi时的ip和端口),
正常的访问截图如下:
异常访问的截图:
4.最后根据异常页面中的信息来判断哪里设置有误。