设置 freeIPA 来处理 Oracle 数据库名称解析

设置 freeIPA 来处理 Oracle 数据库名称解析

我正在尝试设置 freeIPA 来处理 Oracle 数据库名称解析。我已按照此 OpenLDAP 教程进行操作http://www.idevelopment.info/data/Oracle/DBA_tips/LDAP/LDAP_8.shtml 已针对 freeIPA 更正了模式定义文件并能顺利加载。

ipa-ldap-updater --schema-file /usr/share/ipa/85oidbase.ldif
ipa-ldap-updater --schema-file /usr/share/ipa/86oidnet.ldif
ipa-ldap-updater --schema-file /usr/share/ipa/87oidrdbms.ldif

在 freeIPA 3.3.5 上一切正常,但我无法对 freeIPA > 4 进行任何名称解析

传输控制:

C:\>tnsping DB1.EXAMPLE.COM

TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 07-JUL-2015 08:27:41

Copyright (c) 1997, 2010, Oracle.  All rights reserved.

Used parameter files:
C:\Oracle\product\11.2.0\client_3\network\admin\sqlnet.ora

TNS-03505: Failed to resolve name

freeIPA 访问日志

[03/Jul/2015:15:10:12 +0200] conn=125 fd=86 slot=86 connection from 192.168.1.10 to 192.168.1.3
[03/Jul/2015:15:10:12 +0200] conn=125 op=0 BIND dn="" method=128 version=3
[03/Jul/2015:15:10:12 +0200] conn=125 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn=""
[03/Jul/2015:15:10:12 +0200] conn=125 op=1 SRCH base="cn=DB1,cn=OracleContext,dc=example,dc=com" scope=0 filter="(objectClass=*)" attrs="objectClass orclNetDescString orclNetDescName orclVersion"
[03/Jul/2015:15:10:12 +0200] conn=125 op=1 RESULT err=0 tag=101 nentries=0 etime=0
[03/Jul/2015:15:10:12 +0200] conn=125 op=2 UNBIND
[03/Jul/2015:15:10:12 +0200] conn=125 op=2 fd=86 closed - U1
[03/Jul/2015:15:10:31 +0200] conn=9 op=30 SRCH base="ou=sessions,ou=Security Domain,o=ipaca" scope=2 filter="(objectClass=securityDomainSessionEntry)" attrs="cn"
[03/Jul/2015:15:10:31 +0200] conn=9 op=30 RESULT err=32 tag=101 nentries=0 etime=0

有人能告诉我该看哪里吗?版本 4 有什么变化?我需要添加一些权限属性吗?

#ipa permission_add oracle --right={read,search,compare} --bindtype=anonymous --subtree='cn=OracleContext,dc=example,dc=com' --filter='(objectclass=*)'

#ipa permission-show oracle
  Permission name: oracle
  Granted rights: read, search, compare
  Bind rule type: anonymous
  Subtree: cn=OracleContext,dc=example,dc=com
  Extra target filter: (objectclass=*)



#ldapsearch -h 192.168.1.3 -x -D "cn=Directory Manager" -b "cn=OracleContext,dc=example,dc=com" "objectclass=*" -w secret
# extended LDIF
#
# LDAPv3
# base <cn=OracleContext,dc=example,dc=com> with scope subtree
# filter: objectclass=*
# requesting: ALL
#

# OracleContext, example.com
dn: cn=OracleContext,dc=example,dc=com
objectClass: orclContext
objectClass: top
cn: OracleContext

# db1, OracleContext, example.com
dn: cn=db1,cn=OracleContext,dc=example,dc=com
objectClass: top
objectClass: orclNetService
cn: db1
orclNetDescString: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbnode1.example.com)(PO
 RT=1521))(CONNECT_DATA=(SERVICE_NAME=DB1.EXAMPLE.COM)))

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

访问日志中仍然有相同的输出,并且没有解决方案。

答案1

看起来您正在进行匿名绑定。在 FreeIPA 4.x 中,访问控制已完全重写,并且默认不允许匿名绑定查看大部分内容。

假设您要添加新属性和对象类,那么配置对它们的访问权限可能也很有意义。请参阅ipa permissionipa privilegeipa role以获取有关要使用哪些命令的详细信息。

您可以从授予匿名绑定访问权限的权限开始cn=OracleContext

$ ipa permission-add 'read oracle context' --subtree=cn=OracleContext,dc=example,dc=com --bindtype=anonymous --rights={read,search,compare}

请注意,我正在使用 shell 括号扩展来允许--rights简洁地编写选项。

相关内容