页面树结构

版本比较

标识

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

AD域登录验证

在很多的应用项目中,客户会采用Windows域登录认证平台。要求 Smartbi 也要接windows域验证,本文介绍如何在windows域验证。请参考如下操作步骤。

1、获取ad.properties文件:从这里点击下载该文件<

1.说明

       在很多的应用项目中,客户会采用Windows域登录认证平台,要求 Smartbi 也要接windows域验证,效果如下。


面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid

目录


       Image Added

注意

用户组的信息在登录的时候进行同步,根据用户的组信息再自动创建组,这个组是AD域组的信息(另外配置的AD域用户也会自动同步过来)



2.具体操作步骤

       1、获取ad.properties文件:

       从这里点击下载该文件<ad.properties>

2、打开ad

       2、打开ad.properties文件,修改参数。

如果包含中文,则需要将使用将ad

       如果包含中文,则需要将ad.properties重命名为ad_cn.properties,再使用<JDK>\bin\native2ascii.exe ad_cn.properties ad.properties转换中文字符后使用。配置文件中的参数如下:

修改 provider_url参数,将 ldap

参数名含义原参数值修改
 provider_url配置AD域服务器的地址与端口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
    \:3268

    修改ADServer和3268为windows域服务器名及端口,ADServer为Window域服务器IP地址或服务器名,端口可以是389或3628

    注意:当URL中使用的端口号为3268的时候,会获取不到组织相关的属性,若需要获取到这些属性,需要将端口设置为389端口,同时,389端口对应的配置文件baseName属性不能为空。

    login_user配置可以登录到windows域服务器的用户,用于获取用户信息username域用户的用户名
    login_password可以登录windows域服务器的用户的密码,用于获取用户信息password与login_user用户对应的密码
    principal_prefix配置用户名前缀MyDomain\\通常是域的名称+\\ ,这里域的名称是域名的第一个值,例如域名为ADLogin.com,此处值为ADLogin\\
    principal_suffix配置用户名后缀

    通常是@+域的名称,例如域名为ADLogin.com,则此处值为@ADLogin.com

    注意:此配置项与principal_prefix只能二选一,不可同时配置,一般情况下只配置principal_prefix即可,但若是配置principal_prefix并排除其他问题后,可考虑改为配置此项,配置此项时,principal_prefix需为空

    baseName

    AD域域名


    provider_url配置的端口是3628,此处可为空,若配置的端口为389,此处不能为空,值为域名,例如域名为ADLogin.com,则此处的值为DC=ADLogin,DC=com,可以使用使Softerra LDAP Browser之类的工具查看
    filterPrefix限制AD域查询范围的前缀(&(objectCategory\=Person)(sAMAccountName\=不修改
    filterSuffix限制AD域查询范围的后缀))不修改
    initial_context_factoryJAVA通过该工厂类com.sun.jndi.ldap.LdapCtxFactory不修改

           3、启动Smartbi 系统后进入http://localhost:18080/smartbi/vision/config.jsp 配置界面,

    3

           3.1

    上传ad

    配置为ad.

    properties文件,存放在服务器上的位置

    properties存放在服务器上的位置

           Image Modified

    3

           3.2 修改"用户管理"配置段中的"加密类型"为CLASS,"登录验证类"为 smartbi.usermanager.auth.impl.

    ADAuthentication,具体如下图所示。
    Image Removed

    ADAuthentication,具体如下图所示。ADAuthentication类的源码请参考 ADAuthentication.java
           Image Added     

            4

    _GoBack
    _GoBack
    、配置完成后,点击右下角的"保存"按钮,根据提示再重启Smartbi

    后,即可看到效果。

     

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

    1

    后,即可使用AD域用户的用户名和密码登录Smartbi。

    3.注意事项

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

           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

    参数名含义原参数值修改
     provider_url配置AD域服务器的地址与端口ldap\://ADServer\:3268

    修改ADServer和3268为windows域服务器名及端口,ADServer为Window域服务器IP地址或服务器名,端口可以是389或3628

    注意:当URL中使用的端口号为3268的时候,会获取不到组织相关的属性,若需要获取到这些属性,需要将端口设置为389端口,同时,389端口对应的配置文件baseName属性不能为空。

    login_user配置可以登录到windows域服务器的用户,用于获取用户信息username域用户的用户名
    login_password可以登录windows域服务器的用户的密码,用于获取用户信息password与login_user用户对应的密码
    principal_prefix配置用户名前缀MyDomain\\通常是域的名称+\\ ,这里域的名称是域名的第一个值,例如域名为ADLogin.com,此处值为ADLogin\\
    principal_suffix配置用户名后缀

    通常是@+域的名称,例如域名为ADLogin.com,则此处值为@ADLogin.com

    注意:此配置项与principal_prefix只能二选一,不可同时配置,一般情况下只配置principal_prefix即可,但若是配置principal_prefix并排除其他问题后,可考虑改为配置此项,配置此项时,principal_prefix需为空

    baseName

    AD域域名


    若provider_url配置的端口是3628,此处可为空,若配置的端口为389,此处不能为空,值为域名,例如域名为ADLogin.com,则此处的值为DC=ADLogin,DC=com,可以使用使Softerra LDAP Browser之类的工具查看
    filterPrefix限制AD域查询范围的前缀(&(objectCategory\=Person)(sAMAccountName\=不修改
    filterSuffix限制AD域查询范围的后缀))不修改
    initial_context_factoryJAVA通过该工厂类com.sun.jndi.ldap.LdapCtxFactory不修改
    searchuser需要查询的用户administrator根据实际情况修改
    其中域名的获取方法可见下图:
            Image Modified
            
    Image Removed
    Image Added
           2.将修改后的testldap.jsp文件放到smartbi.war/vision/目录中,并重启服务器;
    3
           3.启动服务器后访问附件文件,访问地址为:http://ip:port/smartbi/vision/testldap.jsp(这里ip和port改成访问smartbi时的ip和端口),
       正常的访问截图如下:

       Image Modified

     异常访问的截图:

            异常访问的截图:

       Image Modified

    4

           4.最后根据异常页面中的信息来判断哪里设置有误。