前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >连接LDAP服务器用户,使用 LDAP 服务器进行连接

连接LDAP服务器用户,使用 LDAP 服务器进行连接

作者头像
全栈程序员站长
发布2022-08-28 11:28:16
4.9K0
发布2022-08-28 11:28:16
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

使用 LDAP 服务器进行连接

如果使用的是 Windows(Windows Mobile 除外)或 Unix 平台,则可以指定一个中央 LDAP 服务器来跟踪企业中的所有数据库服务器。如果数据库服务器在 LDAP 服务器中自行注册,客户端便可以查询 LDAP 服务器,找到其要查找的数据库服务器,无论这些服务器是在

WAN、LAN 上还是位于防火墙的后面。客户端不需要指定 IP 地址 (HOST=)。服务器枚举实用程序 (dblocate) 也可以使用 LDAP 服务器来查找其它同类服务器。

LDAP 仅与 TCP/IP 一起使用,且仅在网络数据库服务器上使用。

在 AIX 上配合使用 SQL Anywhere 与 LDAP 服务器

要配合使用 SQL Anywhere 11 与 AIX 6,必须在 /usr/lib 中创建链接,或者确保具有 LDAP 库的目录包括在 LIBPATH 中,以确保能够找到 LDAP 系统库。

♦ 在 /usr/lib 中创建链接

以 root 用户身份运行以下命令:

cd /usr/lib

ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a

ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a

♦ 将包含 LDAP 库的目录添加到 LIBPATH

以 root 用户身份运行以下命令,在 /usr/lib 下创建链接:

cd /usr/lib

ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a

ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a

确保具有 LDAP 库的目录位于 LIBPATH 中。

例如,对于 64 位库:

export LIBPATH=/opt/IBM/ldap/V6.1/lib64:$LIBPATH

例如,对于 32 位库:

export LIBPATH=/opt/IBM/ldap/V6.1/lib:$LIBPATH

配置 saldap.ini 文件

要启用此功能,必须在数据库服务器计算机和每台客户端计算机上都创建一个文件,其中包含有关如何查找和连接到 LDAP 服务器的信息。此文件的缺省名称是 saldap.ini,但可以对其进行配置。如果此文件不存在,将以静默方式禁用 LDAP 支持。

如果未使用 LDAP 参数指定完整路径,则该文件必须位于放置 SQL Anywhere 可执行文件的目录(例如,如果使用的是 Windows,则是 install-dir\bin32)中。该文件必须采用以下格式:

[LDAP]

server=computer-running-LDAP-server

port=port-number-of-LDAP-server

basedn=Base-DN

authdn=Authentication-DN

password=password-for-authdn

search_timeout=age-of-timestamps-to-be-ignored

update_timeout=frequency-of-timestamp-updates

read_authdn=read-only-authentication-domain-name

read_password=password-for-authdn

可以使用文件隐藏实用程序 (dbfhide) 来进行简单加密,以对 saldap.ini 文件的内容进行模糊处理。请参见文件隐藏实用程序 (dbfhide)。

如果该文件的名称不是 ldap.ini,则必须使用 LDAP 参数指定文件名。

server 运行 LDAP 服务器的计算机的名称或 IP 地址。在 Unix 上,此值是必需的。在 Windows 上,如果缺少此条目,Windows 会查找在本地域控制器上运行的 LDAP 服务器。

port LDAP 服务器使用的端口号。缺省值为 389。

basedn 存储 SQL Anywhere 条目的子树的域名。此值缺省为树的根。

authdn 验证域名。该域名必须是 LDAP 目录中对 basedn 拥有写权限的一个现有用户对象。对于数据库服务器,此参数是必需的,但在客户端上将被忽略。

password authdn 的口令。对于数据库服务器,此参数是必需的,但在客户端上将被忽略。

search_timeout 时间戳的有效期限,到期时客户端和/或服务器枚举实用程序 (dblocate) 将忽略时间戳。值 0 将禁用此选项,此时将假定所有条目都处于最新状态。缺省值为 600 秒(10 分钟)。

update_timeout LDAP 目录中更新时间戳的周期。值为 0 时将禁用此选项,这样数据库服务器就永远不会更新时间戳。缺省值为 120 秒(2 分钟)。

read_authdn 只读验证域名。该域名必须是 LDAP 目录中对 basedn 拥有读权限的一个现有用户对象。只有在 LDAP 服务器要求进行非匿名绑定才能执行搜索时,此参数才是必需的。例如,如果将 Active Directory 用作 LDAP 服务器,则此字段通常是必填字段。如果缺少此参数,绑定将是匿名的。

read_password authdn 的口令。仅当指定了 read_authdn 参数时,此参数在客户端上才是必需的。

示例

以下是一个示例 saldap.ini 文件:

[LDAP]

server=ldapserver

basedn=dc=iAnywhere,dc=com

authdn=cn=SAServer,ou=iAnywhereASA,dc=iAnywhere,dc=com

password=secret

条目存储在名为 iAnywhereASA 的 basedn 的一个子树中。必须先创建此条目,SQL Anywhere 才能使用 LDAP。若要创建子树,可以使用 LDAPADD 实用程序,提供以下信息:

dn: ou=iAnywhereASA,basedn

objectClass: organizationalUnit

objectClass: top

ou: iAnywhereASA

服务器启动时会检查 LDAP 文件中是否已经存在同名条目。如果找到同名条目且满足以下条件之一,则会替换该同名条目:LDAP 中的位置条目与尝试启动的数据库服务器相符;LDAP 条目中的时间戳字段已超过 10 分钟的有效期限(该超时值是可配置的)。

如果这两个条目都不满足,则表明与尝试启动的数据库服务器同名的另一个数据库服务器正在运行,启动将会失败。

为确保 LDAP 中的条目是最新的,数据库服务器会每 2 分钟更新一次 LDAP 条目中的时间戳字段。如果一个条目的时间戳超过 10 分钟,客户端将忽略该 LDAP 条目。这两项设置都是可配置的。

在客户端上,将会先搜索 LDAP 目录,再进行任何广播,这样一来,如果找到了数据库服务器,就不会发送广播。LDAP 搜索的速度很快,因此失败时不会造成明显的延迟。

服务器枚举实用程序 (dblocate) 也使用 LDAP—LDAP 中列出的所有数据库服务器都将添加到返回的数据库服务器列表中。这使服务器枚举实用程序 (dblocate) 可以列出通常不会返回的数据库服务器,例如,那些广播无法到达的服务器。时间戳超过

10 分钟有效期限的条目不包括在内。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146342.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档