2.1 安装 OpenText Identity Console CE 24.4 (v1.9)

2.1.1 安装独立 OpenText Identity Console(非 Docker)

您可以通过以下方式之一安装 OpenText Identity Console:

注:为确保正常运行,建议您在同一台计算机上安装 OpenText Identity Console 和 OpenText eDirectory,该计算机必须至少有一个 OpenText eDirectory 实例可用。

执行交互式安装

本节介绍如何使用交互式安装方法安装独立的 OpenText Identity Console。

  1. 登录到 Software License and Download 门户,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:OpenText eDirectory

    • 产品名称:OpenText eDirectory per User Sub SW E-LTU

    • 版本:9.2、9.3

  3. 下载并解压缩 OpenText Identity Console 的最新版本。

  4. 导航到解压缩 OpenText Identity Console build > IdentityConsole_<version>_Linux 的目录。

  5. 以 root user 或 root 等效用户的身份登录时运行以下命令:

    ./identityconsole_install
  6. 阅读“简介”内容,然后单击 Enter。

  7. 输入“y”接受许可协议。这将在系统上安装所有所需的 RPM。

  8. 输入 Identity Console 服务器的主机名(完全限定的域名 (FQDN))/IP 地址。例如:10.10.33.100

    如果在未指定 IP 地址的情况下按 Enter 键,则默认情况下使用系统的 IP 地址/主机名。

  9. 输入要侦听的 Identity Console 端口号。默认值为 9000。

  10. 指定要连接的 eDirectory 主机。您可以提供 IP 地址或域名。例如:localhost:636,xx.xx.xx:636 或 edir.domain.com:636

  11. (视情况而定)根据您的要求选择以下选项之一:

    • 如果不想将 OSP 与 OpenText Identity Console 集成,请选择“n”并继续 步骤 12。

    • 如果要将 OSP 与 OpenText Identity Console 集成,请选择“y”并为以下步骤提供输入:

      1. 输入 eDirectory/身份库服务器的域名/IP 地址以及 LDAPS 端口号。

        例如:

        192.168.1.1:636

      2. 输入 eDirectory/身份库用户名。

        示例:

        cn=admin,ou=org_unit,o=org

      3. 输入 eDirectory/身份库口令。

      4. 再次输入 eDirectory/身份库口令以确认口令。

      5. 输入 OSP 服务器域名/IP 地址以及 SSO 服务器 SSL 端口号。

      6. 输入 OSP 客户端 ID 和 OSP 客户端密码。

      7. 输入 eDirectory/身份库目录树名称。

  12. (视情况而定)根据您的要求选择以下选项之一:。

    • 如果要自动获取 CA 证书,请选择自动获取为 y。

    • 如果不想自动获取 CA 证书,请选择自动获取为 n。

  13. (视情况而定)根据您的要求选择以下选项之一:

    • 如果要从服务器导入 CA 证书,请输入 y 并按 Enter。

      CA 证书成功复制到 /etc/opt/novell/eDirapi/cert.中。

      如果要手动获取或添加 CA 证书,请参阅 生成 CA 证书

    • 如果不想从服务器导入 CA 证书,请输入 n 并按 Enter键。

    • 如果输入“q”,则安装终止。

  14. (视情况而定)选择以下选项之一生成服务器证书:

    • 如果要生成服务器证书,请输入“y”并按 Enter 键。为以下步骤提供输入:

      1. 输入 eDirectory 用户名。例如:cn=admin,o=novell。

      2. 输入 eDirectory 用户口令。

      3. 重新输入 eDirectory 用户口令。

      4. 输入服务器证书名称。

        示例:servercert

      5. 输入服务器证书口令。

        示例:password@123

      6. 重新输入服务器证书口令。

        示例:password@123

    • 如果已拥有要使用的服务器证书,请输入“n”并按 Enter 键。为以下步骤提供输入:

      1. 手动指定服务器证书目录路径的位置。

        例如,/home/cert/keys.pfx

      2. 输入服务器证书口令。

      3. 重新输入服务器证书口令。

注:

  • /var/opt/novell/eDirAPI/log 目录中将有下列日志文件:

    • Edirapi.log - 此文件记录 edirapi 事件和调试问题。

    • edirapi_audit.log - 此文件记录 edirapi 审计事件。日志遵循 CEF 审计格式。

    • identityconsole_install.log - 此文件记录 OpenText Identity Console 事件。

  • 您可以在 /var/log/messages 文件中查看 OpenText Identity Console 启动和停止操作的日志。

  • 如果安装失败,请使用以下命令重新配置:

    /usr/bin/identityconsoleConfigure

用于生成证书的实用程序

您可以使用以下工具或实用程序为其他树获取 CA 证书和服务器证书。

注:CA 和服务器证书的脚本位于 opt/novell/eDirapi/sbin 路径中。

生成 CA 证书

  1. 下载并解压缩 OpenText Identity Console 的最新版本。

  2. 导航到目录 /opt/novell/eDirapi/sbin 以获取、删除或查看 CA 证书列表。

  3. 以 root user 或 root 等效用户的身份登录时运行以下命令:

    ./get_cacert fetch <ip address/DNS:ldaps port>

    例如:

    ./get_cacert fetch 10.10.10.10:636
  4. 如果要在 cert 文件夹中手动添加 CA 证书,请导航至 /etc/opt/novell/eDirapi/cert 复制并粘贴 CA 证书。

    <IP address/DNS_ldaps port.pem>

    例如:

    10.10.10.10_636.pem

生成服务器证书

  1. 下载并解压缩 OpenText Identity Console 的最新版本。

  2. 导航至目录以获取、删除或查看 CA 证书列表> /opt/novell/eDirapi/sbin

  3. 以 root user 或 root 等效用户的身份登录时运行以下命令:

    ./get_servercert <eDirectory IP address with LDAPS port number> <eDirectory/Identity Vault username> <userpassword> <server certificate name> <server certificate password>

    示例:

    ./get_servercert 10.10.10.10:636 cn=admin,ou=org_unit,o=org password keys password 

以无提示模式安装

无提示安装使您能够在无需任何交互式输入的情况下安装 OpenText Identity Console。要使用此方法,必须定义用于在 silent_properties 文件中安装 OpenText Identity Console 的选项,然后从命令行运行安装过程。修改属性文件后,系统将使用此文件中的信息以无提示方式完成安装。

在开始无提示安装之前,请确保满足所有前提条件。

要编辑无提示属性文件,请执行以下操作:

  1. 在解压缩 OpenText Identity Console 版本的位置,导航到 IdentityConsole_OpenText_Linux 目录。

  2. 打开 sil_properties 文件并根据需要修改数值:

    • 如果 auto fetch 为 Yes,

      1. 在 silent_properties 文件中输入下列细节:

        export AUTOGENERATE_CACERT="Yes" export AUTOGENERATE_SERVERCERT="Yes" export EDIR_HOST="" export IDC_IP="" export IDC_PORT="9000" export OSP_CLIENT_ID="identityconsole" export OSP_CLIENT_PASSWD="novell" export OSP_IP="" export OSP_MODE="No" export AUTO_FETCH="Yes" export SERVERCERT_NAME="cert" export SERVERCERT_PASSWORD="novell" export SERVERCERT_USERNAME="cn=admin,o=novell" export SERVERCERT_USER_PASSWORD="novell" export TREENAME="my_tree" export VAULT_IP="" export VAULT_USERNAME="cn=admin,o=novell" export VAULT_PASSWD="novell"
        
      2. 运行以下命令以无提示模式安装:

        ./identityconsole_install -s silent_properties
    • 如果 auto fetch 为 No,

      1. 在 silent_properties 文件中输入下列细节:

        export AUTOGENERATE_CACERT="No" export AUTOGENERATE_SERVERCERT="No" export EDIR_HOST="" export IDC_IP="" export IDC_PORT="9000" export OSP_CLIENT_ID="identityconsole" export OSP_CLIENT_PASSWD="novell" export OSP_IP="" export OSP_MODE="No" export AUTO_FETCH="No" export SERVERCERT_LOCATION="/etc/opt/novell/eDirAPI/cert/SSCert.pem" export SERVERCERT_NAME="cert" export SERVERCERT_PASSWORD="novell" export SERVERCERT_USERNAME="cn=admin,o=novell" export SERVERCERT_USER_PASSWORD="novell" export TREENAME="my_tree" export VAULT_IP="" export VAULT_USERNAME="cn=admin,o=novell" export VAULT_PASSWD="novell"
        
      2. 将 CA 证书手动复制到 /etc/opt/novell/eDirAPI/cert/ 文件夹。

      3. 运行以下命令安装 rpm:

        ./identityconsole_rpm_install
      4. 安装 rpm 后,运行以下命令以无提示模式运行下列命令:

        ./identityconsoleConfigure -s silent_properties

您可以在 Identity Console 安装 > identityconsole_install.log 文件中找到与安装相关的日志。

具有独立 OpenText Identity Console 的多树

如果要在禁用自动提取功能时将 OpenText Identity Console 与多个 OpenText eDirectory 树连接,必须将所有 OpenText eDirectory 树中的 CA 证书复制到 /etc/opt/novell/eDirapi/cert/ 目录中。

按如下方式复制 CA 证书:

cp /home/user/<ip address1_ldap port.pem> /etc/opt/novell/eDirAPI/cert/<ip address1_ldap port.pem>
cp /home/user/<ip address2_ldap port.pem> /etc/opt/novell/eDirAPI/cert/<ip address2_ldap port.pem>

如果要使用 get_cacert 实用程序获取 CA 证书,请参阅 生成 CA 证书部分。

运行以下命令之一以重启动 OpenText Identity Console:

  • /usr/bin/identityconsole restart
  • systemctl restart netiq-identityconsole.service

启用自动提取后,CA 证书将自动复制到 cert 文件夹中。

在独立 OpenText Identity Console 中替换服务器证书

执行以下步骤,替换独立 OpenText Identity Console 中的服务器证书:

  1. 运行 NLPCERT 来储存密钥:

    su - nds -c "/opt/novell/eDirAPI/sbin/decryptor /Expiredcert/noexpire/new-keys.pfx novell /etc/opt/novell/eDirAPI/conf/ssl/private/cert.pem"
  2. 重启动 OpenText Identity Console:

    systemctl restart netiq-identityconsole.service

独立 OpenText Identity Console 的停止、重启动和状态

  • 要停止,运行以下命令之一:

    /usr/bin/identityconsole stop

    或者

    systemctl stop netiq-identityconsole.service
  • 要重启动,运行以下命令之一:

    /usr/bin/identityconsole restart

    或者

    systemctl restart netiq-identityconsole.service
  • 要检查状态,运行以下命令之一:

    /usr/bin/identityconsole status

    或者

    systemctl status netiq-identityconsole.service
  • 要启动,运行以下命令之一:

    /usr/bin/identityconsole start

    或者

    systemctl start netiq-identityconsole.service

2.1.2 在 Windows 上安装 OpenText Identity Console Workstation

OpenText Identity Console 可以在 Windows 上作为工作站启动,并且需要运行 REST 服务。因此,当它启动时,eDirAPI 进程将在 edirapi.exe cmd 提示符中运行。如果关闭 edirapi.exe 终端,OpenText Identity Console将不再运行。

以下操作过程介绍如何在 Windows 上运行 OpenText Identity Console。

  1. 登录到 Software License and Download 门户,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:OpenText eDirectory

    • 产品名称:OpenText eDirectory per User Sub SW E-LTU

    • 版本:9.2、9.3

  3. 下载并解压缩 IdentityConsole_<version>_workstation_win_x86_64.zip。

  4. 导航至解压的文件夹并安装 NICI_wx64。

  5. (可选)打开 ediapi_win.conf 文件并编辑要侦听的 OpenText Identity Console 端口号。

  6. (视情况而定)如果已拥有要使用的 keys.pfx 和 SSCert.pem 文件,将 CA 证书文件名更改为 <ipaddress_ldap>.pem(xx.xx.xx.xxx_636.pem),然后手动将文件复制到 cert 文件夹,此文件夹位于 C:\IdentityConsole_<version>_workstation_win_x86_64\eDirAPI\cert。

    然后继续执行 步骤 9。

  7. (视情况而定)如果要生成 CA 证书,请导航至 eDirAPI 文件夹,在命令提示符中运行 get_cacert.exe fetch <IP address_port.pem> 二进制文件,该命令提示符位于 C:\IdentityConsole_version_workstation_win_x86_64\eDirAPI\cert,并提供 OpenText eDirectory/身份库服务器域名/IP 地址和 LDAPS 端口号。

    例如:

    get_cacert.exe fetch 10.10.10.125:636

    10.10.10.125_636.pem 文件已生成。

  8. (视情况而定)如果要生成服务器证书,请通过命令提示符运行 get_servercert.exe help 二进制文件,并提供以下详细信息:

    • eDirectory/身份库服务器域名/IP 地址以及 LDAPS 端口号。

    • eDirectory/身份库用户名。

    • eDirectory/身份库口令。

    • 服务器证书名。

    • 服务器证书口令。

    例如:

    get_servercert.exe 10.10.10.125:636 cn=admin,o=novell novell keys novell

    生成 keys.pfx 文件。

  9. 导航到解压缩的文件夹,双击 configure.bat 文件,然后在命令提示符下输入服务器证书 (keys.pfx) 口令。

    注:如果服务器证书已更改,则使用新证书的口令重新运行 configure.bat 文件。

  10. 导航至解压缩的文件夹,然后双击 run.bat 文件。

    eDirAPI 进程终端 (edirapi.exe) 开始运行,并显示 OpenText Identity Console 登录页面。

注:

  • 若之后需要登录到 OpenText Identity Console 应用程序,请双击 run.bat。随即显示登录页面。

    如果 eDirAPI 进程终端 (edirapi.exe) 已在运行,则从提取版本的文件夹中运行 identityconsole.exe。

  • 用户可以在 \IdentityConsole_<version>_workstation_win_x86_64\eDirAPI\log 中查看下列日志

    edirapi.log - 用于记录 edirapi 中的不同事件和调试问题。

    edirapi_audit.log - 用于记录 edirapi 的审计事件。日志遵循 CEF 审计格式。

  • 在工作站模式下不支持基于 OSP 的登录。

  • 如果端口号已在使用中,请在 edirapi_win.conf 文件中编辑 listen 参数指定新的端口号,然后双击 run.bat 以成功登录到 OpenText Identity Console。

用于生成证书的实用程序

您可以使用以下实用程序为其他 OpenText eDirectory 树获取 CA 证书和服务器证书。

注:CA 和服务器证书的脚本位于 opt/novell/eDirapi/sbin 路径中。

生成 CA 证书

  1. 下载并解压缩 OpenText Identity Console 的最新版本。

  2. 导航到在其中提取 OpenText Identity Console 版本的目录。示例:C:\IdentityConsole_<version>_workstation_win_x86_64\eDirAPI

  3. 通过命令提示符运行以下二进制文件。

    get_cacert.exe fetch <ip address:port>

    提供 OpenText eDirectory IP 地址和 LDAPS 端口号。

    示例:get_cacert.exe fetch 10.10.10.125:636

    10.10.10.125_636.pem 文件已生成并复制到 cert 文件夹。

生成服务器证书

  1. 导航到在其中提取 OpenText Identity Console 版本的文件夹。

    示例:IdentityConsole_Console_WIN_WIN <version>

  2. 通过命令提示符运行 get_servercert.exe help 以获得更多帮助选项。

    • eDirectory/身份库服务器域名/IP 地址以及 LDAPS 端口号。

    • eDirectory/身份库用户名。

    • eDirectory/身份库口令。

    • 服务器证书名。

    • 服务器证书口令。

      要生成服务器证书,通过命令提示符运行以下命令:

      示例:

      get_servercert.exe 10.10.10.125:636 cn=admin,o=novell novell keys novell

      keys.pfx 文件已生成并复制到 cert 文件夹。

将 OpenText Identity Console 作为工作站的多树

OpenText Identity Console 允许用户通过在登录页面输入 IP 地址来连接到多树。

关闭并重启 OpenText Identity Console 工作站

要关闭应用程序和进程:

  1. 关闭 OpenText Identity Console 桌面窗口应用程序。

  2. 通过关闭 eDirAPI 进程终端停止 eDirAPI 进程。

要重启 OpenText Identity Console 工作站,请导航到提取版本的文件夹,然后双击 run.bat 文件(Windows 批文件)。

注:如果 eDirAPI 进程终端已在运行,则从版本提取文件夹中运行 identityconsole.exe 以重启 OpenText Identity Console 工作站。

2.1.3 将 OpenText Identity Console 安装为 Docker Container

本部分包含下列操作过程的信息:

安全建议

  • Docker 容器默认没有任何资源限制。这为每个容器提供了主机内核所提供的所有 CPU 和内存资源的访问权限。您还必须通过设置容器可使用的资源量限制,确保一个正在运行的容器不会使用更多资源,致使其他正在运行的容器停止。

    • Docker 容器应在 Docker run 命令中使用 --memory 标志确保容器使用的内存应用了硬限制。

    • Docker 容器应在 Docker run 命令中使用 --cpuset-cpus 标志确保运行的容器所使用的 CPU 量应用了限制。

  • --pids-limit 应设置为 300 以限制任何指定时间容器内生成的内核线程的数量。这样是为了防止 DoS 攻击。

  • 您必须在 Docker run 命令中使用 --restart 标志将故障容器重启动策略设置为 5。

  • 容器出现后,您只能在运行状态显示为 Healthy(健康)后使用容器。要检查容器的运行状态,运行以下命令:

    docker ps <container_name/ID>
  • Docker 容器将始终以非 root user (nds) 启动。作为额外的安全措施,启用守护程序用户名称空间重新映射,以防止容器内部发生特权降级攻击。有关用户名称空间重新映射的更多信息,请参见 Isolate containers with a user namespace(用用户名称空间隔离容器)。

将 OpenText Identity Console 安装为 Docker Container

注:OpenText Identity Console 可以用 OSP 或不用 OSP 配置。如果选择使用 OSP 配置,则必须首先 部署 the OSP 容器,然后再部署 OpenText Identity Console 容器。确保修改 edirapi.conf 文件以包括所需的部署值。

要将 OpenText Identity Console 安装为 Docker 容器:

此过程中提及的配置参数、示例值和示例仅供参考。您必须确保不要直接在生产环境中使用它们。

  1. 登录到 Software License and Download 门户,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:OpenText eDirectory

    • 产品名称:OpenText eDirectory per User Sub SW E-LTU

    • 版本:9.2、9.3

  3. 下载 IdentityConsole_<版本>_Container.tar.zip。

  4. 映像必须加载到本地 Docker 注册表中。使用以下命令解压缩并装载 IdentityConsole_<版本>_Containers.tar.gz 文件:

    tar -xvf IdentityConsole_version_Containers.tar.gz              
    docker load --input identityconsole.tar.gz
  5. 使用以下命令创建 OpenText Identity Console Docker 容器:

    docker create --name identityconsole-container-name --env ACCEPT_EULA=Y --network=network-type --volume volume-name:/config/ identityconsole:version

    例如:

    docker create --name identityconsole-container-1 --env ACCEPT_EULA=Y --network=host --volume IDConsole-volume:/config/ identityconsole:version

    注:

    • 您可以通过将 ACCEPT_EULA 环境变量设置为“y”以接受 EULA。您还可以在启动容器时通过使用互动模式 Docker 创建命令中的 -it 选项从屏幕提示中接受 EULA。

    • 上述命令中的 --volume 参数将创建存储配置和日志数据的卷。在这种情况下,我们创建了一个名为 IDConsole-volume 的卷。

  6. 使用以下命令将本地文件系统中的服务器证书文件复制到容器中作为 /etc/opt/novell/eDirAPI/cert/keys.pfx。有关创建服务器证书的更多信息,请参见 先决条件:

    docker cp <absolute path of server certificate file> <identityconsole-container-name>:/etc/opt/novell/eDirAPI/cert/keys.pfx

    例如,

    docker cp /home/user/keys.pfx identityconsole-container-1:/etc/opt/novell/eDirAPI/cert/keys.pfx

    连接到多个 OpenText eDirectory 树时,必须确保为所有连接的树获取至少一个 keys.pfx 服务器证书。

  7. 使用以下命令将本地文件系统中的 CA 证书文件 (.pem) 复制到容器中作为 /etc/opt/novell/eDirAPI/cert/SSCert.pem。有关获得 CA 证书的更多信息,请参见 先决条件:

    docker cp absolute path of CA certificate file identityconsole-container-name:/etc/opt/novell/eDirAPI/cert/SSCert.pem

    例如,

    docker cp /home/user/SSCert.pem identityconsole-container-1:/etc/opt/novell/eDirAPI/cert/SSCert.pem

    如果用户需要连接到多个 OpenText eDirectory 树,请参见此部分:将 OpenText Identity Console 作为 Docker 的多树。

  8. 根据您是否要使用 OSP 配置 OpenText Identity Console,根据需要修改 edirapi.conf 配置文件。然后使用以下命令将其从本地文件系统复制到 /etc/opt/novell/eDirapi/conf/ediapi.conf的容器中:

    docker cp absolute path of configuration file identityconsole-container-name:/etc/opt/novell/eDirAPI/conf/edirapi.conf

    例如:

    docker cp /home/user/edirapi.conf identityconsole-container-1:/etc/opt/novell/eDirAPI/conf/edirapi.conf

    配置文件示例如下所示(OpenText Identity Console 1.9 以及更高版本):

    listen = ":9000" pfxpassword = "novell" bcert = "/etc/opt/novell/eDirAPI/cert/" ospmode=false auto-fetch=false 

    配置文件示例如下所示(Identity Console 1.8 及更早的版本):

    listen = ":9000" pfxpassword = "novell" bcert = "/etc/opt/novell/eDirAPI/cert/" ospmode=false edir-hosts = "<ip_address>:636"

    注:要通过 OpenText Identity Console 访问 OpenText eDirectory,需要添加 edir-hosts="x.x.x.x:ldaps_port 到 edirapi.conf 文件。

    示例:eDir-hosts="10.10.10.10:636"

    设置 auto-fetch = true 时,最初需要将 CA 证书复制到容器中,如步骤 7 中所述。之后将在后续登录会话中自动获取 CA 证书。

    使用 OSP 配置 OpenText Identity Console 时的配置文件示例如下所示:

    listen = ":9000" ldapserver = "10.71.39.15:636" ldapuser = "cn=admin,o=novell" ldappassword = "novell" pfxpassword = "novell" osp-token-endpoint = "https://<osp_ipaddress>:8543/osp/a/idm/auth/oauth2/getattributes" osp-authorize-url = "https://<osp_ipaddress>:8543/osp/a/idm/auth/oauth2/grant" osp-logout-url = "https://<osp_ipaddress>:8543/osp/a/idm/auth/app/logout" osp-redirect-url = "https://<identity_console_ipaddress>:9000/eDirAPI/v1/t/authcoderedirect" osp-client-id = "identityconsole" ospclientpass = "novell" ospcert = "/etc/opt/novell/eDirAPI/cert/SSCert.pem" bcert = "/etc/opt/novell/eDirAPI/cert/" ospmode=true check-origin =true origin = "https://<identity_console_ipaddress>:9000"
  9. 使用以下命令启动 Docker 容器:

    docker start identityconsole-container-name

    例如,

    docker start identityconsole-container-1

注:/var/lib/docker/volumes/<volume_name>/_data/eDirAPI/var/log 目录下将有下列日志文件:

  • edirapi.log - 用于记录 edirapi 中的不同事件和调试问题。

  • edirapi_audit.log - 用于记录 edirapi 的审计事件。日志遵循 CEF 审计格式。

  • container-startup.log 捕获 OpenText Identity Console Docker 容器的安装日志。

将 OpenText Identity Console 作为 Docker 的多树

如果要在禁用自动提取功能时将 OpenText Identity Console 1.9 与多个 OpenText eDirectory 树连接,必须将所有 OpenText eDirectory 树中的 CA 证书复制到 /etc/opt/novell/eDirAPI/cert/ 目录中。

OpenText Identity Console 1.8 允许用户通过获取树的单个证书颁发机构证书来连接到多树。

例如,如果连接到三个 OpenText eDirectory 树,则必须将所有三个证书颁发机构证书复制到 Docker 容器中:

docker cp /home/user/SSCert1.pem identityconsole-container-1:/etc/opt/novell/eDirAPI/cert/SSCert1.pem
docker cp /home/user/SSCert2.pem identityconsole-container-1:/etc/opt/novell/eDirAPI/cert/SSCert2.pem
docker cp /home/user/SSCert3.pem identityconsole-container-1:/etc/opt/novell/eDirAPI/cert/SSCert3.pem

运行以下命令以重启动 OpenText Identity Console:

docker restart <identityconsole-container-name>

示例:

docker restart identityconsole-container-1

部署 OSP 容器

要部署 OSP 容器,执行下列操作:

  1. 登录到 Software License and Download 门户,然后导航到“软件下载”页面。

  2. 选择下列项目:

    • 产品:OpenText eDirectory

    • 产品名称:OpenText eDirectory per User Sub SW E-LTU

    • 版本:9.2

    • OpenText Identity Console Standalone

  3. 下载并解压 <version>_Containers_tar.zip 文件。

  4. 要在 OSP 容器中安装 OpenText Identity Console,需要密钥库 (tomcat.ks)。

    生成密钥库需要执行以下步骤:

    1. 在 /opt/ directory 中创建 certs 文件夹。

    2. 运行下列命令创建密钥存储区 (tomcat.ks):

      keytool -genkey -alias osp -keyalg RSA -storetype pkcs12 -keystore /opt/certs/tomcat.ks -validity 3650 -keysize 2048 -dname "CN=blr-osp48-demo.labs.blr.novell.com" -keypass novell -storepass novell

      注:确保计算机的 IP 地址命名为 CN 名称或完全限定主机名。例如:CN=xx.xx.xx.xx

    3. 运行下列命令创建证书签名请求。例如:cert.csr。

      keytool -certreq -v -alias osp -file /opt/certs/cert.csr -keypass novell -keystore /opt/certs/tomcat.ks -storepass novell
    4. 将创建的 cert.csr 传递到 Identity Console 并获取 cert.der,如下所述:

      1. 以管理员身份起动 OpenText Identity Console。

      2. 单击证书管理 > 颁发证书并选择文件。

      3. 导航到密钥用法规范 > 密钥类型 > 选中 自定义单选按钮。

      4. 单击密钥用法并选中以下复选框:

        • 数据加密

        • 密钥加密

        • 数字签名

      5. 导航到证书参数 > 主题备用名称 > OSP 服务器 IP 地址或 OSP 服务器 DNS 名称 > 下一步 > 确定。

        显示讯息已成功生成证书。

      6. 单击确定。

      7. 下载颁发的证书 cert.der 并将其复制到 /opt/certs/。

    5. 将 SSCert.der 从 OpenText eDirectory 复制到 /opt/certs

    6. 运行下列命令以将证书颁发机构证书 (SSCert.der) 和服务器证书 (cert.der) 导入 tomcat.ks 密钥存储区。

      keytool -import -trustcacerts -alias root -keystore /opt/certs/tomcat.ks -file /opt/certs/SSCert.der -storepass novell -noprompt
      keytool -import -alias osp -keystore /opt/certs/tomcat.ks -file /opt/certs/cert.der -storepass novell -noprompt
  5. 新建一个 data 文件夹。

  6. 从 /opt/certs 复制 tomcat.ks 并将其粘贴到 data 文件夹中。

  7. 从提取的 OpenText Identity Console 容器版本中,将 osp-edirapi-silent.properties 文件复制到 data 文件夹中。

  8. 根据您的要求修改 osp edirapi 无提示属性文件。下面显示了一个示例无提示属性文件:

    # Silent file for osp with edirapi
    ## Static contents Do not edit - starts 
    INSTALL_OSP=true
    DOCKER_CONTAINER=y
    EDIRAPI_PROMPT_NEEDED=y
    UA_PROMPT_NEEDED=n
    SSPR_PROMPT_NEEDED=n
    RPT_PROMPT_NEEDED=n
    CUSTOM_OSP_CERTIFICATE=y
    ## Static contents Do not edit - ends
    
    # OSP Details
    SSO_SERVER_HOST=osp.example.com (osp confiugred serevr IP address)
    SSO_SERVER_SSL_PORT=8543
    OSP_COMM_TOMCAT_KEYSTORE_FILE=/config/tomcat.ks
    OSP_COMM_TOMCAT_KEYSTORE_PWD=novell
    SSO_SERVICE_PWD=novell
    OSP_KEYSTORE_PWD=novell
    IDM_KEYSTORE_PWD=novell
    OSP_CUSTOM_NAME="Identity Console"
    USER_CONTAINER="o=novell"
    ADMIN_CONTAINER="o=novell"
    MASTER_KEYSTORE_PWD=novell
    
    # IDConsole Details 
    IDCONSOLE_HOST=192.168.1.1 (IdentityConsole confiugred serevr IP address)
    IDCONSOLE_PORT=9000
    EDIRAPI_TREENAME=ed913 (Tree name should be in lowercase)
    
    #If ENABLE_CUSTOM_CONTAINER_CREATION is set to y
    #ie., when you have user and admin container different from o=data
    #    and they need to be created in eDir
    #then CUSTOM_CONTAINER_LDIF_PATH should be entered as well
    ENABLE_CUSTOM_CONTAINER_CREATION=n
    #ENABLE_CUSTOM_CONTAINER_CREATION=y
    #CUSTOM_CONTAINER_LDIF_PATH=/config/custom-osp.ldif
    
    # eDir Details
    ID_VAULT_HOST=192.168.1.1 (eDir/ID_Vault confiugred serevr IP address)
    ID_VAULT_LDAPS_PORT=636
    ID_VAULT_ADMIN_LDAP="cn=admin,o=novell"
    ID_VAULT_PASSWORD=novell

    注:要在使用无提示属性(DOS 文本)文件时避免空间限制,必须使用 dos2unix 工具将 DOS 文本文件转换为 UNIX 格式。运行以下命令将文本文件从 DOS 行尾转换为 Unix 行尾:

    dos2unix filename

    例如:

    dos2unix samplefile

  9. 运行以下命令以装载 OSP 映像:

    docker load --input osp.tar.gz
  10. 使用以下命令部署容器:

    docker run -d --name OSP_Container --network=host -e SILENT_INSTALL_FILE=/config/osp-edirapi-silent.properties -v /data:/config osp:<version>

    例如:

    docker run -d --name OSP_Container --network=host -e SILENT_INSTALL_FILE=/config/osp-edirapi-silent.properties -v /data:/config osp:6.6.6 

    注:部署 OSP 容器后,使用 OSP 服务器细节安装和配置 OpenText Identity Console。

停止并将 OpenText Identity Console 作为 Docker 容器重启动

要停止,运行以下命令:

docker stop identityconsole-container-name

要重启动,运行以下命令:

docker restart identityconsole-container-name

要启动,运行以下命令:

docker start identityconsole-container-name

管理数据持久性

除了 OpenText Identity Console 容器外,还创建了数据持久性卷。要借助使用卷的旧容器的配置参数,执行以下步骤:

  1. 使用以下命令停止当前的 Docker 容器:

    docker stop identityconsole-container-name

    示例:

    docker stop identityconsole-container-1
  2. 使用存储在 Docker 卷 (IDConsole-volume-1) 中的旧容器的应用程序数据创建第二个容器。

    docker create --name identityconsole-container-name --network=host --volume IDConsole-volume-1:/config/ identityconsole:< version >

    示例:

    docker create --name identityconsole-container-2 --network=host --volume IDConsole-volume-1:/config/ identityconsole:<version>
  3. 使用以下命令启动第二个容器:

    docker start identityconsole-container-name

    示例:

    docker start identityconsole-container-2
  4. (可选)可以使用以下命令去除第一个容器:

    docker rm identityconsole-container-name

    示例:

    docker rm identityconsole-container-1

更换 Docker 容器中的服务器证书

执行以下步骤以更换 Docker 容器中的服务器证书:

  1. 运行以下命令以在容器的任何位置复制新的服务器证书。

    示例:

    docker cp /path/to/new-keys.pfx <container_id/name>:/tmp/new-keys.pfx
  2. 使用以下命令登录到容器:

    docker exec -it container_name bash
  3. 运行 NLPCERT 以伪用户的身份储存密钥:

    LD_LIBRARY_PATH=/opt/novell/lib64/:/opt/novell/eDirectory/lib64/:/opt/netiq/common/openssl/lib64/ /opt/novell/eDirAPI/sbin/nlpcert -i /tmp/new-keys.pfx -o /etc/opt/novell/eDirAPI/conf/ssl/private/cert.pem 
  4. 使用以下命令退出容器控制台:

    exit
  5. 通过输入以下内容重启动容器:

    docker restart container name

2.1.4 在 Azure Kubernetes Services 中安装 OpenText Identity Console

Azure Kubernetes Services (AKS) 是一项托管式 Kubernetes 服务,可用于安装和管理群集。本部分包含下列操作过程的信息:

在 AKS 群集中安装 OpenText Identity Console

本部分介绍下列在 AKS 群集中安装 OpenText Identity Console 的操作过程:

创建 Azure 容器注册表 (ACR)

Azure 容器注册表 (ACR) 是一个基于 Azure 的专用注册表,适用于 Docker 容器映像。

有关更多详细步骤,请参阅 Create container registry - Portal(创建容器注册表 - 门户)中的 Create an Azure container registry using the Azure portal(使用 Azure 门户创建 Azure 容器注册表)部分,或执行以下步骤创建 Azure 容器注册表 (ACR):

  1. 登录到 Azure 门户。

  2. 转到 Create a resource(创建资源)> Containers(容器)> Container Registry(容器注册表)。

  3. 在 Basics(基本信息)选项卡中,指定 Resource group(资源组)和 Registry name(注册表名称)的值。注册表名称在 Azure 中必须是唯一的,并且至少包含 5 个字母数字字符,最多包含 50 个字母数字字符。

    接受其余设置的默认值。

  4. 单击 Review + create(查看 + 创建)。

  5. 单击创建。

  6. 登录到 Azure CLI,运行以下命令以登录到 Azure 容器注册表。

    az acr login --name registryname

    示例:

    az acr login --name < idconsole >
  7. 使用以下命令检索 Azure 容器注册表的登录服务器:

    az acr show --name registryname --query loginServer --output table

    示例:

    az acr show --name < idconsole > --query loginServer --output table
  8. 使用以下命令用 ACR 登录服务器的名称 (registryname.azureacr.io) 标记 OpenText Identity Console 的本地映像:

    docker tag idconsole-image <login server>/idconsole-image

    示例:

    docker tag identityconsole:<version> registryname.azurecr.io/identityconsole:<version>
  9. 将标记的映像推送到注册表。

    docker push <login server>/idconsole: <version>

    示例:

    docker push registryname.azurecr.io/identityconsole:<version>
  10. 使用以下命令检索注册表中的映像列表:

    az acr show --name registryname --query loginServer --output table

设置 Kubernetes 群集

使用 Azure 门户或 CLI 创建 kubernetes 服务资源。

有关在 Azure 中创建一个包含节点的 Kubernetes 服务资源的更多详细步骤,请参阅 Azure Quickstart(Azure 快速入门)中的 Create an AKS Cluster(创建一个 AKS 群集)。

注:

  • 确保选择 Azure CNI 作为网络。

  • 选择现有虚拟网络(其中 OpenText eDirectory 服务器安装在子网中)。

  • 选择 OpenText Identity Console 映像在其中可用的现有容器注册表。

创建标准库存单位 (SKU) 公共 IP 地址

Kubernetes 群集资源组下的公共 IP 地址资源充当应用程序的负载均衡器 IP。

有关详细步骤,请参阅 Create public IP address – Portal(创建公共 IP 地址 - 门户)中的 Create a public IP address using the Azure portal(使用 Azure 门户创建公共 IP 地址)。

设置云壳层并连接到 Kubernetes 群集

使用 Azure 门户中可用于所有操作的云壳层。

若要在 Azure 门户中设置云壳层,请参阅 Bash – Quickstart(Bash – 快速入门)中的 Start Cloud Shell(启动云壳层)部分,或执行以下步骤来设置云壳层并连接到 Kubernetes 群集:

  1. 在 Azure 门户中,单击 按钮打开云壳层。

    注:要管理 Kubernetes 群集,请使用 Kubernetes 命令行客户端 kubectl。如果使用的是 Azure Cloud Shell,则已安装 kubectl。

  2. 使用以下命令配置 kubectl 以连接到您的 Kubernetes 群集:

    az aks get-credentials --resource-group "resource group name" --name "Kubernetes cluster name"

    示例:

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
  3. 使用以下命令校验群集节点的列表:

    kubectl get nodes

部署应用程序

要安装 OpenText Identity Console,您可以使用 idc-services.yaml 、 idc-statefulset.yaml、 idc-storageclass.yaml 和 idc-pvc.yaml 示例文件。

您还可以根据要求创建自己的 yaml 文件。

  1. 使用以下命令创建储存类资源:

    kubectl apply -f <location of the YAML file>

    示例:

    kubectl apply -f idc-storageclass.yaml

    (可选)有关如何通过 Azure 文件共享动态创建和使用持久性卷的更多信息,请参阅 Dynamically create and use a persistent volume with Azure Files in Azure Kubernetes Service (AKS)(在 Azure Kubernetes Service (AKS) 中通过 Azure 文件动态创建和使用持久性卷)

    示例储存类资源文件如下所示:

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: azurefilesc
    provisioner: kubernetes.io/azure-file
    mountOptions:
      - dir_mode=0777
      - file_mode=0777
      - uid=0
      - gid=0
      - mfsymlinks
      - cache=strict
      - actimeo=30
    parameters:
      skuName: Standard_LRS
      shareName: fileshare
    ~

    储存类资源支持动态储存供应。它用于定义如何创建 Azure 文件共享。

  2. 使用以下命令查看储存类的细节:

    kubectl get sc
  3. 使用 idc-pvc.yaml 文件创建一个 pvc 资源:

    kubectl apply -f <location of the YAML file>

    示例:

    kubectl apply -f idc.pvc.yaml

    示例 pvc 资源文件如下所示:

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvcforsc
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: azurefilesc
      resources:
        requests:
          storage: 5Gi

    持久性卷声明资源创建文件共享。持久性卷声明 (PVC) 使用储存类对象动态供应 Azure 文件共享。

  4. 将 edirapi.conf、证书颁发机构证书和服务器证书上传到云壳层。

    单击云壳层上的 Upload/Download files(上载/下载文件)按钮图标 ,然后上载 edirapi.conf、SSCert.pem 和 keys.pfx 文件。

    注:edirapi.conf 有一个参数“原点”。在这里,我们需要提供用于访问 OpenText Identity Console 应用程序的 IP 地址。(使用在 创建标准库存单位 (SKU) 公共 IP 地址 部分中创建的 IP 地址。)

    OpenText Identity Console 安装需要服务器证书 (keys.pfx)。

    创建服务器证书时,请确保在主题备用名称中提供有效的 DNS 名称。

    构建有效 DNS 名称的步骤:

    使用 StatefulSet 部署的典型 pod 具有如下所示的 DNS 名称 - {statefulsetname}-{ordinal}.{servicename}.{namespace}.svc.cluster.local

    • 如果 idconsole-statefulset.yaml 文件中的 StatefulSet 名称是 idconsole-app,则 statefulsetname = idconsole-app

    • 如果是第一个 Pod,则序号 = 0

    • 如果将 idconsole -statefulset.yaml 文件中的 serviceName 定义为 idconsole,则 serviceName = idconsole

    • 如果是默认命名空间,则 namespace=default

    输出:idconsole-app-0.idcosole.default.svc.cluster.local

  5. 在 Kubernetes 群集中创建一个 configmap 资源,该资源将储存配置文件以及证书。

    在运行该命令之前,请确保目录中存在文件 edirapi.conf、SSCert.pem 和 keys.pfx。

    kubectl create configmap <confgimapName> --from-file= "path where the files are present"

    示例:

    kubectl create configmap config-data --from-file=/data
  6. 查看 configmap 对象的细节,使用 kubectl 描述命令:

    kubectl describe configmap <configmapName>

    示例:

    kubectl describe configmap confg-data
  7. 创建 StatefulSet 资源以部署容器。

    运行以下命令以部署容器:

    kubectl apply -f <location of the YAML file>

    示例:

    kubectl apply -f idc-statefulset.yaml

    示例 StatefulSet 资源文件如下所示:

    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: idconsole-app
    spec:
      serviceName: idconsole
      selector:
        matchLabels:
          app: idconsole
      replicas: 1
      template:
        metadata:
          labels:
            app: idconsole
        spec:
          containers:
          - name: idconsole-container
            image: registryname.azurecr.io/identityconsole:<version>
            env:
            - name: ACCEPT_EULA
              value: "Y"
            ports:
            - containerPort: 9000
            volumeMounts:
              - name: configfiles
                mountPath: /config/data
              - name: datapersistenceandlog
                mountPath: /config
                subPath: log
          volumes:
            - name: configfiles
              configMap:
                name: config-data
            - name: datapersistenceandlog
              persistentVolumeClaim:
                claimName: pvcforsc
  8. 运行以下命令校验已部署 Pod 的状态:

    kubectl get pods -o wide
  9. 创建 loadBalancer 类型的服务资源。

    yaml 文件中指定的服务类型是 loadBalancer。

    使用以下命令创建服务资源:

    kubectl apply -f <location of the YAML file>

    示例:

    kubectl apply -f ids-service.yaml

    示例服务资源文件如下所示:

    apiVersion: v1
    kind: Service
    metadata:
      name: idconsole-service
      labels:
        run: idconsole-service
    spec:
      type: LoadBalancer
      loadBalancerIP: xx.xx.xx.xx
      selector:
        app: idconsole
      ports:
       - port: 9000
         targetPort: 9000
         protocol: TCP

    使用以下命令检查外部 IP 地址(或 loadBalancerIP):

    kubectl get svc -o wide
  10. 使用外部 IP(或 loadBalancerIP 地址)启动 URL。

    示例:

    https://<外部 IP>:9000/identityconsole