在此页:
目标用户:
CAST AI 管理员
摘要:本节描述如何为健康仪表盘配置用户身份验证,包括用户和组。
简介
健康仪表盘有多种可用的身份验证模式:
模式 | 描述 | 注意 |
---|---|---|
默认的身份验证 | 默认情况下,此模式是激活的,并依赖于在web应用中的application——security——default.xml配置文件定义的简单用户名/密码身份验证。 |
|
标准LDAP | 默认情况下,该模式是非激活的,允许用户使用标准LDAP服务器进行身份验证。例如:
请注意,标准LDAP模式的配置需要详细了解环境的LDAP实现——即LDAP管理员应该对此有所帮助。 | |
SAML | 该模式默认为非激活的,允许用户通过SAML进行身份验证。 |
上述模式的激活和配置由web应用中的security.properties配置文件控制。
%CATALINA_HOME%\webapps\CAST——Health\WEB——INF\security.properties
身份验证模式激活
任何身份验证模式的激活都由security.properties文件处理。在“开箱即用”状态下,如下所示默认的安全模式是激活的。一次只能激活一种模式:
# =================== # Security parameters # =================== # Applicable security mode # ———————————————————————————————————————————————— # —— default ——> The initial mode when you deploy the application # —— ldap ——> Set this mode for authentication over LDAP(S) # —— saml ——> Set this mode for authentication over SAML security.mode=default
- 若要激活模式,请将以下行更改为所需的安全模式。例如要将默认身份验证安全模式更改为标准LDAP,请执行以下操作。更改:
security.mode=default
- 为:
security.mode=ldap
- 在进行更改之后,保存security.properties文件,然后重新启动应用程序服务器,使更改生效。
默认的身份验证模式
此模式默认为“开箱即用”,用户名和区分大小写的密码如下(用户名不区分大小写):
用户名 | 密码 | 组 | 备注 |
---|---|---|---|
guest | my_password | NoGroup | 有关组的更多信息,请参见下面的小节。 |
- 如果想更改这些现有用户名的密码,或者想添加其它用户名/密码,需要使用文本编辑器修改以下文件:
%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\users.properties
- 该文件包含以下部分,其中定义了可以访问健康仪表盘的用户名:
guest=my_password,NoGroup,enabled
- 用户定义在一行上。
- 如果用户名或密码包含特殊字符(非US-ANSI字符),如é,è,à,ç,ù,… : 必须确保文本编辑器用iso-8859-1代码保存user.properties文件。
- 启用/禁用条目必须始终放在行尾。
用户
添加一个新用户
要添加新用户,请在用户中添加附加的行到users.properties文件。例如这将添加一个用户名“jhu”和密码“password”,没有组配置:
guest=my_password,NoGroup,enabled jhu=password,NoGroup,enabled
- 在进行更改之后,保存security.properties文件,然后重新启动应用程序服务器,使更改生效。
- 配置特定于新用户(或用户所属的组)的授权(参见HD - 配置数据授权),以授予用户对数据的访问权
- 或者授予用户(或用户所属的组)管理员角色,该角色可以访问所有数据,因此不需要进行授权配置(但是应该谨慎使用此角色)
删除现有用户
要删除现有用户,只需从users.properties文件中删除相应的行。在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
编辑现有用户
要编辑现有用户,只需从users.properties文件中编辑相应的行。在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
禁用用户而不从用户中删除users.properties文件
- 若要禁用用户,请将启用参数更改为禁用:
jhu=password,NoGroup,disabled
- 在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
用户组
可以将用户分组以方便进行授权分配(请参见HD - 配置数据授权)——例如可以将一组用户分配到一个组,然后授权该组查看所需的数据,而不必对单个用户进行授权。组定义在以下文件中:
%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\users.properties
添加一个新组
在本例中,将添加组“CIO”,并将现有用户“jhu”关联到该组:
jhu=password,NoGroup,enabled
- 将NoGroup条目替换为group“CIO”的名称,确保enabled始终位于行尾:
jhu=password,CIO,enabled
- 用户可以是几个组的成员。以下定义现有用户“jhu”为“CIO”及“Users”组别的成员,即以逗号分隔的组别名称:
jhu=password,CIO,Users,enabled
- 在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
标准LDAP模式
请注意,标准LDAP模式的配置需要详细了解环境的LDAP实现——即LDAP管理员应该对此有所帮助。
此模式在默认情况下不启用“开箱即用”。可以与任何LDAP兼容的公司目录一起使用。允许用户使用企业LDAP登录登录到健康仪表盘。CAST提供了占位符参数,因此必须更改这些参数,身份验证才能正常工作。为此在web应用中修改以下配置文件。
%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\security.properties
该文件包含以下部分,其中定义了所需的参数:
# Parameters for ldap mode # ———————————————————————————————————————————————— security.ldap.url=ldap://directory.example.com/ security.ldap.account.dn=cn=serviceaccount,dc=example,dc=com security.ldap.account.password=password security.ldap.account.key= security.ldap.usersearch.base=dc=example,dc=com security.ldap.usersearch.filter=(&(objectClass=user)(sAMAccountName={0})) security.ldap.groupsearch.base=dc=example,dc=com security.ldap.groupsearch.filter=(&(objectClass=group)(member={0}))
- 首先需要更改以下用红色标记的参数,以匹配连接LDAP目录所需的URL和服务帐户:
security.ldap.url=ldap://directory.example.com/
security.ldap.account.dn=cn=serviceaccount,dc=example,dc=com
security.ldap.account.password=password
- 然后需要更改以下与搜索目录中的用户相关的红色参数:
- security.ldap.usersearch.base > 应该从中搜索用户的根树节点
- security.ldap.usersearch.filter > 搜索用户的标准:必须替换“user”和“sAMAccountName”以匹配目录结构
security.ldap.usersearch.base=dc=example,dc=com
security.ldap.usersearch.filter=(&(objectClass=user)(sAMAccountName={0}))
对于某些LDAP服务器,使用security.ldap.usersearch.filter参数可以采用以下形式:
security.ldap.usersearch.filter=(&(objectClass=inetOrgPerson)(uid={0}))
- 在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
- 用户现在应该能够使用企业LDAP登录访问健康仪表盘——因此身份验证是企业LDAP目录的责任。
注意:
- 启用标准LDAP模式将禁用默认身份验证模式
- 如果需要加密登录和密码参数以避免以明文输入值,请参见:HD-ED - 加密数据库和LDAP的登录和密码
- 默认情况下,日志机制被配置为提供日志信息来调试Active Directory身份验证问题——如果在激活Active Directory身份验证时遇到问题,请检查日志文件(参见HD——ED —— 配置日志和审计跟踪以获得关于日志文件位置的更多信息)。
- 默认情况下,LDAP用户最初无法访问任何数据——当用户尝试登录时,将显示错误。因此必须:
- 配置特定于用户(或用户所属的组)的授权(参见HD - 配置数据授权),以授予用户对数据的访问权
- 或者授予用户(或用户所属的组)管理员角色,该角色可以访问所有数据,因此不需要进行授权配置(但是应该谨慎使用此角色)
关于使用LDAPS (SSL上的LDAP)的注意事项
如果LDAP服务器要求使用LDAPS(通过SSL的LDAP),那么必须确保完成以下工作:
在security.ldap中使用ldaps:// URL。参数在%CATALINA_HOME%\webapps\CAST——Health\WEB——INF\security.properties中
- LDAP服务器的SSL证书或父证书(CA)也需要导入到信任库中,用于web应用服务器使用的默认Java实现(即JRE)。要做到这一点,需要在运行web应用服务器的工作站上使用keytool命令行实用程序(与JRE一起提供,请参见https://docs.oracle.com/javase/8/docs/technotes/tools/unix/keytool.html 了解更多信息)。例如:
%JAVA_HOME%\bin\keytool ——importcert ——alias [alias] ——keystore [path——to——jre/lib/security/cacerts] ——file [path——to——certificate——file]
注意,可能会提示输入密钥存储库的密码。默认情况下,此密码设置为“changeit”。
用户组
可以将用户分组以方便进行授权分配(请参见HD - 配置数据授权)——例如,可以将一组用户分配到一个组,然后授权该组查看所需的数据,而不必对单个用户进行授权。在标准LDAP模式下,可以通过以下文件中的配置设置直接从LDAP目录检索组:
%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\security.properties
- 要启用LDAP组检索,请修改security.properties配置文件——重点放在以下部分:
# Parameters for ldap mode # ———————————————————————————————————————————————— security.ldap.url=ldap://directory.example.com/ security.ldap.account.dn=cn=serviceaccount,dc=example,dc=com security.ldap.account.password=password security.ldap.account.key= security.ldap.usersearch.base=dc=example,dc=com security.ldap.usersearch.filter=(&(objectClass=user)(sAMAccountName={0})) security.ldap.groupsearch.base=dc=example,dc=com security.ldap.groupsearch.filter=(&(objectClass=group)(member={0}))
- 需要更改以下用红色标记的参数,以匹配目录的结构:
- security.ldap.groupsearch.base > 应该从中搜索组的根树节点
- security.ldap.groupsearch.filter > 搜索用户的标准:必须替换“group”和“member”以匹配目录结构
- security.ldap.groupsearch.base > 应该从中搜索组的根树节点
security.ldap.groupsearch.base=dc=example,dc=com
security.ldap.groupsearch.filter=(&(objectClass=group)(member={0}))
对于某些LDAP服务器,使用security.ldap.groupsearch.filter参数可以采用以下形式:
security.ldap.groupsearch.filter=(&(objectClass=groupOfNames)(member={0]))
- 在进行任何更改之后,保存security.properties文件,然后重新启动应用服务器,使更改生效。
请注意,对于授权分配(请参见HD - 配置数据授权)和 角色分配,都支持嵌套组。例如如果用户jdoe是groupA的成员,groupA是groupB的成员,groupB用于定义授权或角色,那么jdoe将被赋予groupB授权/角色的属性。
SAML 模式
请参见 使用SAML身份验证获得更多信息。
用户角色——所有身份验证模式的通用用户角色
目前只能向用户授予一个用户角色。这是默认情况下不授予任何用户的管理员角色。角色在以下文件中定义(所有身份验证模式都通用):
%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\roles.xml
注意管理员角色提供了执行以下操作的权限:
- 重新加载健康仪表盘缓存(参见HD - ED — 刷新缓存)
- 创建、更新、删除新类别和带有这些类别的标记的tags.html管理页面(参见HD —— 标签和类别管理)
- 使用标记向标记分配中添加或删除应用tags.html管理页面(参见HD —— 标签和类别管理)
- 能够列出所有应用的标签分配或访问应用
此外:
- 具有管理员角色的用户将自动获得访问所有应用的授权(allApplications授权—请参见HD —— 配置数据授权—配置数据授权)
- 管理特定选项将被添加到用户名按钮当用户被授予管理员角色——参见健康仪表盘以获取更多信息。
- 要将管理员角色授予默认身份验证或LDAP用户,请在roles.xml 文件中输入新行如下(每个用户一行“角色分配”):
<root> <role——assignment user="JHU" role="ADMIN"/> </root>
- 要将管理员角色授予多个默认身份验证或LDAP用户,请在roles.xml 文件中输入新行如下(每个用户一行“角色分配”):
<root> <role——assignment user="JHU" role="ADMIN"/> <role——assignment user="FRA" role="ADMIN"/> </root>
- 还可以将roles.xml文件中的管理员角色授予默认身份验证或LDAP组的所有成员。(同样,每个组有一行“角色分配”)。注意,在为LDAP用户配置角色时,必须使用组的完整公共名称(CN):
<root> <!———— role assignment for an LDAP group ————> <role——assignment group="group.name" role="ADMIN"/> <!———— role assignment for a default authentication group ————> <role——assignment group="CIO" role="ADMIN"/> </root>
- 在进行任何更改之后,保存roles.xml文件,然后重新启动应用服务器,使更改生效。