启用安全性之后的访问问题

如果在启用了安全性之后遇到访问问题,请使用此信息。

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

[AIX Solaris HP-UX Linux Windows][IBM i]有关诊断和解决与安全性相关的问题的一般技巧,请参阅安全性组件故障诊断技巧主题。

[AIX Solaris HP-UX Linux Windows][IBM i]如果没有看到与您的问题类似的问题,或所提供的信息未解决您的问题,请参阅“IBM 提供的故障诊断帮助”。

启用安全性之后,无法访问整个或部分管理控制台,或者无法使用 wsadmin 工具

  • [AIX Solaris HP-UX Linux Windows][IBM i]如果无法访问管理控制台,或无法查看和更新某些对象,请查看主管管理控制台页面的应用程序服务器的 SystemOut 日志以获取相关的错误消息。
  • [z/OS]如果无法访问管理控制台,或无法查看和更新某些对象,请查看主管管理控制台页面的应用程序服务器的日志以获取相关的错误消息。
    注: 您需要使用管理控制台来完成下 面两项。如果您访问管理控制台时遇到问题,那么必须关闭安全性并重新启动管理控制台。要关闭安全性,请 在系统命令提示符处输入以下命令:
    wsadmin.sh -conntype NONE
    当再次显示系统命令提示符时,请输入:
    securityoff
    关闭安全性后重新启动 Deployment Manager。
  • 可能没有授予您用于管理任务的标识。以下错误表明了此问题:
    • [8/2/02 10:36:49:722 CDT] 4365c0d9 RoleBasedAuth A CWSCJ0305A: 在资源服务器和模块服务器上调用方法 getProcessType 时,安全性名称 MyServer/myUserId 和 accessId MyServer/S-1-5-21-882015564-4266526380-2569651501-1005 的基于角色的授权检查失败。
    • 异常消息:“CWWMN0022E: 拒绝对服务器 MBean 上 getProcessType 操作的访问”
    • 运行此命令时:mand: wsadmin -username j2ee -password j2ee: CWWAX7246E: 由于认证失败,无法建立到主机“BIRKT20”的“SOAP”连接。确保命令行上或属性文件中的用户和密码正确。
    要授予标识管理权限,请从管理控制台中单击系统管理 > 控制台用户并验证此标识是否为成员。如果标识不是成员,那么添加至少具有监视员访问特权的标识,以用于只读访问。
  • 验证是否已启用可信应用程序功能。如果 WebSphere Application Server 对 RACF 类 FACILITY 以及 BBO.TRUSTEDAPPS.<单元短名称>.<集群短名称> 的概要文件具有 SAF 访问权 READ,那么表明已启用可信应用程序功能。
[z/OS]切记: 如果您处于 WebSphere Application Server Network Deployment 环境,并且保存安全设置后 Node Agent 关闭,那么表明您可能遇到了同步问题。

启用安全性后无法访问 Web 页面

当所保护的资源不可访问时,可能的原因包括:
  • 认证错误 - WebSphere Application Server 安全性功能无法识别人员或进程的标识。认证错误的症状包含:
    在 Netscape 浏览器中:
    • 尝试登录后显示授权失败。要重试吗?的消息。
    • 当单击“取消”以停止重试时,接受任何次数的登录重试并显示错误 401 消息。
    • 典型的浏览器消息显示:错误 401:Basic realm='Default Realm'
    在 Internet Explorer 浏览器中:
    • 尝试登录后,再次显示登录提示。
    • 允许尝试进行重试登录三次。
    • 三次不成功的重试后,将显示错误 401 消息。
  • 授权错误 - 安全性功能已将请求人员或进程标识为未授权访问受保护的资源。授权错误的症状包含:
    • Netscape 浏览器:显示了“Error 403:AuthorizationFailed”消息。
    • Internet Explorer:
      • 显示了“You are not authorized to view this page”消息。
      • 另外,还显示了“HTTP 403 Forbidden”错误。
  • SSL 错误 - WebSphere Application Server 安全性功能在内部使用安全套接字层 (SSL) 技术对自己的通信进行保护和加密,不正确地配置内部 SSL 设置可能会引起问题。另外,您可能对自己的 Web 应用程序或企业 Bean 客户机通信启用了 SSL 加密,不正确地配置此加密可能会引起问题,而与是否启用了 WebSphere Application Server 安全性无关。
    • 与 SSL 相关的问题通常由包含类似于以下的陈述的错误消息指示:错误:无法获取初始上下文或找不到起始上下文。正在退出。并且,后面跟着 javax.net.ssl.SSLHandshakeException

启用安全性之后,客户机无法访问企业 Bean

如果启用安全性之后,客户机访问企业 Bean 失败,那么:
  • 复审保护并授予资源访问权的步骤。
  • [AIX Solaris HP-UX Linux Windows][IBM i]浏览服务器 JVM 日志以获取与企业 Bean 访问和安全性相关的错误。在消息表中查找任何错误。

    [z/OS]浏览服务器日志以获取与企业 Bean 访问和安全性相关的错误。在消息表中查找任何错误。

    类似于调用未授予任何必需角色 rolesresource securityName:/UNAUTHENTICATED;accessId:UNAUTHENTICATED 时,/UNAUTHENTICATED 授权失败的错误表明:
    • 不受保护的 Servlet 或 JavaServer Pages (JSP) 文件访问了受保护的企业 Bean。当访问不受保护的 Servlet 时,不提示用户登录并且 Servlet 作为 UNAUTHENTICATED 运行。当 Servlet 调用受保护的企业 Bean 时,该 Servlet 失败。

      要解决此问题,保护正在访问受保护的企业 Bean 的 Servlet。确保将 Servlet 的 runAs 属性设置为可以访问企业 Bean 的标识。

    • 未经认证的 Java 客户机程序正在访问受保护的企业 Bean 资源。如果客户机程序使用的 sas.client.props 属性文件读取的文件的 securityEnabled 标志未设为 true,那么会出现这种情况。

      要解决此问题,确保客户机端上的 sas.client.props 文件的 securityEnabled 标志已设为 true

    类似于“调用资源时,对 valid_user 授权失败,securityName:/username;accessId:xxxxxx 未被赋予任何所需角色”的错误表明,客户机尝试访问受保护的企业 Bean 资源,但是提供的用户标识未被赋予该企业 Bean 所需的角色。
    • 检查是否已访问企业 Bean 资源必需的角色。请在 Web 资源的部署描述符中查看企业 Bean 资源所需的角色。
    • 检查授权表并确保为用户或用户所属的组指定必需角色中的一个。可以使用管理控制台来查看包含企业 Bean 资源的应用程序的授权表。
  • [z/OS]如果正在使用本地操作系统和系统授权工具 (ASF) 授权方式,那么检查 SAF EJBROLE 设置。特别要验证
    • 是否已激活 EJBROLE 类。
    • 是否已对 SAF 定义角色。
    • 是否允许该用户标识具有该角色。
    • 在允许操作之后是否刷新了类。
[AIX Solaris HP-UX Linux Windows][IBM i]程序化地登录以访问受保护的企业 Bean 时,如果发生 org.omg.CORBA.NO_PERMISSION 异常,那么表明服务器上已发生认证异常。通常,CORBA 异常由底层 com.ibm.WebSphereSecurity.AuthenticationFailedException 触发。要确定认证异常的实际原因,检查完整的跟踪堆栈:
  1. 首先,查看异常中跟在“WSSecurityContext.acceptSecContext(),原因:”之后的文本。通常,此文本描述故障而没有进一步的分析。
  2. 如果此操作未对问题进行描述,那么查找公共对象请求代理体系结构 (CORBA) 次代码。这些代码在标题为对安全性组件引用进行故障诊断的文 章中列出。
    例如,以下异常表明 49424300 的 CORBA 次代码。CORBA 次代码表中此错误的说明为:
    authentication failed error
    在这种情况下,客户机程序提供的用户标识或密码无效:
    org.omg.CORBA.NO_PERMISSION: Caught WSSecurityContextException in 
    WSSecurityContext.acceptSecContext(), reason: Major Code[0] Minor Code[0] 
    Message[ Exception caught invoking authenticateBasicAuthData from SecurityServer 
    for user jdoe. Reason: com.ibm.WebSphereSecurity.AuthenticationFailedException] 
    minor code: 49424300 completed: 
    No at com.ibm.ISecurityLocalObjectBaseL13Impl.PrincipalAuthFailReason.map_auth_fail_to_minor_code 
    (PrincipalAuthFailReason.java:83)

[AIX Solaris HP-UX Linux Windows][IBM i]客户机程序从服务器接收到嵌入了 CWWSA1477W: 安全性客户机/服务器配置不匹配错误的 CORBA 初始化异常。

[AIX Solaris HP-UX Linux Windows][IBM i]此错误表明服务器的安全性配置在某个基本方面与客户机的不同。完整的异常消息列出特定的不匹配。例如,以下异常列出三个错误:
Exception received: org.omg.CORBA.INITIALIZE:
CWWSA1477W: SECURITY CLIENT/SERVER CONFIG MISMATCH:
The client security configuration (sas.client.props or outbound settings in 
administrative console) does not support the server security configuration for 
the following reasons: 
ERROR 1: CWWSA0607E: The client requires SSL Confidentiality but the server does not support it.
ERROR 2: CWWSA0610E: The server requires SSL Integrity but the client does not support it.
ERROR 3: CWWSA0612E: The client requires client (e.g., userid/password or token), 
         but the server does not support it. 
     minor code: 0 
     completed: No at 
com.ibm.ISecurityLocalObjectBaseL13Impl.SecurityConnectionInterceptor.getConnectionKey
(SecurityConnectionInterceptor.java:1770)

[AIX Solaris HP-UX Linux Windows][IBM i]通常,解决此问题需要对客户机或服务器的安全性配置进行更改。要确定涉及哪个配置设置,查看 CWWSA 错误消息后的文本。有关更详细的说明和指示信息,请选择信息中心导航区的“参考”视图并在导航树中展开“消息”以查看消息参考资料。

[AIX Solaris HP-UX Linux Windows][IBM i]在这些特殊情况下:
  • 在 ERROR 1 中,客户机要求 SSL 机密性,但是服务器不支持 SSL 机密性。可以用两种方法之一解决这种不匹配。更新服务器以支持 SSL 机密性或更新客户机以使它不再要求 SSL 机密性。
  • 在 ERROR 2 中,服务器要求 SSL 完整性,但是客户机不支持 SSL 完整性。可以用两种方法之一解决这种不匹配。更新服务器以支持 SSL 完整性或更新客户机以使它不再要求 SSL 完整性。
  • 在 ERROR 3 中,客户机要求通过用户标识和密码进行客户机认证,但是服务器不支持此类型的客户机认 证。客户机或服务器需要更改配置。要更改客户机配置,修改纯客户机的 SAS.CLIENT.PROPS 文件或在安全性管理控制台中更改服务器的出站配置。要更改目标服务器的配置,可在安全性管理控制台中修改入站配置。

[AIX Solaris HP-UX Linux Windows][IBM i]同样,在尝试向客户机请求提供服务的服务器上出现“org.omg.CORBA.INITIALIZE: JSAS0477W: 客户机/服务器安全性配置不匹配:”之类的异常表明,客户机与服务器之间存在安全性配置不匹配问题。解决此问题的步骤与解决先前描述的 JSAS1477W 异常的步骤相同。

访问受保护的企业 Bean 时,客户机程序从未收到提示

虽然看似启用了安全性并且企业 Bean 也处于受保护状态,但是偶尔也会出现客户机未经提示就运行远程方法的情况。如果远程方法是受保护的,那么会发生授权故障。否则,作为未认证的用户运行此方法。

可能会造成此问题的原因包括:
  • 您正通信的服务器可能未启用安全性。请与 WebSphere Application Server 管理员进行核实,以确保启用服务器安全性。可以从管理控制台的“安全性”部分中访问安全设置。
  • 客户机没有在 sas.client.props 文件中启用安全性。编辑 sas.client.props 文件以确保将属性 com.ibm.CORBA.securityEnabled 设为 true
  • 客户机没有指定 ConfigURL。验证是否使用 -D 参数在 Java 客户机的命令行上指定了属性 com.ibm.CORBA.ConfigURL。
  • 指定的 ConfigURL 的 URL 语法无效,或者找不到所指向的 sas.client.props。验证 com.ibm.CORBA.ConfigURL 属性是否有效。请检查 Java 文档,以了解对 URL 格式规则的描述。另外,验证指定 的路径中是否存在该文件。

    [AIX Solaris HP-UX Linux Windows][Windows]有效属性的一个示例 为:C:/WebSphere/AppServer/properties/sas.client.props

  • [AIX Solaris HP-UX Linux Windows][IBM i]客户机配置不支持消息层客户机认证(用户标识和密码)。验证 sas.client.props 文件是否将以下属性之一设为 true
    • com.ibm.CSI.performClientAuthenticationSupported=true
    • com.ibm.CSI.performClientAuthenticationRequired=true
  • [AIX Solaris HP-UX Linux Windows][IBM i]服务器配置不支持消息层客户机认证(包括用户标识和密码)。请与 WebSphere Application Server 管理员进行核实,以验证是否在管理控制台管理工具的“系统管理”部分中针对服务器的入站配置指定了用户标识和密码认证。

启用安全性之后,无法停止应用程序服务器、节点管理器或节点

如果您使用命令行实用程序来停止 WebSphere Application Server 进程,那么在启用安全性之后,请应用其他参数以提供认证和授权信息。

[AIX Solaris HP-UX Linux Windows][IBM i]使用 ./stopServer -help 命令 来显示要使用的参数。

[AIX Solaris HP-UX Linux Windows][IBM i]启用安全性之后使用以下命令选项:
  • ./stopServer serverName -username name -password password
  • ./stopNode -username name -password password
  • ./stopManager -username name -password password

[AIX Solaris HP-UX Linux Windows]如果使用 Windows 服务面板或 net stop 命令来停止 WebSphere Application Server 进程,但却未能停止该服务,请使用其他停止参数来更新现有的应用程序服务器服务。在更新服务之前,可能需要从任务管理器结束服务器进程。请使用 -stopArgs-encodeParams 参数来更新服务,如 WASService 命令一文中的“更新现有应用程序服务器服务”示例所述。

启用单点登录后,无法登录到管理控制台

启用单点登录 (SSO) 后,尝试使用服务器短名称(例如 http://myserver:port_number/ibm/console)访问管理控制台时,出现此问题。服务器接受您的用户标识和密码,但返回到登录页面而不是管理控制台。

要解决此问题,请使用服务器的标准主机名,例如 http://myserver.mynetwork.mycompany.com:9060/ibm/console。

SECJ0306E: 未接收到调用 凭证或者线程上不存在调用凭证。

在配置期间,如果未使单元中的一个或多个节点同步,那么会显示以下消息:
SECJ0306E: No received or invocation credential exists on the thread. The Role based 
authorization check will not have an accessId of the caller to check. The parameters 
are: access check method getServerConfig on resource FileTransferServer and module 
FileTransferServer. The stack trace is java.lang.Exception: Invocation and received 
credentials are both null. 

确保已使每个节点同步,然后重新启动 Deployment Manager。

最初连接到联合存储库时,发生 NameNotFoundException 错误

[AIX Solaris HP-UX Linux Windows][IBM i]服务器尝试间接查找 java:comp/env/ds/wimDS 名称并与联合存储库建立初始 EJB 连接时,SystemOut.log 文件中出现以下错误消息:

[z/OS]服务器尝试间接查找 java:comp/env/ds/wimDS 名称并与联合存储库建立初始 EJB 连接时,相应的日志文件中出现以下错误消息:

NMSV0612W: A NameNotFound Exception
[z/OS]注: 因为 z/OS 操作系统上不存在 SystemOut.log 文件,所以请检查 z/OS 操作系统上相应作业日志的输出。

NameNotFoundException 错误由 ibm-ejb-jar-bnd.xmi 文件中的 jdbc/wimDS Java 命名和目录接口 (JNDI) 名称的引用绑定定义产生。可以忽略此警告消息。配置 wimDS 数据库存储库后,不会显示该消息。

支持的配置 支持的配置: 对于 IBM 扩展文件和绑定文件,根据您使用的是 Java EE 5 之前的应用程序或模块还是 Java EE 5 或之后的应用程序或模块,.xmi 或 .xml 文件扩展名有所不同。IBM 扩展文件或绑定文件将命名为 ibm-*-ext.xmi 或 ibm-*-bnd.xmi,其中 * 是扩展文件或绑定文件的类型,例如,app、application、ejb-jar 或 web。存在下列条件:
  • 对于使用 V5 之前的 Java EE 版本的应用程序或模块,文件扩展名必须是 .xmi。
  • 对于使用 Java EE 5 或更高版本的应用程序或模块,文件扩展名必须是 .xml。如果应用程序或模块中包含 .xmi 文件,那么产品将忽略这些 .xmi 文件。

然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。

ibm-webservices-ext.xmiibm-webservices-bnd.xmiibm-webservicesclient-bnd.xmiibm-webservicesclient-ext.xmiibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。

sptcfg

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



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