安全性授权提供程序故障诊断技巧

本文描述使用 Java™ Authorization Contract for Containers (JACC) 授权提供程序时可能遇到的问题。Tivoli® Access Manager 与 WebSphere® Application Server 捆绑在一起,用作授权提供程序。但是,您还可以插入自己的授权提供程序。

作为 Java Authorization Contract for Containers 授权提供程序的 Tivoli Access Manager

注: 本主题引用了一个或多个应用程序服务器日志文件。作为另一种建议采用的方法,您可以在分布式系统和 IBM® i 系统上配置服务器以使用高性能可扩展日志记录 (HPEL) 记录和跟踪基础结构,而不使用 SystemOut.logSystemErr.logtrace.logactivity.log 文件。您还可以将 HPEL 与本机 z/OS® 日志记录设施结合使用。如果要使用 HPEL,那么可从服务器概要文件 bin 目录使用 LogViewer 命令行工具来访问所有日志和跟踪信息。有关使用 HPEL 的更多信息,请参阅有关使用 HPEL 对应用程序进行故障诊断的信息。

Java Authorization Contract for Containers 授权提供程序的外部提供程序

当将外部提供程序用于 JACC 权限时,您可能遇到以下各问题:

JACC 的配置可能失败

如果您配置 JACC 时发生问题,请检查以下各项:

  • 确保参数正确。例如,您不希望 TAM_Policy_server_hostname:7135 后有数字,但希望 TAM_Authorization_server_hostname:7136后有数字(例如,TAM_Authorization_server_hostname:7136:1)。
  • 如果显示了“无法访问服务器”之类的消息,那么可能是 Tivoli Access Manager 服务器的主机名或端口号不正确,也可能是 Tivoli Access Manager 服务器尚未启动。
  • 确保 sec_master 用户的密码正确。
  • 检查 SystemOut.log 并搜索字符串 AMAS 以查看是否存在任何错误消息。

在配置 JACC 后,服务器可能无法启动

如果在配置 JACC 后服务器未启动,请检查以下各项:

  • 确保 WebSphere Application Server 和 Tivoli Access Manager 使用同一个轻量级目录访问协议 (LDAP) 服务器。
  • 如果显示了“Policy Director 认证失败”消息,请确保:
    • WebSphere Application Server LDAP 服务器标识与 Tivoli Access Manager JACC 配置面板中的“管理员用户”相同。
    • 验证 Tivoli Access Manager 管理员专有名称 (DN) 是否正确。
    • 验证 Tivoli Access Manager 管理员的密码是否未到期并且有效。
    • 确保帐户对 Tivoli Access Manager 管理员有效。
  • 如果显示了“无法为 xxxx 打开套接字”之类的消息(其中 xxxx 是数字),请完成以下操作:
    1. 切换到 profile_root/etc/tam 目录。
    2. 如果 Deployment Manager 无法启动,那么在 amwas.commomconfig.properties 文件和 amwas*cellName_dmgr.properties 文件中将 xxxx更改为可用的端口号。如果节点无法启动,那么在 amwas*cellName_nodeName_.properties 文件中将 xxx 更改为可用的端口号。如果应用程序服务器无法启动,那么 amwas*cellname_nodeName_serverName.properties 文件中更改 xxxx

应用程序可能未正确部署

当您单击保存时,策略和角色信息将传播到 Tivoli Access Manager 策略。此过程可能要花一些时间来完成。如果保存失败,那么您必须卸载此应用程序然后重新安装它。

要在安装应用程序后访问它,缺省情况下,必须在保存后等待 30 秒才能启动此应用程序。

startServer 命令可能会失败

在您配置 Tivoli Access Manager 后 startServer 命令可能失败,或取消配置 JACC 后完全卸载没有发生。

如果在配置 JACC 后,JACC 取消配置的清除或启动服务器失败,那么请完成以下操作:
  • WebSphere Application Server 中移除 Tivoli Access Manager 属性文件。对于定义了 N 个服务器(例如 server1 和 server2)的 WebSphere Application Server Network Deployment (ND) 环境中的每个应用程序服务器。
    [AIX Solaris HP-UX Linux Windows][z/OS]必须移除下列文件。
    install_root/tivoli/tam/PdPerm.properties 
    install_root/tivoli/tam/PdPerm.ks
    profile_root/etc/tam/*
    [IBM i]必须移除下列文件。
    profile_root/etc/pd/PolicyDirector/PDPerm.properties 
    profile_root/etc/pd/PolicyDirector/PdPerm.ks
    profile_root/etc/tam/*
  • 使用实用程序清除安全配置,并将系统返回到配置 Tivoli Access Manager JACC 提供程序前的状态。实用程序会从 security.xml 文件中移除所有 PDLoginModuleWrapper 条目和 Tivoli Access Manager 授权表条目,从而有效地移除 Tivoli Access Manager JACC 提供程序。在运行此实用程序前备份 security.xml 文件。
    [AIX Solaris HP-UX Linux Windows][z/OS]输入以下命令:
    install_root/java/jre/bin/java -classpath 
    “install_root/lib/AMJACCProvider.jar:CLASSPATH”
    com.tivoli.pd.as.jacc.cfg.CleanSecXML fully_qualified_path/security.xml
    [IBM i]输入以下命令:
    java -Djava.version=1.5 -classpath 
    “app_server_root/lib/AMJACCProvider.jar:CLASSPATH”
    com.tivoli.pd.as.jacc.cfg.CleanSecXML fully_qualified_path/security.xml

“HPDIA0202W: 向 Access Manager 提供了未知的用户名”

如果您尝试将本地目录访问协议 (LDAP) 用户注册表中的现有用户与 Tivoli Access Manager 结合使用,那么可能遇到以下错误消息:
AWXJR0008E   Failed to create a PDPrincipal for principal mgr1.: 
AWXJR0007E   A Tivoli Access Manager exception was caught. Details are:
“HPDIA0202W  An unknown user name was presented to Access Manager.”
此问题可能是在针对 MS Active Directory 进行配置时,主机名超过 Tivoli Access Manager 的预定义限制而引起的。在 WebSphere Application Server 中,主机名的最大长度不得超过 46 个字符。

确定主机名不是全限定的。配置该机器,以便主机名不包含主机域。

要更正此错误,请完成以下各步骤:
  1. 在命令行上,输入以下信息以获取 Tivoli Access Manager 命令提示符:
    pdadmin -a administrator_name -p administrator_password
    这时将显示 pdadmin administrator_name 提示符。例如:
    pdadmin -a administrator1 -p passw0rd
  2. 在 pdadmin 命令提示符下,通过输入以下信息将用户从 LDAP 用户注册表导入到 Tivoli Access Manager:
    user import user_name cn=user_name,o=organization_name,c=country
    例如:
    user import jstar cn=jstar,o=ibm,c=us
在将用户导入到 Tivoli Access Manager 后,必须使用 user modify 命令将用户帐户设置为 valid。以下语法会显示如何使用此命令:
user modify user_name account-valid yes
例如:
user modify jstar account-valid yes

有关如何将组从 LDAP 导入到 Tivoli Access Manager 的信息,请参阅 Tivoli Access Manager 文档。

“HPDAC0778E: 指定的用户帐户设置为无效”

在您将用户导入到 Tivoli Access Manager 并重新启动客户机后,可能遇到以下错误消息:
AWXJR0008E    Failed to create a PDPrincipal for principal mgr1.: 
AWXJR0007E    A Tivoli Access Manager exception was caught. 
Details are: "HPDAC0778E   The specified user's account is set to invalid."
要更正此错误,请使用 user modify 命令将用户帐户设置为有效。以下语法会显示如何使用此命令:
user modify user_name account-valid yes
例如:
user modify jstar account-valid yes

“HPDJA0506E: 参数无效:ACL 条目的用户名字段为 Null 或者长度为零”

当您使用 wsadmin propagatePolicyToJACCProvider 命令将安全策略信息从应用程序传播到提供程序时,可能遇到类似于以下消息的错误:
AWXJR0035E   An error occurred while  attempting to add member, 
                cn=agent3,o=ibm,c=us, to role AgentRole
HPDJA0506E   Invalid argument: Null or zero-length user name field for 
                the ACL entry

要更正此错误,请创建或导入用户,将此用户映射至 Tivoli Access Manager 的安全角色。有关安全策略信息的更多信息,请参阅授权提供程序的文档。

WASX7017E: 运行“InsuranceServicesSingle.jacl”文件时接收到异常

在启用 JACC 提供程序和 Tivoli Access Manager 后,当尝试安装应用程序(用使用 wsadmin 命令的安全角色配置)时,可能发生以下错误:
WASX7017E: Exception received while running file "InsuranceServicesSingle.jacl"; 
exception information: com.ibm.ws.scripting.ScriptingException: WASX7111E: 
Cannot find a match for supplied option: 
"[RuleManager, , , cn=mgr3,o=ibm,c=us|cn=agent3,o=ibm,c=us, cn=ManagerGro
up,o=ibm,c=us|cn=AgentGroup,o=ibm,c=us]" for task "MapRolesToUsers"

将 Tivoli Access Manager 用作授权服务器时,$AdminApp MapRolesToUsers 任务选项不再有效。要更正错误,请将 MapRolesToUsers 更改为 TAMMapRolesToUsers。

使用 JACC 访问应用程序时,发生“访问被拒绝”异常

对于 Tivoli Access Manager,您可能会看到以下错误消息。
AWXJR0044E: The access decision for Permission, {0}, was denied because either the 
PolicyConfiguration or RoleConfiguration objects did not get created successfully at 
application installation time. RoleConfiguration exists = {false}, PolicyConfiguration 
exists = {"false"}.

如果“访问被拒绝”异常不是应用程序所期望的,那么检查 SystemOut.log 文件以查看是否已将安全策略信息正确地传播到提供程序。

如果应用程序的安全策略信息成功地传播到提供程序,那么显示消息密钥为 SECJ0415I 的审计声明。但是,如果将安全策略信息传播到提供程序时发生出现问题(例如,网络问题或 JACC 提供程序不可用),那么 SystemOut.log 文件包含消息密钥为 SECJ0396E 的错误消息(安装期间)或消息密钥为 SECJ0398E 的错误消息(修改期间)。由于将安全策略传播到 JACC 提供程序失败,所以未停止应用程序的安装。同样,如果发生故障,那么保存操作期间不会出现异常或错误消息。当导致此故障的问题已解决时,请运行 propagatePolicyToJaccProvider 工具将安全策略信息传播到提供程序,而不必重新安装应用程序。

“HPDBA0219E: 通过 SSL 连接读取数据时发生错误”

WebSphere Application Server Network Deployment (ND) 上安装应用程序并启用具有 Tivoli­ Access Manager 的受管节点时,在 dmgr SystemOut.log 中可能会出现错误消息 HPDBA0219E。

如果发生此错误,那么可能无法立即获得最近部署的应用程序的安全策略数据。何时可获得策略数据取决于 Tivoli Access Manager 的服务器复制时间。此时间缺省为在所有更新都已完成之后 30 秒。要确保可获得最新的策略数据,请登录到 pdadmin 控制台并输入:server replicate

[z/OS]

可能会发生“端口集中没有可用的端口”错误

使用 Tivoli Access Manager 作为 JACC 提供程序并使用管理控制台或 wsadmin 脚本来停止 WebSphere Application Server 时,将针对 Tivoli Access Manager 运行清除进程。WebSphere Application Server 无法完成该清除进程。

WebSphere Application Server 对每个新进程使用不同的端口号。最终,应用程序服务器将会为了连接到 Tivoli Access Manager 服务器而用尽端口号,并显示“端口集中没有可用的端口”错误。

如果发生此错误,那么您必须手动清除可用于 WebSphere Application Server 进程的端口。


指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_jacctroubles
文件名:rsec_jacctroubles.html