页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

.需求背景

在很多的应用项目中,客户会采用Windows域登录认证平台,要求 Smartbi 也能使用windows域账号密码进行验证,效果如下。

...

特性AD域LDAP协议LDAPS协议
性质目录服务实现访问目录服务的协议LDAP的安全版本
开发者微软开放标准(IETF)开放标准(IETF)
加密支持多种加密方式默认不加密强制SSL/TLS加密
端口多端口(389,636,88,3268,3269,9389等)389636
依赖关系实现LDAP协议AD域使用LDAP作为通信协议是LDAP的安全增强

...

. 使用说明

2.1. 扩展包部署

扩展包:Smartbi_Special_ADAuth

...

3.2 修改"用户管理"配置段中的"加密类型"为CLASS,"登录验证类"为 smartbi请按需填写,具体如下图所示。

  • LDAP:smartbi.usermanager.auth.impl.

...

  • ADAuthentication
  • LDAPS:smartbi.ext.adauth.auth.LDAPSAuthenication

      

4、配置完成后,点击右下角的"保存"按钮,根据提示再重启Smartbi 后,即可使用AD域用户的用户名和密码登录Smartbi。

...

三.注意事项


1.1. 使用ldaps证书配置

当在ad.properties中配置了security_protocol=ssl、在config.jsp中配置了ldaps支持的登录验证类LDAPSAuthenication后,不设置相关证书虎在登录时报错:

不设置证书将会在登录时报错:
如果想正常使用ldaps,还需要进行证书配置,有两种配置方式,如下:

1.1.1. 方式一:获取指定域名的信任库并放置到jdk信任库所在目录下(不推荐)

PS.这种方式没有验证过,因为在获取证书时会存在超时,理论可行

以windows环境为例,这里使用一个.java文件来获取信任库文件,参考附件:

将InstallCert.java下载到任意目录中,javac编译:

然后运行命令java InstallCert + 域名

这个域名就是ad.properties中配置的baseName的普通写法,如baseName=DC=baidu,DC=com则此命令写作java InstallCert baidu.com


然后输入1,然后回车:


然后可以看到当前目录下多了一个文件jssecacerts,将这个文件放置到目录$JAVA_HOME/jre/lib/security下,一般是放置到Smartbi/jdk/jre/ilb/security目录中,然后重启服务器即可。



1.1.2. 方式二:在已经获取到证书文件(.cer或.crt后缀的文件)后,通过命令行将证书导入到Java信任库(推荐)

自行获取到目标服务器的证书文件


先备份Java的信任库cacerts,信任库位置:

$JAVA_HOME/jre/lib/security/cacerts

一般是

Smartbi/jdk/jre/ilb/security/cacerts


然后在上述证书所在的目录下进入cmd,使用keytool命令导入证书到Java的信任库中:

keytool -import -alias baseName -file server.crt -keystore $JAVA_HOME/jre/lib/security/cacerts

如:

keytool -import -alias 域名 -file 上述证书文件(包含后缀) -keystore $JAVA_HOME/jre/lib/security/cacerts

即:

keytool -import -alias baidu.com -file XXX.cer -keystore Smartbi/jdk/jre/lib/security/cacerts

即可实现导入证书,注意名字只能使用域名,不可自定义,否则在登录时会报会报如下错误:


至此证书导入Java信任库完成,即可正常登录。


附:

用这个命令查看已经导入到Java信任库中的证书,看看名字有没有改对

keytool -list -keystore $JAVA_HOME/jre/lib/security/cacerts

移除证书,通过指定别名来移除Java信任库中的证书

Keytool -delete -alias mycert -keystore $JAVA_HOME/jre/lib/security/cacerts

查看信任库中的证书时需要输入密码,默认密码为:changeit






       若是配置后发现不能正常使用,可以通过下面方法来获取错误信息,以便定位到问题原因。

...