启用安全性之后的访问问题
如果在启用了安全性之后遇到访问问题,请使用此信息。
- 启用安全性之后,无法访问整个或部分管理控制台,或者无法使用 wsadmin 工具
- 启用安全性后无法访问 Web 页面
- 访问 Web 页面时的认证错误
- 访问 Web 页面时的权限错误
- 启用安全性之后,客户机无法访问企业 Bean
- 访问受保护的企业 Bean 时,客户机程序从未收到提示
- 启用安全性之后,无法停止应用程序服务器、节点管理器或节点
在 SystemOut.log 中报告了 AccessControlException 异常
- 启用单点登录后,无法登录到管理控制台
- SECJ0306E: 未接收到调用 凭证或者线程上不存在调用凭证。
- 最初连接到联合存储库时,发生 NameNotFoundException 错误
有关诊断和解决与安全性相关的问题的一般技巧,请参阅安全性组件故障诊断技巧主题。
如果没有看到与您的问题类似的问题,或所提供的信息未解决您的问题,请参阅“IBM 提供的故障诊断帮助”。
启用安全性之后,无法访问整个或部分管理控制台,或者无法使用 wsadmin 工具
如果无法访问管理控制台,或无法查看和更新某些对象,请查看主管管理控制台页面的应用程序服务器的 SystemOut 日志以获取相关的错误消息。
如果无法访问管理控制台,或无法查看和更新某些对象,请查看主管管理控制台页面的应用程序服务器的日志以获取相关的错误消息。
注: 您需要使用管理控制台来完成下 面两项。如果您访问管理控制台时遇到问题,那么必须关闭安全性并重新启动管理控制台。要关闭安全性,请 在系统命令提示符处输入以下命令:
当再次显示系统命令提示符时,请输入:wsadmin.sh -conntype NONE
关闭安全性后重新启动 Deployment Manager。securityoff
- 可能没有授予您用于管理任务的标识。以下错误表明了此问题:
- [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]](../images/ngzos.gif)
启用安全性后无法访问 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
- 复审保护并授予资源访问权的步骤。
浏览服务器 JVM 日志以获取与企业 Bean 访问和安全性相关的错误。在消息表中查找任何错误。
浏览服务器日志以获取与企业 Bean 访问和安全性相关的错误。在消息表中查找任何错误。
类似于调用未授予任何必需角色 roles 的 resource 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 资源的应用程序的授权表。
- 不受保护的 Servlet 或 JavaServer Pages (JSP) 文件访问了受保护的企业 Bean。当访问不受保护的 Servlet 时,不提示用户登录并且 Servlet 作为 UNAUTHENTICATED 运行。当 Servlet 调用受保护的企业 Bean 时,该 Servlet 失败。
如果正在使用本地操作系统和系统授权工具 (ASF) 授权方式,那么检查 SAF EJBROLE 设置。特别要验证
- 是否已激活 EJBROLE 类。
- 是否已对 SAF 定义角色。
- 是否允许该用户标识具有该角色。
- 在允许操作之后是否刷新了类。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- 首先,查看异常中跟在“WSSecurityContext.acceptSecContext(),原因:”之后的文本。通常,此文本描述故障而没有进一步的分析。
- 如果此操作未对问题进行描述,那么查找公共对象请求代理体系结构 (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)
客户机程序从服务器接收到嵌入了 CWWSA1477W: 安全性客户机/服务器配置不匹配错误的 CORBA 初始化异常。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
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)
通常,解决此问题需要对客户机或服务器的安全性配置进行更改。要确定涉及哪个配置设置,查看 CWWSA 错误消息后的文本。有关更详细的说明和指示信息,请选择信息中心导航区的“参考”视图并在导航树中展开“消息”以查看消息参考资料。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- 在 ERROR 1 中,客户机要求 SSL 机密性,但是服务器不支持 SSL 机密性。可以用两种方法之一解决这种不匹配。更新服务器以支持 SSL 机密性或更新客户机以使它不再要求 SSL 机密性。
- 在 ERROR 2 中,服务器要求 SSL 完整性,但是客户机不支持 SSL 完整性。可以用两种方法之一解决这种不匹配。更新服务器以支持 SSL 完整性或更新客户机以使它不再要求 SSL 完整性。
- 在 ERROR 3 中,客户机要求通过用户标识和密码进行客户机认证,但是服务器不支持此类型的客户机认 证。客户机或服务器需要更改配置。要更改客户机配置,修改纯客户机的 SAS.CLIENT.PROPS 文件或在安全性管理控制台中更改服务器的出站配置。要更改目标服务器的配置,可在安全性管理控制台中修改入站配置。
同样,在尝试向客户机请求提供服务的服务器上出现“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 格式规则的描述。另外,验证指定
的路径中是否存在该文件。
有效属性的一个示例 为:C:/WebSphere/AppServer/properties/sas.client.props。
客户机配置不支持消息层客户机认证(用户标识和密码)。验证 sas.client.props 文件是否将以下属性之一设为 true:
- com.ibm.CSI.performClientAuthenticationSupported=true
- com.ibm.CSI.performClientAuthenticationRequired=true
服务器配置不支持消息层客户机认证(包括用户标识和密码)。请与 WebSphere Application Server 管理员进行核实,以验证是否在管理控制台管理工具的“系统管理”部分中针对服务器的入站配置指定了用户标识和密码认证。
启用安全性之后,无法停止应用程序服务器、节点管理器或节点
如果您使用命令行实用程序来停止 WebSphere Application Server 进程,那么在启用安全性之后,请应用其他参数以提供认证和授权信息。
使用 ./stopServer -help 命令
来显示要使用的参数。
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
- ./stopServer serverName -username name -password password
- ./stopNode -username name -password password
- ./stopManager -username name -password password
如果使用 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 错误
服务器尝试间接查找 java:comp/env/ds/wimDS 名称并与联合存储库建立初始 EJB
连接时,SystemOut.log 文件中出现以下错误消息:
服务器尝试间接查找 java:comp/env/ds/wimDS 名称并与联合存储库建立初始 EJB
连接时,相应的日志文件中出现以下错误消息:
NMSV0612W: A NameNotFound Exception
![[z/OS]](../images/ngzos.gif)
NameNotFoundException 错误由 ibm-ejb-jar-bnd.xmi 文件中的 jdbc/wimDS Java 命名和目录接口 (JNDI) 名称的引用绑定定义产生。可以忽略此警告消息。配置 wimDS 数据库存储库后,不会显示该消息。

然而,Java EE 5 或更高版本的模块可以在包含 Java EE 5 之前的文件并使用 .xmi 文件扩展名的应用程序中存在。
ibm-webservices-ext.xmi、ibm-webservices-bnd.xmi、ibm-webservicesclient-bnd.xmi、ibm-webservicesclient-ext.xmi 和 ibm-portlet-ext.xmi 文件继续使用 .xmi 文件扩展名。
sptcfg