我该如何使用 ldap 查询替换客户端 tnsnames.ora?
我对运行 Oracle LDAP 不感兴趣,我们有现有的 LDAP 基础设施。
我需要:
LDAP 条目格式
如何配置客户端以获取 LDAP 连接信息。这在 OCI 运行时是自动的吗?
如果版本重要,则为 Oracle 10.2 或 11.x。
答案1
Oracle 可以“正式”仅使用 OID 或 AD 作为 LDAP 服务器。在 LDAP.ORA(在 $ORACLE_HOME/network/admin 或 $TNS_ADMIN 中)中输入:
DEFAULT_ADMIN_CONTEXT = “ou=ora,dc=company,dc=com”
DIRECTORY_SERVERS = (ldap1.company.com:389, ldap2.company.com:389)
DIRECTORY_SERVER_TYPE = OID
类型可以是 OID 或 AD。多个服务器是为了冗余;它不会依次尝试每个服务器。然后在 SQLNET.ORA 中:
NAMES.DIRECTORY_PATH=(LDAP, TNSNAMES)
意思是先尝试 LDAP,然后尝试 TNSNAMES.ORA,然后放弃。
如果您想使用第三方 LDAP 服务器,Oracle 有一款名为虚拟目录它将充当它们之间的代理。
答案2
您没有提到您使用哪个 LDAP 平台。我为此使用 OpenLDAP。
基本上,您需要导入一些 oid 模式。然后您需要在cn=OracleContext,dc=company,dc=com
节点下拥有 tns 别名。
我创建了一个 Web 应用程序http://www.tnsadmin.com用于轻松管理 LDAP 条目中的 tnsnames,可与任何 LDAP 服务器一起使用。您还可以在那里找到 OpenLDAP 架构。