Main Content

配置 User Manager

User Manager 管理 Polyspace® Access 用户登录的身份验证。系统会根据存储在 User Manager 数据库中的身份凭据检查用户名和密码,以对登录进行身份验证。要向 User Manager 数据库添加身份,请执行以下操作:

  • 将公司的轻型目录访问协议 (LDAP) 服务器连接到 User Manager 并从该 LDAP 服务器导入身份。要配置与 LDAP 服务器的连接,请参阅将组织的 LDAP 服务器连接到 User Manager

  • 创建自定义身份。请参阅Manage Users and Groups。例如,如果无法使用或选择不使用公司 LDAP,请创建自定义身份。

Cluster Dashboard 上,点击 Configure Apps 以转至 Cluster Settings。填写所有设置后,请点击 Save,返回到 Cluster Dashboard 并点击 Restart Apps,然后更改才会生效。在点击 Save 之前,请确保 Validate on Save 已启用。

注意

在 Windows® 系统上,您指定的所有文件路径都必须指向本地驱动器。

前提条件

User Manager 常规设置

无论是创建自定义用户凭据还是从公司 LDAP 服务器导入用户,都必须进行以下设置。

设置描述
Internal directory database volume

指定数据库文件夹的完整路径。该数据库存储有关从 LDAP 服务器导入或在 User Manager 界面中创建的用户和组的信息。

该数据库默认存储在提取 Polyspace Access 安装镜像的文件夹中,位于 appdata/usermanager 下。例如,/local/usr/Access/R2024a/appdata/usermanager/db

Internal directory database username

如果需要使用 PostgreSQL 命令与内部数据库进行交互,请使用在此字段中指定的用户名。

默认用户名为 "UM"。

Internal directory database password

如果需要使用 PostgreSQL 命令与内部数据库进行交互,请使用在此字段中指定的密码。

此字段为必填项。

要查看当前的数据库密码,请运行以下命令。

  • Windows

    docker inspect usermanager-db-0-main | FIND "UMDB_PASSWORD"

  • Linux

    docker inspect usermanager-db-0-main | grep UMDB_PASSWORD

要更改数据库密码,请更新密码两次:

  • 在此字段中输入新密码以更改 Polyspace Access 设置中的密码。

  • 在您安装 Polyspace Access 的计算机上运行以下命令,以更新 postgres 数据库中的密码:

    docker exec -it usermanager-db-0-main psql --username um --dbname umdb -c "ALTER ROLE um WITH PASSWORD 'yourNewPassword'"

选项 --username 的参量应与您在 Internal directory database username 字段中指定的用户名匹配。

Administrator sign-in IDs

输入以逗号分隔的多个用户名,以将这些用户设置为 User Manager 管理员。您可以指定自定义用户名或公司 LDAP 中的用户名。请参阅Create, Edit, or Remove Users and Groups

注意

如果启用 Connect an LDAP directory,则在此字段中指定的用户名至少有一个必须来自 LDAP 目录或必须已存在于 User Manager 数据库中。否则将无法登录到 User Manager 界面。

在此字段中指定的用户也是 Polyspace Access 管理员。有关 Polyspace Access 管理员的详细信息,请参阅Manage Project Permissions

要删除具有 Polyspace Access 管理员身份的用户,请执行以下操作:

  1. 从此字段中删除该用户名,保存更改,然后重新启动 App。

  2. 重新启动后,必须由 Polyspace Access 管理员在 Polyspace Access Web 界面中使用上下文菜单从 Project Explorer 中的所有顶层文件夹取消分配该用户。管理员还可以在命令行中使用 -unset-role 标志与 polyspace-access 二进制文件来执行此任务。有关详细信息,请参阅 polyspace-access

Initial administrator password

用以登录 User Manager 界面的密码。

如果在 User Manager Directory Connection 设置中选择了 Connect an LDAP directory,则此字段不可用。

Authentication token expiration (sec):

以秒为单位指定 User Manager 颁发给通过身份验证的用户的已签名 JSON Web 令牌的有效期。此到期时间决定了会话的存在时间。登录 Polyspace Access 后,您的许可证将被签出且会话将定期刷新,以防止其过期。如果您显式注销或关闭 Web 浏览器,会话将立即结束,您的许可证也将重新签回。如果浏览器意外关闭,则许可证将保持签出状态,直至会话过期。

设置过期时间时,请考虑以下情况:

  • 如果过期时间太短,则会频繁提示高频用户重新登录。在大型团队中,许可证服务器会经历大量的许可证签入和签出操作。

  • 如果过期时间太长,许可证日志中估算的低频用户会话时间可能会过多。

请使用此设置来设置许可超时。Polyspace Access 会忽略您使用 TIMEOUT feature seconds 语法在许可证管理器选项文件 (MLM.opt) 中设置的许可证超时值。

Authentication private key file:

指定 User Manager 用于为 JSON Web 令牌签名的私钥 PEM 文件的完整路径。在 Windows 系统上,这些路径必须指向本地驱动器。

User Manager 服务不支持受密码保护的私钥。您可以使用 openssl 实用工具生成私钥。例如:

openssl genrsa -out private.pem 2048
将私钥限制为只有管理 User Manager 服务的管理员可以访问。

不要重用用于生成 SSL 证书的私钥,SSL 证书是您在启用 HTTPS 协议时需要提供的。

API keys and user IDs

在此字段中输入 API 密钥值和用户名对组,以便为用户分配 API 密钥。例如,要为用户 jsmith 分配 API 密钥,请输入:

5ea34345-a03b-4a20-821e-f10e45e0e863,jsmith
要为其他用户分配 API 密钥,请在单独的行中输入其他 API 密钥和用户名对组。每个 API 密钥值都必须是唯一的。

可以将字母数字字符的任意组合作为 API 密钥分配给用户。例如,要为 API 密钥生成通用唯一标识符 (UUID),请使用以下命令:

  • Windows PowerShell: [guid]::NewGuid()

  • Linux®: uuidgen

请将 API 密钥与需要 Polyspace Access 凭据的以下命令一起使用:

使用 API 密钥时,建议将 API 密钥存储在一个文本文件中,并使用 -credentials-file 将该文件传递给命令。例如,要使用用户 jsmith 的 API 密钥,请将以下行存储在文本文件 credentials.txt 中:

-api-key 5ea34345-a03b-4a20-821e-f10e45e0e863
然后将该文件传递给命令,例如:
polyspace-access -credentials-file credentials.txt
或者,使用 -api-key 直接在命令行传递 API 密钥。

这些命令使用 API 密钥作为相应用户的登录凭据。如果用户更新其密码,您无需更新 API 密钥。如果将 API 密钥用于自动化脚本中,请确保与该密钥关联的用户具有足够的权限执行脚本中的所有操作。请参阅Manage Project Permissions

要创建或管理身份,请参阅Manage Users and Groups

将组织的 LDAP 服务器连接到 User Manager

要使用组织的 LDAP 服务器,请在 User Manager Directory Connection 设置中选择 Connect an LDAP directory 并配置 LDAP 设置。请联系 LDAP 管理员,以获取 LDAP URL、LDAP 用户数据库、其他 LDAP 设置和过滤器,并确定 LDAP 服务器是否使用 Active Directory 全局目录功能。

设置描述
LDAP URL

按以下格式输入 LDAP URL:

ldap://HOST:PORT
HOST 为 LDAP 主机,PORT 为 LDAP 端口号。如果将 LDAP 服务器配置为使用全局目录,则它将使用不同的默认端口号。请参阅为使用全局目录的 LDAP 服务器配置 User Manager

如果已配置基于 SSL 的 LDAP 服务器,请按以下格式输入 URL:

ldaps://HOST:PORT
有关其他 LDAPS 配置步骤,请参阅为基于 SSL 的 LDAP 配置 User Manager

由于 LDAP 服务器与客户端之间的通信未加密,因此建议配置并使用基于 SSL 的 LDAP (LDAPS)。

Synchronization interval (seconds)

以秒为单位指定 User Manager 数据库与 LDAP 服务器之间的同步时间间隔。例如,要每半小时同步一次 User Manager 数据库与 LDAP 服务器,请指定 1800。

要手动同步,请在 User Manager 界面点击 Synch With LDAP

LDAP username

对 LDAP 服务器具有读权限的用户的用户名。如果对 LDAP 服务器的访问不受密码保护,请将此字段留空。

LDAP password

对 LDAP 服务器具有读权限的用户的密码。如果对 LDAP 服务器的访问不受密码保护,请将此字段留空。

密码存储在 settings.json 文件中。为提高安全性,请对此文件的读写权限设置限制。默认情况下,此文件与 admin-docker-agent 二进制文件存储在同一个文件夹下。

Enable LDAP pagination

启用此设置可控制 LDAP 服务器返回结果的速率。如果要查询大量用户且 LDAP 服务器对其返回的条目数有限制,或者进行查询的客户端的资源有限,则通常可以使用此设置。

在启用此设置之前,请确认:

  • LDAP 服务器支持简单分页结果控件。请参阅用于简单分页结果控制的 LDAP 控件扩展

  • 如果提供 LDAP usernameLDAP password,则不会禁用这些凭据的分页。当禁用所提供凭据的分页时,User Manager 日志会显示 LDAP 结果代码 11。

  • 将 LDAP 服务器配置为处理合理数量的并行分页查询。如果并行查询的数量超出 LDAP 服务器的限制,则 User Manager 日志会显示 LDAP 结果代码 53。

LDAP page size设置 LDAP 服务器每页返回的结果数,例如 1000。仅在选择了 Enable LDAP pagination 时,此设置才可用。
LDAP user base

可以使用 LDAP 资源管理器工具检索此参数。例如,通过 Apache Directory Studio 连接到 LDAP 服务器,并打开连接的属性。在 Browser Options 中,点击 Fetch Base DNs 以获取该 LDAP 库。

LDAP user search filter

使用搜索过滤器从 LDAP 数据库检索用户子集。User Manager 在启动时将加载此子集中的用户,而非加载组织中的所有用户。加载较少数量的用户进行身份验证可以提高 Polyspace Access 的性能。

将搜索过滤器指定为 attribute=value,例如,CN=test* 将匹配所有具有以 test 开头的通用名称 (CN) 属性的用户。

在 AND (&) 或 OR (|) 子句中使用圆括号组合多个过滤器表达式。例如,(|(CN=jdoe)(department=foo)) 将匹配具有 CN 属性 jdoe 或部门属性 foo 的所有用户。

默认搜索过滤器为 objectClass=organizationalPerson。有关搜索过滤器的详细信息,请参阅 LDAP 过滤器

要检查搜索过滤器是否返回用户子集,请在 API keys and user IDs 字段中输入该子集的一个用户名和一个虚拟密钥,然后点击页面底部的 Validate Now。如果找不到该用户名,则会收到警告。例如,要检查过滤器是否返回 jsmith,请输入 1234,jsmith

LDAP user ID attribute

LDAP user display name attribute

LDAP user email attribute

LDAP user image attribute

除非 LDAP 管理员另有指示,否则请保持这些设置不变。Polyspace Access 不使用 LDAP 电子邮件和图像属性。

Enable LDAP groups

启用此设置可以从 LDAP 服务器目录导入用户组。

LDAP group base

可以使用 LDAP 资源管理器工具检索此参数。例如,通过 Apache Directory Studio 连接到 LDAP 服务器并搜索要导入的组,然后打开该组的属性。

LDAP group search filter

使用搜索过滤器从 LDAP 数据库检索组的子集。User Manager 在启动时会加载此子集中的组,而非加载组织中的所有组。加载较少数量的组可以提高 Polyspace Access 的性能。

将搜索过滤器指定为 attribute=value,例如,CN=test* 将匹配所有具有以 test 开头的通用名称 (CN) 属性的组。

在 AND (&) 或 OR (|) 子句中使用圆括号组合多个过滤器表达式。例如,(|(CN=Printers)(location=US)) 将匹配具有 CN 属性 Printers 或位置属性 US 的所有组。

有关搜索过滤器的详细信息,请参阅 LDAP 过滤器

LDAP group ID attribute

LDAP group display name attribute

LDAP group membership attribute

除非 LDAP 管理员另有指示,否则请保持这些设置不变。Polyspace Access 不使用 LDAP 显示名称属性。

为基于 SSL 的 LDAP 配置 User Manager

如果使用基于 SSL 的 LDAP 服务器 (LDAPS),请将 LDAPS SSL 证书添加到 Nodes 设置的 CA File 字段中指定的证书信任存储文件中。要查看这些设置,请点击 Cluster Dashboard 上的 Configure Nodes。根据信任存储文件,LDAP SSL 证书可能已包含在信任存储中。

证书信任存储文件通常对应于使用 HTTPS 配置 Cluster Admin 时通过 --ssl-ca-file 提供的文件。请参阅为 Polyspace Access 选择 HTTP 或 HTTPS 配置

例如,在 Linux Debian® 分发版中,要将 LDAP 证书 ldaps_cert.pem 添加到信任存储文件 trust_store.pem,请使用以下命令:

cat trust_store.pem ldaps_cert.pem > combined_cert.pem
该命令将组合两个文件的内容并输出文件 combined_cert.pem。如果您使用自签名证书配置 HTTPS,请将 LDAP 证书添加到自签名证书中。

要完成配置,请在 Nodes 设置的 CA File 字段中输入 combined_cert.pem 的路径,保存更改,返回仪表板,并重新启动 App。

如果未使用 HTTPS 配置 Cluster Admin,请在 CA File 字段中指定 LDAP SSL 证书的路径。

为使用全局目录的 LDAP 服务器配置 User Manager

使用全局目录 (GC) 机制,您可以将来自不同 Active Directory® (AD) 服务器的用户添加到 Polyspace Access,而无需提供有关这些服务器的信息。有关详细信息,请参阅全局目录。如果将 LDAP 服务器配置为使用 GC,则在向 User Manager 服务提供 LDAP URL 时,必须指定特定于 GC 的端口号。默认端口为 3268,或者如果使用安全 LDAP (LDAPS),则端口为 3269。要确定 LDAP 服务器是否配置为使用 GC,请联系您的 LDAP 管理员。

如果指定错误的端口号,则 User Manager 服务将无法与 LDAP 服务器通信。检查 User Manager 日志时,会得到类似于以下所示的错误消息。

LDAP server 'ldap://server01.example.com:389' did not recognize 
base DN 'DC=example,DC=com' and search base ''.
...
Unprocessed Continuation Reference(s)
要将 User Manager 日志保存到文件 out.log,请使用以下命令。
docker logs -t usermanager-server-0-main >> out.log 2>&1

注意

如果运行的是 Polyspace Access™ 版本 R2021b 或更早版本,则 Docker 容器名称可能有所不同。要查看当前正在运行的容器的名称,请使用 docker ps --format '{{.Names}}' 命令。

GC 仅包含来自不同 Active Directory (AD) 服务器的每个用户的部分属性。启用 GC 时,您在 Cluster Operator 设置中指定的 LDAP ID 属性必须在此属性子集中可用。如果该 LDAP ID 在 GC 中不可用,则不会将对应的用户添加到 Polyspace Access。

相关主题