从OBIEE 10g开始,我这里的项目就一直使用AD认证密码+数据库存放权限来控制。
- 10g使用init_block实现
- 11g使用了base ldap + sql provider
到12c,看了一下文档,感觉除了sql provider的 jar包名字变了,其他没什么区别,就信心满满的开始做了,没想到花费了几周在处理2个问题:
- 增加了ldap认证后,Admin Server起不来。
- AD用户登录很慢
先说下正确流程,大家照着做就可以了:
按Oracle的标准文档
或http://www.redstk.com/welcome-to-obiee12c-configuring-external-ldap-authentication-part-1/
问题一:base ldap + DefaultAuthenticator冲突
首先查日志:
nodemanager日志 $MW_HOME/user_projects/domains/bi/nodemanager/nodemanager.log)没问题
AdminServer( $MW_HOME/user_projects/domains/bi/servers/AdminServer/logs) 有这个错误
oracle.security.jps.JpsException: JPS-02597: You configured a custom Authentication Provider or WLS generic LDAPAuthenticator, which the libOvd can not recognize. Supply the idstore.type property in jps-config.xml file, or use a specific WLS LDAP Authentication provider that matches your LDAP server instead of a generic one.
看(Doc ID 2080482.1 emctl start oms Fails and EMGC_OMS1.out file Reports 'JPS-02597: You configured a custom Authentication Provider or WLS generic LDAPAuthenticator' (Doc ID 2080482.1) To BottomTo Bottom ) 要使用AD而不是base ldap。
期间我怀疑过provider顺序、 Control Flag等一系列问题,但是都不解决,还好配置文件都有备份。
$MW_HOME/user_projects/domains/bi/config/fmwconfig/jps-config.xml
$MW_HOME/user_projects/domains/bi/config/fmwconfig/ovd/default/adapters.os_xml
问题二:AD用户登录慢的问题
由于我是从11g migration过来,我首先怀疑了3个可能,
1.init block变量太多了
2.由于OBIEE 12.2.1.2的web group没有了,我怀疑是role的层级问题
3.GUID的事或者个人文件夹有问题
最后最后把这些都删掉了,把GUID也同步了,还是login慢,最后按文档调整的cache才好一点,看来只有这样解决了。
2019-10-12更新
是ad group搜索的问题,由于组合用户的关系在数据库里,AD只是做密码验证,在ADAuthenticator限制
Group Search Scope: onelevel
Group Membership Searching: limited
Max Group Membership Search Level: 1
备份问题:
由于OBIEE 12c application role不在那些backup文件里,备份不能从console走了。
具体的备份命令如下,包括role、user、rpd、catalog......
cd $$MW_HOMEoracle_common/common/bin/
./wlst.sh
importServiceInstance('/home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/bi08021','ssi','/home/oracle/exportDir/20170915_154532/ssi.bar')
exportServiceInstance('/home/oracle/Oracle/Middleware/Oracle_Home/user_projects/domains/bi08021', 'ssi', '/home/oracle/workDir', '/home/oracle/exportDir/', applicationName=None, applicationDesc=None, applicationVersion=None, includeCatalogRuntimeInfo=false, includeCredentials=None)
这是Jython的控制台,记住要exit()退出。
最近又作了一些相关探索,具体见这个连接