API配置

概述

对于在基础设施环境中采用密码来与第三方应用进行数据交互的应用程序或脚本,您不需要在应用的配置文件或脚本中硬编码密码,这些应用程序或脚本可通过查询PAM360来随时安全的查询第三方应用的密码。这样管理员就可以自由地应用诸如定期轮换密码等最佳实践的做法,而不必担心密码管理工作的复杂性、繁重程度以及影响。

支持的 API 类型

PAM360 提供两种 API :

1.REST API

2.SSH CLI API

表单使用PKI身份验证来通过API访问PAM360应用程序。

配置 API 的前提条件

以下是在配置和使用 API 之前需要确保的重要要点:

  • 这些仅使用PAM360 API的用户,必需在PAM360中创建出来。每个API用户帐户都应指示单个终结点(使用 API 的服务器或桌面,故API用户帐户唯一标识格式为 user@hostname) 。
  • API 用户可以使用 SSH CLI 或 RESTful API。
  • API 用户采用PKI身份验证方法,因此,基于API的类型,应注意配置用户的以下信息:
    • 一个OpenSSH格式的公钥,对应于user@host的私钥,以使用SSH CLI。
  • PAM360已内置SSH服务,可运行在特定的端口上。
  • 在API用户创建并启用SSH服务器后, PAM360即可为API用户服务。
  • 管理员可以像为其他用户配置密码访问权限的方法一样,对 API 用户做同样的配置。 API 用户只能通过 API方式访问他们有权访问的密码。
  • 目前, API允许检索、修改和创建操作。

下图为PAM360中API调用过程的说明:

命令行接口 ( CLI )—— 运行于SSH协议的脚本

  • 步骤 1- 前提条件 - 创建 API 用户帐户
  • 步骤 2- 服务器端的配置
  • 步骤 3- 启动 SSH 服务器
  • 步骤 4- 配置客户端,使应用程序能够访问 PAM360

步骤 1- 前提条件 - 创建 API 用户帐户

这是将密码管理 API 配置为应用程序到应用程序密码管理过程中的第一步。 如上所述,必需为这些只使用密码管理 API 的用户,在PAM360中创建一个API用户。 每个 API 用户帐户都应关联到单个终结点(使用 API 的服务器或桌面),以便唯一标识用户帐户 - 例如,user@hostname )

创建 API 用户帐户:

    1. 导航到"用户"选项卡。
    2. 单击"添加用户"按钮,然后从下拉列表中选择"添加 API 用户"。
    3. 在相应的文本字段中输入用户名,此名称用于标识 API 用户。 在相应的 SSL 证书中,"通用名称"(CN)应使用相同的名称,这非常重要。 在 MSP 版本中,除了"通用名称"(CN)之外,证书中的组织名称 (O) 应与 PAM360 中的组织显示名称相同。
    4. 输入主机的名称,表示 API 用户将从哪儿来访问 PAM360, 进行相关的密码管理操作。 系统内部采用用户名和主机,来作为API用户的唯一标识。 例如,主机"test-server"中名称为"test"的用户将被视为"test@test-server",以唯一标识 API 用户。
    5. "全名"是指在外部用于标识 API 用户的名称。 即在报表、审计跟踪和诸如其他跟踪用户活动的地方,采用此名称。 默认情况下,"用户名"-"主机名"与后缀"API 用户"组合用作"全名"。 在上面的示例中,该用户的名称为:test@test-server - API 用户。 此外,您也可以按需来定制修改此名称。
    6. 您可以使用访问范围,将管理员/密码管理员/特权管理员更改为超级管理员,选择"系统中所有密码"选项即可。当您这样做时,该用户能够访问 PAM360 的所有密码,没有任何限制。管理员也可以选择"拥有和共享密码"选项,将此用户更改为管理员/密码管理员/特权管理员角色,即取消其特权身份。
    7. SSH 使用上面指定的用户名来连接并登录到指定的主机。 用户必须使用公钥向远程计算机表明其身份。 如果您希望使用 SSH CLI 访问,请浏览并选择 CLI 用户的 SSH 格式公钥。
    8. 重新创建 SSH 格式私-公密钥:

      • 打开命令提示符并运行命令 ssh-keygen。
      • 默认情况下,私钥存储在id_rsa文件中。 公钥存储在id_rsa.pub。 默认情况下,这两个文件存储在命令提示符中指定的目录下。
      • 如果需要,你可以把它们存放在不同的位置。 你需要导入id_rsa.pub。 它将存储在 PAM360 的 <PAM360_HOME>/<username>/.ssh/authorized_keys 中。
      • 如果您想设置一套额外的安全保护措施,你可以在 SSH 密钥上使用一套密码短语。 当您输入并确认密码后,密码短语将添加到密钥中。 每次当您使用 SSH 密钥时,必须输入此密码短语。
      • 生成密钥后,指定公钥的位置。 (在用户添加界面浏览并选定)
      • 关于以上操作,可参考以下快照:
      • Generating public/private rsa key pair.
        Enter file in which to save the key (/home/xyz/.ssh/identity): /home/xyz
        /.ssh/pam360_identity
        Enter passphrase (empty for no passphrase): *enter your passphrase here*
        /home/xyz/.ssh/pam360_identity
        Enter same passphrase again: *repeat your passphrase*
        Your identification has been saved in /home/xyz/.ssh/pam360_identity.
        Your public key has been saved in /home/xyz/.ssh/pam360_identity.pub.
        The key fingerprint is:
        22:71:3c:ff:7e:df:59:ad:72:47:d1:16:bd:e2:e9:2d xyz@xyz

        上面的示例演示了如何使用Open SSH生成密钥对。 您也可以使用任何其他标准工具按需生成密钥。

注意:API用户指示了应用程序将从哪台主机上联系PAM360来获取密码,也就是用户与主机是绑定在一起的。无论您是从多个位置/主机访问或是采用多个账户从一个位置/主机访问PAM360密码管理API,您都需要为这些特定用户创建API用户。

步骤 2- 服务器端的配置

PAM360 内置 SSH 服务器。 默认情况下使用6622。 您可以按需更改此端口,然后重启SSH服务使之生效。

配置 SSH 服务器端口并启动

  1. 导航到管理 >> 配置 >> 密码管理 API。
  2. 在打开的 UI 中,从左侧列出的选项中选择"SSH-CLI"。
  3. 如需要,请更改 SSH-CLI 服务器端口。
  4. 单击"启动 SSHD 服务器"。

从应用程序访问 PAM360

创建 API 用户并在 PAM360 中启动 SSH 服务器后, API 用户可以访问 PAM360 来获取分配给他们的密码。 请注意, PAM360 中的所有权和共享机制对于 API 用户也同样适用。也就是,API 用户只能访问分配给他们的密码。 使用密码管理 API ,用户可以检索、修改和创建帐户。

步骤 3- 配置客户端,使应用程序能够访问 PAM360

每个用户需要创建SSH密钥对(公-私)来用于身份认证,服务器端知道公钥是什么,而用户掌握私钥。 文件<PAM360_HOME>/<user name>/.ssh/authorized_keys列出了允许登录的公钥。 当用户登录时, SSH 程序会告诉服务器它需要使用哪个密钥对进行身份验证。 服务器会检查是否接受此密钥,如果接受,则会向用户发送一个质询,一个随机数,由用户的公钥加密。该质询只能通过用户的私钥解密。 用户客户端使用私钥解密质询之后,即证明用户拥有私钥,无向服务端批漏。 一旦身份验证成功,用户即可执行密码管理操作。

API 用户联系 PAM360 进行各种密码操作:

如上所述, API 用户将仅可以从相应的主机访问 PAM360 进行密码检索和其他操作。

要检索密码或执行任何其他密码管理操作,应用程序应访问运行在 PAM360 上的 SSH 服务器。 然后SSH 服务器再连接到 PAM360 来执行相关密码操作。

可以使用任何标准的 openSSH 命令访问 SSH 服务器。 如下所述,您需要追加 PAM360 特定命令以执行相应的密码管理操作:

ssh -q [-p port] user@hostname [-i private_key] [PAM360特定命令]

例如: ssh -q -p 6622 test@test-server -i /home/guest/id_rsa [PAM360特定命令]

MSP版本请使用以下命令

ssh -q [-p port] ORGNAME/user@hostname [-i private_key] [PAM360特定命令]

例如: ssh -q -p 6622 MANAGEENGINE/test@test-server -i /home/guest/id_rsa [PAM360特定命令]

PAM360特定命令:

对于应用到应用的自动密码管理,您需要在应用程序中使用调用 API 的特定命令。 使用特定命令执行以下操作:

密码检索:

ssh -q [-p port] user@hostname [-i private_key] RETRIEVE --resource=<RESOURCE NAME As present in PAM360> --account=<ACCOUNT NAME As Present in PAM360> --reason=<REASON For Password Access> --ticketid=<TICKET ID For Password Access>

例如:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RETRIEVE --resource=test-server --account=root --reason=Testing password retrieval using ssh client API --ticketid=7

密码重置:

对于本地密码重置

ssh -q [-p port] user@hostname [-i private_key] RESET_LOCAL --resource=<RESOURCE NAME AS PRESENT IN PAM360> --account=<ACCOUNT_NAME As Present in PAM360> --newpassword=<NEW PASSWORD> --reason=<Reason for Password Reset> --ticketid=<TICKET ID For Password Reset>

例如:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RESET_LOCAL --resource=test-server --account=root--newpassword=rootnew --reason=Rotating Password --ticketid=7

对于远程密码重置

ssh -q [-p port] user@hostname [-i private_key] RESET_REMOTE --resource=<RESOURCE NAME AS PRESENT IN PAM360> --account=<ACCOUNT_NAME As Present in PAM360> --newpassword=<NEW PASSWORD> --reason=<Reason for Password Reset> --ticketid=<TICKET ID For Password Reset>

例如:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa RESET_REMOTE --resource=test-server --account=root --newpassword=rootnew --reason=Rotating Password --ticketid=7

创建新资源和用户帐户:

ssh -q [-p port] user@hostname [-i private_key] CREATE --resource=<RESOURCE NAME To Be Created> --account=<ACCOUNT NAME to be created>--newpassword=<PASSWORD of the Account being added> --resourcetype=<Type of the Resource Being Added> --notes=<Reference Notes>

例如:

ssh -q -p 6622 test@test-server -i /home/guest/id_rsa CREATE --resource=testresource --account=testaccount --newpassword=test password--resourcetype=Windows --notes=A New resource is added

更多信息,请参阅本文档

故障排除提示

当执行上述命令时,PAM360没有任何响应

解决方案

删除上述命令中的 -q 选项。 您将在屏幕上收到警告/错误消息。 例如,要检索密码,请执行命令::

ssh [-p port] user@hostname [-i private_key] RETRIEVE --resource=<RESOURCE NAME As present in PAM360> --account=<ACCOUNT NAME As Present in PAM360> --reason=≪REASON For Password Access>

截取屏幕上的错误信息,并联系 PAM360 支持。

当我尝试在高可用性模式下从 PAM360 辅助服务器检索密码时,我没有得到所需的密码

解决方案

每次添加新 API 用户后,<PAM360_Primary_Installation_Folder>下的sshd文件夹必须完整的复制到<PAM360_Secondary_Installation_Folder>下 这样,您才能够在 PAM360 备服务器上检索密码。

访问 PAM360 备服务来执行应用到应用的密码管理(HA 模式 -SSH CLI )

如果您已经配置了PAM360的高可用运行模式,则当主服务器停止时,应用程序可无缝连接到 备服务器来执行应用到应用的密码管理。 实现此功能,您需要执行以下配置:

  • 打开 <PAM360_Primary_Installation_Folder >并复制"sshd"目录
  • 将以上目录粘贴在

重要说明:每次创建新 API 用户后,您必需将上述sshd文件夹完整的从主服务器复制到备服务器。

如前所述, PAM360 具有内置的 SSH 服务器。 请参考以下步骤,在备服务器中启用SSH服务:

如果您已经配置了PAM360的高可用运行模式,则当主服务器停止时,应用程序可无缝连接到 备服务器来执行应用到应用的密码管理。 实现此功能,您需要执行以下配置:

    1. 停止PAM360主服务器
    2. 连接到PAM360的备服务器WEB界面
    3. 转到管理 >> 配置 >> 密码管理 API >> SSH CLI
    4. 如果需要,请更改 SSH-CLI 服务器端口(默认情况下,它占用 6622 )
    5. 单击启动 SSHD 服务器

用于访问PAM360备服务器的命令

为实现应用到应用之间的自动化密码管理,您需要在您的应用程序中使用以下命令:

密码检索

ssh -q [-p port] user@PAM360_Secondary_hostname [-i private_key] RETRIEVE --resource=<RESOURCE NAME As present in PAM360> --account=<ACCOUNT NAME As Present in PAM360> --reason=<REASON For Password Access>

例如:

ssh -q -p 6622 test@test-secondary-server -i /home/guest/id_rsa RETRIEVE --resource=test-server --account=root --reason=Testing password retrieval using ssh client API

完成以上配置后,您即可在高可用模式下,无缝使用应用到应用之间的密码管理操作。但需注意,备服务器为只读服务器,您在备服务器上仅可执行密码检索操作,密码重置或创建资源等在备服务器上是不支持的。

© 2021, ZOHO 公司,保留所有权利。

页首