页面树结构

版本比较

标识

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

...

注意

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


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

使用说明

扩展包部署

扩展包:Smartbi_Special_ADAuth

...

参数名含义原参数值修改

provider_url

provider_url
provider_url

配置AD域服务器的地址与端口ldap\://ADServer\:389

值说明

  • ADServer为Window域服务器IP地址或服务器名
  • 端口可以是389,636,3268,3269

例如

  • LDAP

provider_url = ldap\://10.10.201.225\:389

  • LDAPS

provider_url = ldaps\://10.10.201.225\:636

注意

使用LDAPS,还需要进行相关的配置

1)需要配置对应的证书,请参考 AD域(LDAP/LDAPS)登录验证(完善中)

2)同时需要配置 security_protocol = ssl ,请参考  AD域(LDAP/LDAPS)登录验证(完善中)

参考

服务协议默认端口用途
LDAPTCP389普通目录查询
LDAPSTCP636加密目录查询
KerberosTCP/UDP88身份认证
DNSTCP/UDP53域名解析
SMBTCP445文件共享、域登录
Global Catalog (LDAP)TCP3268跨域查询
Global Catalog (LDAPS)TCP3269加密跨域查询
AD Web ServicesTCP9389PowerShell管理AD


baseName

baseName
baseName

AD域域名


值说明

  • provider_url配置的端口为389,此处不能为空,值为域名
  • provider_url配置的端口是3628,此处可为空

例如

域名为ADLogin.com,此处值为 DC\=ADLogin,DC\=com

baseName = DC\=ADLogin,DC\=com

域名为hr.corp.example.com,此处值为 DC\=hr,DC\=corp,DC\=example,DC\=com

baseName = DC\=hr,DC\=corp,DC\=example,DC\=com

注意

可以使用 Softerra LDAP Browser 之类的工具查看对应的域名

login_user可以登录到windows域服务器的用户,用于获取用户信息username

值说明

域用户的用户名

例如

login_user = administrator

login_password可以登录windows域服务器的用户的密码,用于获取用户信息password

值说明

域用户的密码

例如

login_password = Smart2025

注意

请写明文密码,产品会自动加密回写

principal_prefix配置用户名前缀MyDomain\\

值说明

通常是域的名称+\\ ,这里域的名称是域名的第一个值

例如

域名为ADLogin.com,此处值为 ADLogin

域名为 smartbi.local,此处值为 smartbi\\

principal_prefix =

 ADLogin

smartbi\\

Image Added

注意

此配置项与principal_suffix只能二选一,不可同时配置,一般情况下只配置principal_prefix即可

参考

 AD域(LDAP/LDAPS)登录验证(完善中)

principal_suffix配置用户名后缀

值说明

通常是@+域的名称,

例如

域名为ADLogin

域名为 smartbi.

com,则此处值为 @ADLogin

local,则此处值为 @smartbi.

com

local

principal_suffix =

 @ADLogin

 @smartbi.

com

local

Image Added

注意

此配置项与principal_prefix只能二选一,不可同时配置,若是配置principal_prefix并排除其他问题后,可考虑改为配置此项,配置此项时,principal_prefix需为空

参考

 AD域(LDAP/LDAPS)登录验证(完善中)

filterPrefix限制AD域查询范围的前缀(&(objectCategory\=Person)(sAMAccountName\=不需要修改
filterSuffix限制AD域查询范围的后缀))不需要修改
initial_context_factoryJAVA通过该工厂类com.sun.jndi.ldap.LdapCtxFactory不需要修改

security_protocol

security_protocol
security_protocol

当使用的是LDAPS时,需要设置

无值

值说明

填写LDAPS对应使用的加密通信方式,当前只支持 SSL。

同时provider_url设置为LDAPS协议头和端口,请参考 AD域(LDAP/LDAPS)登录验证(完善中) 

例如

security_protocol = ssl

注意

无值时,等同于 不使用 ssl 加密通信方式

isDeleteUser

在用户登录时,尝试登录一个AD域没有而Smartbi中有且不在白名单中的用户时,是否要删除该用户

无值

值说明

  • true:在用户登录时,尝试登录一个AD域没有而Smartbi中有且不在白名单中的用户时,会提示登录失败,并删除该用户
  • false:在用户登录时,尝试登录一个AD域没有而Smartbi中有且不在白名单中的用户时,会提示登录失败,会把该用户迁移到 moveDisabledGroup 配置的禁用组中,请参考 AD域(LDAP/LDAPS)登录验证(完善中)

注意

无值时,等同于为 true

moveDisabledGroup

moveDisabledGroup
moveDisabledGroup

用于存放AD域没有而Smartbi中有的用户

注意:当isDeleteUser=false时,这个配置项才会被用上

无值

值说明

填写的是对应的用户组的ID

例如

moveDisabledGroup = DEPARTMENT

注意

无值时,等同于为 DEPARTMENT

white_show_setting是否在【系统选项】中显示【AD账号白名单】选项无值

值说明

  • true:在【系统选项】中显示【AD账号白名单】选项
  • false:在【系统选项】中不显示【AD账号白名单】选项

注意

无值时,等同于为 true

场景

参考 AD域(LDAP/LDAPS)登录验证(完善中)

admin_default_login

admin账号是否可以绕过AD域验证而直接走Smartbi的自身的验证

注意:默认admin不进行AD域验证

无值

值说明

  • true:admin账号可以绕过AD域验证而直接走Smartbi的自身的验证
  • false:非白名单情况下,admin账号不允许通过账号密码方式登录到Smartbi

例如

admin_default_login = true

注意

无值时,等同于为 true

create_user_ad_checkSmartbi中创建用户时,是否在点击“保存”时,使用创建用户的“名称”(即用户名)到AD域中进行校验无值

值说明

  • true:创建用户时进行AD检查。如果这个用户名在AD域中存在,则会创建成功,否则会创建失败并提示“非AD域下用户无法自行创建”。
  • false:创建用户时不进行AD检查

例如

create_user_ad_check = false

注意

无值时,等同于为 false

default_create_user

AD域用户登录时,是否同步该用户到Smartbi中

注意:默认会同步该用户到Smartbi中

无值

值说明

  • true:执行产品默认逻辑,会同步用户
  • false:AD域用户登录时,不同步该用户到Smartbi中。如果Smartbi中没有这个用户,则抛出账号密码错误异常。

例如

default_create_user= true

注意

无值时,等同于为 true

场景

参考 AD域(LDAP/LDAPS)登录验证(完善中)

default_syn_group

AD域用户登录时,是否同步该用户的组到Smartbi中

注意:默认会同步该用户的组到Smartbi中

无值

值说明

  • true:执行产品默认逻辑,会同步用户的组
  • false:AD域用户登录时,不同步该用户的组到Smartbi中

例如

default_syn_group= true

注意

无值时,等同于为 true

...

t_ext_ad_whiteinfo(用于记录白名单的用户)

字段名

类型

说明

c_id

varchar(255)

用户ID

c_type

varchar(255)

类型(用户USER、用户组GROUP、角色ROLE,所有用户EVERYONE)

c_is_descend

varchar(255)

是否应用于子孙组用户(只对用户组生效)

c_extend

longtext

所选节点扩展内容(包含别名等信息)

userPrincipalName 和 sAMAccountName

...

userPrincipalName 和 sAMAccountName 是AD中用于标识用户对象的两种不同属性,区别如下:

  • userPrincipalName 一般遵循电子邮件地址的格式,如user1@domain.com ,提供了一种与用户登录名相似的方式,便于用于以一种直观的方式登录到他们的账户,可以在林中的任何域中唯一标识一个用户,并且不强制要求用户的登录名与其电子邮件地址相同,也不直接关联到特定的NetBIOS域名,适合用于跨多个域的环境,也就是林中唯一。
  • sAMAccountName 采用传统的NetBIOS名称格式,如DOMAIN\user1,一般用于兼容旧版本的Windows操作系统(如Windows NT),这个属性是每个用户账号必须拥有的,并且在同一个域中,必须是唯一的,而且有长度限制为20个字符。缺乏多域的支持,也就是域中唯一。

基于上述知识点,可只principal_prefix 和 principal_suffix 在 ad.properties中只需要配置其中一个即可

  • principal_prefix:适用于 userPrincipalName 的方式登录到域。
  • principal_suffix:适用于 sAMAccountName 的方式登录到域。

可以在域中的用户属性里看到这两个值的情况:

Image Removed

注意

其中的sAMAcountName是当前域内的显示形式,因此不会增加DOMAIN\前缀,但是在JNDI中使用sAMAcountName登录时需要拼接DOMAIN\前缀,这个DOMAIN\可以在域的powersheel中执行命令 (Get-ADDomain).NetBIOSName 来获取。

参考

t_ext_ad_users(用于记录从AD中同步而来的用户)

字段名

类型

说明

c_id

varchar(255)

用户ID

c_name

varchar(255)

用户名

c_alias

varchar(255)

用户别名

c_group

varchar(255)

用户所在组的ID

c_extend

longtext

扩展字段



问题排查

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

...