将 OpenLDAP 与 IBM Spectrum LSF 集成

2023-12-18 19:04
文章标签 集成 ibm openldap spectrum lsf

本文主要是介绍将 OpenLDAP 与 IBM Spectrum LSF 集成,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IBM Spectrum LSF 是一个工作负载管理平台,提供强大的资源管理功能来优化应用程序性能和最大限度提高资源使用率。 OpenLDAP 是轻量级目录访问协议 (LDAP) 的开放式源代码实现,提供集中式认证和目录服务。

通过遵循本教程中概述的步骤,您可以将 OpenLDAP 与 IBM Spectrum LSF集成,这使您能够使用现有 LDAP 基础结构进行认证,从而使用户能够更安全,更简化地访问 IBM Spectrum LSF。

本教程仅涵盖在 Linux® 系统 (RHEL 7.9 作为主机) 上配置 OpenLDAP 服务器。

设计注意事项

将 OpenLDAP 与 IBM Spectrum LSF 集成涉及修改 LSF 配置文件和 OpenLDAP 服务器配置文件。 此集成的设计注意事项包括:

  1. IBM Spectrum LSF 使用可插入认证模块 (PAM) 框架进行认证。
  2. IBM Spectrum LSF 的 PAM 配置位于 /etc/pam.d/lsf 文件中。
  3. OpenLDAP 使用称为专有名称 (DN) 的分层命名结构来标识目录中的条目。
  4. OpenLDAP 配置文件位于 /etc/openldap/slapd.conf 或 /etc/openldap/slapd.d/中。
  5. 必须将 OpenLDAP 服务器配置为通过安全连接 (LDAPS) 使用 LDAP 协议进行认证。

准备工作

开始之前,请确保查看以下先决条件:

常规先决条件

  1. 已安装并配置 IBM Spectrum LSF V 10.1 或更高版本。
  2. 已安装并配置 OpenLDAP V 2.4 或更高版本。
  3. 可从 IBM Spectrum LSF 集群节点访问 OpenLDAP 服务器。
  4. ldapsearch 命令行工具安装在每个 IBM Spectrum LSF 集群节点上。
  5. pam_ldap 和 nss_ldap LDAP 客户机库安装在每个 IBM Spectrum LSF 集群节点上。

网络先决条件

要成功将 OpenLDAP 与 Spectrum LSF 集群节点集成,必须满足以下网络需求:

  1. ** OpenLDAP 服务器与 Spectrum LSF 集群节点之间的网络连接**: 确保 OpenLDAP 服务器可以通过网络与 Spectrum LSF 集群节点进行通信。 这可以通过在 OpenLDAP 服务器和 Spectrum LSF 集群节点上配置网络设置来实现。
  2. 端口需求: OpenLDAP 服务器和 Spectrum LSF 集群节点必须能够通过特定端口进行通信。 缺省情况下, OpenLDAP 将端口 389 用于未加密通信,将端口 636 用于加密通信。
  3. 防火墙配置: 如果网络中存在防火墙,请确保打开必要的端口以在 OpenLDAP 服务器与 Spectrum LSF 集群节点之间进行通信。
  4. DNS 配置: 确保 Spectrum LSF 集群节点可以解析 OpenLDAP 服务器的主机名或 IP 地址。 如果 DNS 解析不可用,请在每个节点上配置 /etc/hosts 文件以包含 OpenLDAP 服务器的主机名和 IP 地址。

步骤 1: 配置 OpenLDAP 服务器

确保您有权访问具有 root 用户特权的 Linux® 系统。

  1. 通过运行以下命令来安装 OpenLDAP 服务器和客户机软件包:

    yum -y install openldap-servers openldap-clients

  2. 将 DB_CONFIG.example 文件复制到 /var/lib/ldap 目录,并通过运行以下命令将其所有权更改为 ldap 用户:

    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap. /var/lib/ldap/DB_CONFIG

  3. 通过运行以下命令,启动 slapd 服务并使其能够在引导时自动启动:

    systemctl start slapd systemctl enable slapd

  4. 通过运行 slappasswd 命令来生成管理密码。 系统会提示您输入密码。 例如:

    slappasswd

    您会看到类似于以下内容的输出:

    示例输出:

    {SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4
    

    请注意稍后生成的密码散列 (在本例中为 {SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4))。

  5. 创建名为 chrootpw.ldif 的文件,并向其添加以下行:

    dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}FUMV8TZ9lZQxABxCBE5UZ+oU/dlwf/d4

    将 olcRootPW 值替换为您在上一步中生成的密码散列。

  6. 通过运行以下命令来导入基本模式:

    ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

  7. 通过再次运行 slappasswd 命令来生成管理器密码。

    slappasswd

    您会看到类似于以下内容的输出:

    示例输出:

    {SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b
    

    请注意稍后生成的密码散列 (在本例中为 {SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b)。

  8. 通过创建名为 chdomain.ldif 的文件并向其添加以下行,添加管理器密码并启用管理器帐户:

    # DC should be your domain # specify the password generated above for "olcRootPW" section dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=ibmlsf,dc=com" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=ibmlsf,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=ibmlsf,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}TVW9z6WLIBC3EXtFHFWnb2EVlK7EZQ3b dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=ibmlsf,dc=com" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,dc=ibmlsf,dc=com" write by * read 显示更多

    将 {SSHA} 值替换为您在上一步中生成的密码散列。

  9. 通过运行以下命令来应用更改:

    ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

  10. 创建名为 basedomain.ldif 的文件,并向其添加以下行:

dn: dc=ibmlsf,dc=com objectClass: top objectClass: dcObject objectclass: organization o: WES Migration dc: ibmlsf dn: cn=Manager,dc=ibmlsf,dc=com objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=ibmlsf,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=ibmlsf,dc=com objectClass: organizationalUnit ou: Group 

  1. 通过运行以下命令来应用上一步中所做的更改:

ldapadd -x -D cn=Manager,dc=ibmlsf,dc=com -W -f basedomain.ldif

  1. 使用编辑器 (例如 VI) 创建名为 ldapuser.ldif 的文件,并向其添加以下行 (在 "dc=***,dc=***" 部分中替换为您自己的必需域名):

dn: uid=Lsfclusteruser,ou=People,dc=ibmlsf,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Lsfclusteruser sn: Linux userPassword: {SSHA}+A6gC87JU5ugW6qthWL2HGYzsQIdN1EN loginShell: /bin/bash uidNumber: 1003 gidNumber: 1003 homeDirectory: /home/Lsfclusteruser dn: cn=Lsfclusteruser,ou=Group,dc=ibmlsf,dc=com objectClass: posixGroup cn: Lsfclusteruser gidNumber: 1001 memberUid: Lsfclusteruser 

将 {SSHA} 值替换为先前生成的密码散列。

  1. 通过运行以下命令来应用更改:

ldapadd -x -D cn=Manager,dc=ibmlsf,dc=com -W -f ldapuser.ldif

  1. 要验证是否已按先前步骤中提到的那样创建用户,请使用以下命令:

ldapsearch -x -LLL -b "ou=People,dc=ibmlsf,dc=com" "(objectClass=posixAccount)" uid cn

OpenLDAP 服务器现已配置完毕,可供使用。 通过创建更多 LDIF 文件并使用 ldapadd 命令将这些文件导入到目录中,可以添加更多用户和组。

步骤 2: 在 OLDAP 目录中创建用户组

现在已配置 OpenLDAP 服务器,您需要在 OLDAP 目录中创建用户组,该用户组由应该访问 LSF 集群的用户组成。

  1. 要创建组,请使用 ldapadd 命令将组的 LDIF 条目添加到 LDAP 目录。 例如,要创建名为 "LSFAdministrators" 和 "LSF使用者" 的组,可以创建具有以下内容的 LDIF 文件:

    # create an organizational unit for groups dn: ou=groups,dc=ibmlsf,dc=com objectClass: organizationalUnit ou: groups # create a group called "LSFadministrators" dn: cn=LSFadministrators,ou=groups,dc=ibmlsf,dc=com objectClass: top objectClass: posixGroup gidNumber: 1001 cn: LSFadministrators description: LSFadministrators group # create a group called "LSFconsumers" dn: cn=LSFconsumers,ou=groups,dc=ibmlsf,dc=com objectClass: top objectClass: posixGroup gidNumber: 1002 cn: LSFconsumers description: LSFconsumers group 

    在此示例中,第一个条目创建名为 "groups" 的组织单元。 接下来的两个条目将创建名为 "LSFAdministrators" 和 "LSF使用者" 的组。

    每个组条目指定 objectClass "top" 和 "posixGroup" 以定义组的模式。 gidNumber 属性指定组的唯一标识,而 cn 属性指定组的公共名称。 最后, description 属性提供组的简要描述。

  2. 您可以将上一步中的内容保存在具有 .ldif 扩展名的文件 (例如 groups.ldif) 中,然后使用 ldapadd 命令将这些组条目添加到 LDAP 目录中。 请参阅以下 ldapadd 示例命令:

    ldapadd -x -D cn=Manager,dc=ibmlsf,dc=com -W -f groups.ldif [root@oldapserverlsfcl ~]# ldapsearch -x -D cn=Manager,dc=ibmlsf,dc=com -W -b "ou=groups,dc=ibmlsf,dc=com" "(objectClass=posixGroup)" Enter LDAP Password: # extended LDIF # # LDAPv3 # base <ou=groups,dc=ibmlsf,dc=com> with scope subtree # filter: (objectClass=posixGroup) # requesting: ALL # # LSFadministrators, groups, ibmlsf.com dn: cn=LSFadministrators,ou=groups,dc=ibmlsf,dc=com objectClass: top objectClass: posixGroup gidNumber: 1001 cn: LSFadministrators description: LSFadministrators group memberUid: user2lsf memberUid: user1lsf # LSFconsumers, groups, ibmlsf.com dn: cn=LSFconsumers,ou=groups,dc=ibmlsf,dc=com objectClass: top objectClass: posixGroup gidNumber: 1002 cn: LSFconsumers description: LSFconsumers group memberUid: lsfoprt memberUid: lsfsupport # search result search: 2 result: 0 Success 

此输出显示在 ou=groups,dc=ibmlsf,dc=com 组织单元中有两个组条目: LSFadministrators 和 LSFconsumers

稍后,您可以使用 ldapmodify 命令将现有用户添加到这些组。 在先前的 ldapsearch 输出中,两个用户被视为每个组的成员。

步骤 3: 在客户端机器上配置 LDAP 认证

接下来,需要为正在将 RHEL 8 作为操作系统运行的客户端机器配置 LDAP 认证,并将 OLDAP 服务器作为认证提供程序或身份提供者运行。 在这种情况下, OLDAP 客户机是 LSF 集群,因此以下步骤适用于在 RHEL 8 Linux® 机器上运行的 LSF 集群节点。

在以下步骤中,确保将 "dc=***,dc=***" 部分中的域名替换为您自己的域名。

  1. 请运行以下命令:

    yum -y install openldap-clients nss-pam-ldapd

    yum install authselect sssd oddjob oddjob-mkhomedir

    authconfig --enablesssd --enablesssdauth --update

  2. 启用 SSSD 认证概要文件:

    authselect select sssd

  3. 将 LDAP 服务器 URL 和基本搜索 DN 添加到 /etc/openldap/ldap.conf 文件,如以下示例中所示:

    URI ldap://ibmlsf.com/ <or IP address will also work> BASE dc=ibmlsf,dc=com

  4. 在 /etc/sssd 目录中,使用以下内容创建文件 sssd.conf :

    [domain/default] autofs_provider = ldap cache_credentials = True ldap_search_base = dc=ibmlsf,dc=com id_provider = ldap auth_provider = ldap chpass_provider = ldap ldap_uri = ldap://<ip address of the LDAP Server> [sssd] services = nss, pam, autofs domains = default [nss] homedir_substring = /home

    使用基本 DN 更新 ldap_search_base 参数,并使用 LDAP 服务器的 URL 更新 ldap_uri 。

  5. 更改 /etc/sssd/sssd.conf 文件的许可权:

    chmod 600 /etc/sssd/sssd.conf

  6. 重新启动并启用 SSSD:

    systemctl restart sssd systemctl enable sssd

现在,您已将 SSSD 配置为在 RHEL 8 系统上使用 LDAP 服务器 "ibmlsf.com" 进行用户认证。

步骤 4: 配置 LSF 集群

现在,您已配置 LDAP 客户机认证,需要配置在 LDAP 上托管的 LSF 集群以指向 OLDAP 服务器,这将确保 LSF 集群与 OLDAP 服务器的集成可用于用户管理。

  1. 备份现有 lsf.conf 和 lsf.cluster.name 文件:

    cp/etc/lsf.conf /etc/lsf.conf.backup cp/etc/lsf.cluster.name /etc/lsf.cluster.name.backup

  2. 编辑 lsf.conf 文件以添加 LDAP 认证设置:

    AUTHMODE=ldap AUTHLDAPSERVER=<OpenLDAP_server> AUTHLDAPBASEDN=<LDAP_base_DN> AUTHLDAPUSER=<bind_DN> AUTHLDAPPASS=<bind_password> AUTHLDAPUSERTYPE=<user_object_class> AUTHLDAPUSERSEARCH=<user_search_filter> AUTHLDAPGROUP=<group_object_class> AUTHLDAPGROUPSEARCH=<group_search_filter>

    将值替换为您的相关信息。 请参阅下表以获取更多详细信息:

    表 1. LDAP 认证设置
    描述
    <OpenLDAP_server>OpenLDAP 服务器的主机名或 IP 地址
    <LDAP_base_DN>OpenLDAP 目录的基本 DN
    <bind_DN>IBM Spectrum LSF 应该用于绑定到 OpenLDAP 服务器以进行认证的用户的专有名称
    <bind_password>绑定用户的密码
    <user_object_class>OpenLDAP 目录中用户条目的对象类
    <user_search_filter>用户条目的搜索过滤器
    <group_object_class>组条目的对象类
    <group_search_filter>组条目的搜索过滤器
  3. 重新启动以下三个服务,以便您在 lsf.conf 文件中配置的认证设置可以生效:

    bctrld restart sbd all

    bctrld restart res all

    bctrld restart lim all

  4. 编辑 lsf.cluster.name 文件以指定 LDAP 认证域:

    LSF_CLUSTER_NAME=<cluster_name> LSF_LDAP_DOMAIN=<LDAP_authentication_domain

    将 <cluster_name> 替换为 IBM Spectrum LSF 集群的名称,并将 <LDAP_authentication_domain> 替换为 LDAP 认证域的名称。

授予对 LSF 集群的访问权

要向组授予对 LSF 集群的访问权,需要编辑 LSF 配置文件以将该组包含在相应的访问控制表 (ACL) 中。

特定 LDAP 命令行工具和命令可能有所不同。

  1. 以 LSF 管理员身份登录到集群中的任何主机。

  2. 打开 lsb.users (/opt/ibm/lsf/conf/lsbatch/HPCCLUSTER/configdir)。

  3. 编辑 "UserGroup" 部分。 以下示例显示了 lsb.users的 "UserGroup" 部分; 但是,如果您看到另一个 "UserGroup" 部分,那么可以使用此示例中的值 (取自 LSF 集群服务器) 创建新的部分:

    [root@icgen2host-172-19-1-69 configdir]# cat lsb.users # $Revision$Date$ # After editing this file, run "badmin reconfig" to apply your changes. # User groups can be referenced by the lsb.hosts and lsb.queues files. # All the example definitions here are commented out # User group for lsf cluster administration Begin UserGroup GROUP_NAME PRIORITY GROUP_MEMBER GROUP_ADMIN lsfamitadmin 100 (user1lsf user2lsf) (user1lsf) #groupA 200 (user1 user2 user3 user4) (user5) #groupB 100 (groupA user5) (groupA) #groupC 50 (!) () End UserGroup # User group for all LSF administrators Begin UserGroup GROUP_NAME GROUP_MEMBER #USER_SHARES # Key words lsfadmins (lsfadmin ) newlsf (lsfuser123) #ldapusers (ldapuser01 ldapuser02) End UserGroup # Perform the following edit in the lsb.params file located in "/opt/ibm/lsf/conf/lsbatch/HPCCLUSTER/configdir" Define STRICT_UG_CONTROL=Y in lsb.params 

  4. 要启用用户组管理员,请在 GROUP_ADMIN 列中指定用户或用户组,使用空格分隔用户和用户组,并将每个 GROUP_ADMIN 条目括在方括号中。

  5. 保存更改。

  6. 运行 badmin ckconfig 以检查新的用户组定义。 如果报告了任何错误,请修正问题并再次检查配置。

  7. 运行 badmin reconfig 以重新配置集群。

管理 LSF 集群

登录后,可以使用 EGO 命令来管理 LSF 集群,例如 egosh resource, egosh job和 egosh host等 (如以下示例中所示)。

要完成以下步骤,您需要使用具有高特权的 LSF 用户帐户。 只有具有高特权的帐户才能将用户添加到 LSF 集群,然后向其分配角色。 但是,如果为新添加的用户分配了 CLUSTER_Admin 角色,那么该用户还可以为随后添加的用户完成以下步骤。

  1. 要将 OLDAP 服务器中创建的现有用户 "user1lsf" 添加到 LSF 集群,您需要以集群管理员身份登录,然后运行以下命令:

    [root@icgen2host-172-19-1-69 ~]# su Lsfadmin bash-4.4$ egosh user logon -u Admin -x Admin Admin@HPCCluster> user add user account: user1lsf password: password(type again, please): User account < user1lsf > added successfully Admin@HPCCluster>@HPCCluster> user logoff Logged off successfully

  2. 通过运行以下命令,使用上一步中添加的用户登录到 LSF 集群:

    [root@icgen2host-172-19-1-69 ~]# su user1lsf bash-4.4$ egosh user logon -u user1lsf -x welcome@31! Logged on successfully bash-4.4$ egosh user1lsf@HPCCluster> resource list NAME status mem swp tmp ut it pg r1m r15s r15m ls icgen2h* ok 14G 0M 74G 2% 0 0 0.1 0 0 1 icgen2h* ok 15G 0M 75G 0% 20339 0 0 0.3 0 0 user1lsf@HPCCluster> ego info Cluster name : HPCCluster EGO master host name : icgen2host-172-19-1-69 EGO master version : 3.4 user1lsf@HPCCluster> 

  3. 通过运行以下命令向新用户分配角色:

    lsfadmin@HPCCluster> user assignrole -u user1lsf -r CONSUMER_USER Role <Consumer User> is assigned to user <user1lsf>. lsfadmin@HPCCluster> user list ACCOUNT PHONE EMAIL DESCRIPTION ---------------------------------------------------------------- Admin Guest user2lsf user1lsf smith

结论

现在,您已成功将 OpenLDAP 与 IBM Spectrum LSF 集成,以提供集中式认证和目录服务,这使您能够使用现有 LDAP 基础结构进行认证。 您还启用了对 IBM Spectrum LSF的安全且简化的用户访问权。

这篇关于将 OpenLDAP 与 IBM Spectrum LSF 集成的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/509468

相关文章

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

SpringBoot使用注解集成Redis缓存的示例代码

《SpringBoot使用注解集成Redis缓存的示例代码》:本文主要介绍在SpringBoot中使用注解集成Redis缓存的步骤,包括添加依赖、创建相关配置类、需要缓存数据的类(Tes... 目录一、创建 Caching 配置类二、创建需要缓存数据的类三、测试方法Spring Boot 熟悉后,集成一个外

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

【Shiro】Shiro 的学习教程(三)之 SpringBoot 集成 Shiro

目录 1、环境准备2、引入 Shiro3、实现认证、退出3.1、使用死数据实现3.2、引入数据库,添加注册功能后端代码前端代码 3.3、MD5、Salt 的认证流程 4.、实现授权4.1、基于角色授权4.2、基于资源授权 5、引入缓存5.1、EhCache 实现缓存5.2、集成 Redis 实现 Shiro 缓存 1、环境准备 新建一个 SpringBoot 工程,引入依赖:

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

Spring Boot集成Tess4J实现OCR

1.什么是Tess4j? Tesseract是一个开源的光学字符识别(OCR)引擎,它可以将图像中的文字转换为计算机可读的文本。支持多种语言和书面语言,并且可以在命令行中执行。它是一个流行的开源OCR工具,可以在许多不同的操作系统上运行。Tess4J是一个基于Tesseract OCR引擎的Java接口,可以用来识别图像中的文本,说白了,就是封装了它的API,让Java可以直接调用。 Tess