Page tree
Skip to end of metadata
Go to start of metadata

在此页:

目标用户:

CAST AI 管理员

摘要:本节描述如何为健康仪表盘配置用户身份验证,包括用户和组。

简介

健康仪表盘有多种可用的身份验证模式:    

模式
描述
注意
默认的身份验证

默认情况下,此模式是激活的,并依赖于在web应用中的application——security——default.xml配置文件定义的简单用户名/密码身份验证。

  • CAST建议使用标准LDAP,因为这避免了必须通过默认身份验证模式手动管理单个用户名和密码。
  • 一次只能激活一个模式


标准LDAP

默认情况下,该模式是非激活的,允许用户使用标准LDAP服务器进行身份验证。例如:

  • 基本的Active Directory域控制器
  • Active Directory家族的其它成员,如ADAM / AD LDS
  • 非微软目录,如Apache, Oracle, Novell等。

请注意,标准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文件,然后重新启动应用程序服务器,使更改生效。

默认的身份验证模式

此模式默认为“开箱即用”,用户名和区分大小写的密码如下(用户名不区分大小写):

用户名
密码
备注
guestmy_passwordNoGroup有关的更多信息,请参见下面的小节。
  • 如果想更改这些现有用户名的密码,或者想添加其它用户名/密码,需要使用文本编辑器修改以下文件:
%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=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 - 配置数据授权)和 角色分配,都支持嵌套组。例如如果用户jdoegroupA的成员,groupA是groupB的成员,groupB用于定义授权或角色,那么jdoe将被赋予groupB授权/角色的属性。

SAML 模式

请参见 使用SAML身份验证获得更多信息。

用户角色——所有身份验证模式的通用用户角色

目前只能向用户授予一个用户角色。这是默认情况下不授予任何用户的管理员角色。角色在以下文件中定义(所有身份验证模式都通用):

%CATALINA_HOME%\webapps\CAST—Health\WEB—INF\roles.xml

注意管理员角色提供了执行以下操作的权限:

  • 能够列出所有应用标签分配访问应用

此外:

  • 具有管理员角色的用户将自动获得访问所有应用的授权(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文件,然后重新启动应用服务器,使更改生效。
  • No labels