启动 WLS 时的身份验证错误

启动 WLS 时的身份验证错误

问题描述
WebLogic Server 不启动,并抛出与管理密码、管理授权或 LDAP 有关的错误。
 
故障排除
请注意,并非下面所有任务都需要完成。有些问题仅通过执行几项任务就可以解决。

快速链接
  • 为什么发生此问题?
    • 启动身份无效(WLS 7.0 和 WLS 8.1)
    • 内嵌的 LDAP:丢失管理密码(WLS 7.0 和 WLS 8.1)
    • 内嵌的 LDAP:更改管理密码后被管服务器不启动(WLS 7.0 和 WLS 8.1)
    • WebLogic 服务器与 LDAP 服务器连接失败(WLS 7.0 和 WLS 8.1)
    • LDAP 服务器:连接错误(WLS 7.0 和 WLS 8.1)
    • LDAP 服务器:WebLogic 管理用户启动服务器时被拒绝(WLS 7.0 和 WLS 8.1)
    • WebLogic 作为 NT 服务:错误 1058
    • WebLogic 作为 NT 服务:错误 1067
    • File Realm 中的系统用户密码损坏 (WLS 6.1)
  • 如何设置调试标志
  • 已知的 WebLogic Server 问题

为什么发生此问题?
要启动 WebLogic Server 实例,必须提供拥有服务器启动权限的用户的 Credential。
将根据某个安全 Realm(即 File Realm、LDAP、RDBMS LDAP 等)检查 Credential。如果启动时提供的信息与安全 Realm 中的信息不匹配,或安全 Realm 损坏,WebLogic Server 将不会启动。

下面是在若干种情况下查明故障和解决问题的方法。

启动身份无效(WLS 7.0 和 WLS 8.1)
启动 WebLogic Server 时抛出以下错误:
The WebLogic Server did not start up properly.
Reason: weblogic.security.SecurityInitializationException: Authentication denied: Boot identity not valid;
该错误表明启动身份文件 (boot.properties) 中的用户名和/或密码无效。可能是在创建启动身份文件后更改过启动身份。请使用正确的用户名和密码编辑和更新启动身份文件。首次使用更新后的启动身份文件启动服务器时会将这些新值加密。
解决方法

以明文形式更改 boot.properties 中的参数值。“boot.properties”通常位于域根目录中。
例如:
username=weblogic
password=weblogic812
设置属性后,重新启动服务器。
返回页首

内嵌的 LDAP:丢失管理密码(WLS 7.0 和 WLS 8.1)

管理密码已丢失。

解决方法:
由于没有覆盖用户 ID 密码的方法,因此必须创建新的管理员用户 ID,然后使用它来启动 WebLogic。以下是丢失管理员密码后恢复管理用户的步骤。
假定创建了一个用户 ID“adminuser”,密码是“weblogic”

  1. 将目录更改为域目录:cd mydomain
  2. java -cp D:\bea\weblogic615\server\lib\weblogic.jar weblogic.security.utils.AdminAccount adminuser weblogic . (注意:命令的末尾有一个句点)
  3. rm myserver/ldap/DefaultAuthenticatormyrealmInit.initialized
  4. rm boot.properties(如果有)
  5. 以“adminuser”为管理员用户 ID 重新启动管理服务器
返回页首  

内嵌的 LDAP:更改管理密码后被管服务器无法启动(WLS 7.0 和 WLS 8.1)
WebLogic Server 无法正常启动。
抛出了异常:

weblogic.management.configuration.ConfigurationException: [Configuration Management:150021]The admin
server failed to authenticate the identity of the user weblogic starting the managed server. The reason for the error is .
解决方法
如果更改管理密码时被管服务器有故障,就会出现该异常。
删除被管服务器中的 ldap 目录。
LDAP 目录位于被管根目录下,名称是 ldap。
如果被管服务器名称为 myManaged1,则 LDAP 目录将是 ./myManaged1/ldap

WebLogic Server 与 LDAP 服务器连接失败
抛出错误,说明 WLS 与 LDAP 服务器连接失败。可能的成因是 LDAP Server 未启动或主机地址和/或端口无效 

<13 juil. 2004 16 h 42 CEST> <Debug> <SecurityDebug> <000000> <new LDAP connection to host localhost port 389 use local connection is false>
<13 juil. 2004 16 h 42 CEST> <Debug> <SecurityDebug> <000000> <created new LDAP connection LDAPConnection { ldapVersion:2 bindDN:""}>
<13 juil. 2004 16 h 42 CEST> <Debug> <SecurityDebug> <000000> <connection failed netscape.ldap.LDAPException: failed to connect to server ldap://localhost:389 (91)>
解决方法
  • 验证 LDAP 服务器是否已启动
  • 验证主机地址和端口是否有效
返回页首

LDAP 服务器:连接错误(错误 49)

<30 juin 2004 15 h 07 CEST> <Debug> <SecurityDebug> <000000> <new LDAP connection to host localhost port 389 use local connection is false>
<30 juin 2004 15 h 07 CEST> <Debug> <SecurityDebug> <000000> <created new LDAP connection LDAPConnection { ldapVersion:2 bindDN:""}>
<30 juin 2004 15 h 07 CEST> <Debug> <SecurityDebug> <000000> <connection failed netscape.ldap.LDAPException: error result (49)>
解决方法
提供的用于连接 LDAP 服务器的用户 ID 无效。
检查 config.xml 并验证以下参数:
  Credential="weblogic"
  Principal="uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot
       <weblogic.security.providers.authentication.IPlanetAuthenticator
            ControlFlag="SUFFICIENT"
            Credential="weblogic"
            GroupBaseDN="ou=groups"
            Name="Security:Name=RealmIPlanetAuthenticator"
            Principal="uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot"
            Realm="Security:Name=Realm" UserBaseDN="dc=bea,dc=com"/>

要解决该问题,请使用以下方法之一更正 uid 或密码 (Credential),然后重新启动 WebLogic Server。
  1. 编辑 config.xml 并更改 uid 或密码,然后重新启动
  2. 将 config.xml.booted 复制到 config.xml,重新启动服务器,然后更改 Credential(uid/密码)

返回页首

LDAP 服务器:WebLogic 管理用户启动服务器时被拒绝
WebLogic Server 管理用户在启动服务器时可能遭到拒绝。三个可能的成因如下:

  1. 与 LDAP 连接时发生错误 32
  2. 与 LDAP 连接时身份验证失败
  3. 不允许用户 XXXXXX 启动服务器

1. 与 LDAP 连接时发生错误 32
<30 juin 2004 15 h 10 CEST> <Debug> <SecurityDebug> <000000> <connection succeeded>
<30 juin 2004 15 h 10 CEST> <Debug> <SecurityDebug> <000000> <DN for user weblogic: uid=weblogic,dc=bea,dc=com>
<30 juin 2004 15 h 10 CEST> <Debug> <SecurityDebug> <000000> <search("ou=groups", "(&(uniquemember=uid=weblogic,dc=bea,d
c=com)(objectclass=groupofuniquenames))", base DN & below)>
<30 juin 2004 15 h 10 CEST> <Debug> <SecurityDebug> <000000> <returnConnection conn:LDAPConnection {ldap://localhost:389
 ldapVersion:3 bindDN:"uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot"}>
netscape.ldap.LDAPException: error result (32)

解决方法
在 LDAP 中未找到 WebLogic 应在与 LDAP 连接时使用的 LDAP 用户(本例中为“weblogic”),因此必须创建该用户。

关于创建用户 ID 的方法,请参考 LDAP 服务器文档。

2. 与 LDAP 连接时身份验证失败
<30 juin 2004 15 h 29 CEST> <Debug> <SecurityDebug> <000000> <returnConnection conn:LDAPConnection {ldap://localhost:389
 ldapVersion:3 bindDN:"uid=admin, ou=Administrators, ou=TopologyManagement, o=NetscapeRoot"}>
javax.security.auth.login.FailedLoginException: [Security:090302]Authentication Failed: User admin denied

解决方法:
config.xml. 中的管理用户密码错误。

更改 config.xml 中的“credential”以使用正确的密码。

<weblogic.security.providers.authentication.IPlanetAuthenticator
            Credential="weblogic"  

3. 不允许用户 XXXXXX 启动服务器
<30 juin 2004 16 h 40 CEST> <Critical> <Security> <BEA-090404> <User weblogic is not permitted to boot the server;
The server policy may have changed in such a way that the user is no longer able to boot the server.
Reboot the server with the administrative user account or contact the system administrator to update the server policy definitions.>

解决方法
LDAP 管理员组中没有与 LDAP 连接所使用的 LDAP 用户“weblogic”。
将此用户添加到管理员组。有关说明,请参考 LDAP 文档。

返回页首

WebLogic 作为 NT 服务:错误 1058
WLS 无法在 Windows 2000 上作为 Windows NT 服务启动,并产生以下错误:
“Could not start the <Service Name> service on \\<Computer Name>.Error 1058:The specified service is disabled and cannot be started.”

解决方法
为该服务启用 Windows 硬件配置文件。
以下是在 Windows 2000 上启用的操作步骤:

  1. 依次单击“开始”、“设置”、“控制面板”、“管理工具”、“服务”。
  2. 在“服务”窗口中,右键单击相应的服务,然后选择“属性”。
  3. 单击“登录”选项卡,在窗口底部的白色区域中,可以将每个硬件配置文件在“已启用”和“已禁用”间切换。通过单击将相应的配置文件设置为“已启用”。

Microsoft 知识库文章 175155(位于 http://support.microsoft.com/kb/q175155/)也介绍了以上步骤。

WebLogic 作为 NT 服务:错误 1067
将 WLS 域作为 NT 服务安装后,启动它时发生“Microsoft Error: 1067”。
此错误提供的只是一般性信息,未提供任何与真正问题有关的线索。下面的情况可能会导致此“1067”错误及 WebLogic Server 无法作为服务正常启动。
CONFIGURATION:安装在 Windows NT 上的 WLS 6.x、7.x。

解决方法
服务继承系统属性。如果系统 PATH 变量中有空格,服务就无法启动。举一个例子,下面是系统路径的一个片段:“C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;”。Visual Studio 目录名中的空格会导致 beasvc 产生“1067”非描述性错误而启动失败。

清理系统 PATH 环境变量,使之不包含空格。

返回页首

File Realm 中的系统用户密码 (WLS 6.1)
WebLogic Server 不能正常启动。
Exception raised:
java.lang.SecurityException: Authentication for user system denied
        at weblogic.security.SecurityService.initializeSuid(SecurityService.java:410)
        at weblogic.security.SecurityService.initialize(SecurityService.java:120)
        at weblogic.t3.srvr.T3Srvr.initialize(T3Srvr.java:421)
        at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:213)
        at weblogic.Server.main(Server.java:35)
Reason: Fatal initialization exception

解决方法
File Realm 中的系统用户密码由于某种原因在客户域中损坏,因而 WebLogic Server 无法启动。

创建 fileRealm.properties 和 SerializedSystemIni.dat(位于域根目录中)的备份。
如果有可以成功启动的域,请将正常域中的以下文件复制到问题域:
  1. fileRealm.properties
  2. SerializedSystemIni.dat

备注:由于加密/解密需要由以上文件共同完成,因此两个文件都必须复制,才能使加密/解密正常进行。
返回页首
如何设置调试标志
设置调试标志有助于解决许多 LDAP 问题。编辑 config.xml 文件并添加以下属性:
    StdoutDebugEnabled="true" StdoutSeverityLevel="64"
    <ServerDebug DebugSecurityAdjudicator="true" DebugSecurityAtn="true"
        DebugSecurityAtz="true" DebugSecurityRoleMap="true" Name="myserver"/>
如下面所示:
   <Server ListenAddress="" ListenPort="6151" Name="myserver"
        NativeIOEnabled="true" ReliableDeliveryPolicy="RMDefaultPolicy"
        ServerVersion="8.1.2.0" StdoutDebugEnabled="true" StdoutSeverityLevel="64">
        <SSL Enabled="false" HostnameVerificationIgnored="false"
            IdentityAndTrustLocations="KeyStores" Name="myserver"/>
        <ServerDebug DebugSecurityAdjudicator="true"
            DebugSecurityAtn="true" DebugSecurityAtz="true"
            DebugSecurityRoleMap="true" Name="myserver"/>
    </Server>
    <ServerDebug DebugSecurityAdjudicator="true" DebugSecurityAtn="true"
        DebugSecurityAtz="true" DebugSecurityRoleMap="true" Name="myserver"/>

已知的 WebLogic Server 问题

CR076945 (English)  WLS 7.0 - 由于 LDAP 文件可能已损坏而无法启动 WLS。

此外,您可以定期查看所用 WLS 版本的“Release Notes”,了解 Service Pack 中的“Known Issues”或“Resolved Issues”的详细信息及浏览与身份验证有关的问题。 
方便起见,下面提供了这些发行说明的链接:
  • WLS 8.1 Release Notes (English)
  • WLS 7.0 Release Notes (English)
  • WLS 6.1 Release Notes (English)
使用搜索功能也可以搜索到“Release Notes”,还可以搜索到其它支持解决办法及与 CR 有关的信息,如需要更多帮助?中所提到的内容。如果客户签订了技术支持合同,则可以登录 http://support.bea.com/,登录后会看到为 Solutions 和 Bug Central 提供的 Browse portlet,可在其中按产品版本浏览最新提供的 CR。

返回页首
需要更多帮助?
如果您已经理解这个模式,但仍需要更多帮助,您可以:
  1. http://support.bea.com/ 上查询 AskBEA(例如,使用“errors starting WLS”,以查找其它已发布的解决办法。技术支持合同客户:确保已经登录,可以访问提供的与 CR 有关的信息。
  2. http://newsgroups.bea.com/ 上,向 BEA 的某个新闻组提出更详细具体的问题。
如果这还不能解决您的问题,并且您拥有有效的技术支持合同,您可以通过登录以下网站来打开支持案例:http://support.bea.com/

反馈

请给我们提供您的意见,说明此支持诊断模式“启动 WLS 时出错”一文是否有所帮助、您需要的任何解释,以及对支持诊断模式的新主题的任何要求。


免责声明:

依据 BEA 与您签署的维护和支持协议条款,BEA Systems, Inc. 在本网站上提供技术技巧和补丁供您使用。虽然您可以将这些信息和代码与您获得 BEA 授权的软件一起使用,但 BEA 并不对所提供的技术技巧和补丁做任何形式的担保,无论是明确的还是隐含的。

本文档中引用的任何商标是其各自所有者的财产。有关完整的商标信息,请参考您的产品手册。


你可能感兴趣的:(weblogic,server,服务器,Security,Microsoft,Authentication)