Skip navigation.
Downloads | Product Documentation | Support

Managing WebLogic Security

# Configuring Security for a WebLogic Domain

The following sections describe how to set security attributes on a WebLogic domain:

- Enabling Trust Between WebLogic Server Domains
- Configuring Connection Filtering
- Viewing MBean Attributes

Note: This chapter applies to WebLogic Server deployments using the security features in this release of WebLogic Server as well as deployments using Compatibility Security.

# Enabling Trust Between WebLogic Server Domains

Note: Enabling trust between WebLogic Server domains opens the servers up to man-in-the-middle attacks. Great care should be taken when enabling trust in a production environment. BEA recommends having strong network security such as a dedicated communication channel or protection by a strong firewall.

Trust between domains is established so that principals in a Subject from one WebLogic Server domain are accepted as principals in another domain. When this feature is enabled, identity is passed between WebLogic Server domains over an RMI connection without requiring authentication in the second domain (for example: login to Domain 1 as Joe, make an RMI call to Domain 2 and Joe is still authenticated). When inter-domain trust is enabled, transactions can commit across domains. A trust relationship is established when the Domain Credential attribute for one domain matches the Domain Credential attribute for another domain.

The domain credential is randomly created the first time a WebLogic Server domain is started. This process ensures that by default no two WebLogic Server domains have the same credential. To enable trust between two WebLogic Server domains, you must explicitly specify the same value for the credential in both WebLogic Server domains.

By default, when you boot an Administration Server for the first time, the Domain Credential attribute is not defined. As the Administration Server boots, it notices that the Domain Credential attribute is not defined and generates a random credential.

WebLogic Server signs Principals with the Domain Credential as Principals are created. When a Subject is received from a remote source, its Principals are validated (the signature is recreated and if it matches, the remote domain has the same Domain Credential attribute). If validation fails, an error is generated. If validation succeeds, the Principals are trusted as if they were created locally.

Note: Any credentials in clear text are encrypted the next time the `config.xml` file is persisted to disk.

If you want a WebLogic Server 6.x domain to interoperate with a WebLogic Server domain, change the Domain Credential attribute in the WebLogic Server domain to the password of the `system` user in the WebLogic Server 6.x domain.

If you want two WebLogic Server domains to interoperate, perform the following procedure in both domains:

1. Expand the Domains node (for example, Examples).
2. Click the View Domain-Wide Security Settings link on the Domain-->General page.
3. Select the Security Configuration-->Advanced tab.
4. Uncheck the Enable Generated Credential attribute.
5. Enter a password for the domain in the Credential text field. Choose the password carefully. BEA Systems recommends using a combination of upper and lower case letters and numbers.
6. Confirm the password by entering it in the Confirm Credential text field.
7. Click Apply.

If you are enabling this feature in a managed server environment, you must stop the Administration server and all the Managed Servers in both domains and then restart them. If this step is not performed, servers that were not rebooted will not trust the servers that were rebooted.

Keep the following points in mind when enabling trust between WebLogic Server domains:

- Because a domain will trust remote Principals without requiring authentication, it is possible to have authenticated users in a domain that are not defined in the domain's authentication database. This situation can cause authorization problems.
- Any authenticated user in a domain can access any other domain that has trust enabled with the original domain without re-authenticating. There is no auditing of this login and group membership is not validated. Therefore, if Joe is a member of the Administrators group in the original domain where he authenticated, he is automatically a member of the Administrators group for all trusted domains to which he makes RMI calls.
- If Domain 2 trusts both Domain 1 and Domain 3, Domain 1 and Domain 3 now implicitly trust eachother. Therefore, members of the Administrators Group in Domain 1 are members of the Administrators group in Domain 3. This may not be a desired trust relationship.
- If you extended the WLSUser and WLSGroup Principal classes, the custom Principal classes must be installed in the server's class path in all domains that share trust.

# Configuring Connection Filtering

Connection filters allow you to deny access at the network level. They can be used to protect server resources on individual servers, server clusters, or an entire internal network or Intranet. For example, you can deny any non-SSL connections originating outside of your corporate network. Network connection filters are a type of firewall in that they can be configured to filter on protocols, IP addresses, and DNS node names.

Connection filters are particularly useful when using the Administration port. Depending on your network firewall configuration, you may be able to use a connection filter to further restrict administration access. A typical use might be to restrict access to the Administration port to only the servers and machines in the domain. An attacker who gets access to a machine inside the firewall, still cannot perform administration operations unless the attacker is on one of the permitted machines.

WebLogic Server provides a default connection filter called `weblogic.security.net.ConnectionFilterImpl`. This connection filter accepts all incoming connections and also provides static factory methods that allow the server to obtain the current connection filter. To configure this connection filter to deny access, simply enter the connection filters rules in the WebLogic Server Administration Console.

You can also use a custom connection filter by implementing the classes in the `weblogic.security.net` package. For information about writing a connection filter, see Using Network Connection Filters in Programming WebLogic Security. Like the default connection filter, custom connection filters are configured in the WebLogic Server Administration Console.

To configure a connection filter:

1. Expand the Domains node.
2. On the Domain-->General tab, click the View Domain-Wide Security Settings link.
3. Select the Security-->Filter tab.
4. Click the Connection Logger Enabled attribute to enable the logging of accepted messages. This attribute logs successful connections and connection data in the server. This information can be used to debug problems relating to server connections.
5. Specify the connection filter to be used in the domain.

- To configure the default connection filter, specify `weblogic.security.net.ConnectionFilterImpl` in the Connection Filter attribute field.
- To configure a custom connection filter, specify the class that implements the network connection filter in the Connection Filter attribute. This class must also be specified in the CLASSPATH for WebLogic Server.

6. Enter the syntax for the connection filter rules. For more information about connection filter rules, see Using Network Connection Filters.
7. Click Apply.
8. Reboot WebLogic Server.

# Viewing MBean Attributes

The Anonymous Admin Lookup Enabled attribute specifies whether anonymous, read-only access to WebLogic Server MBeans should be allowed from the `MBeanHome` API. With this anonymous access, you can see the value of any MBean attribute that is not explicitly marked as protected by the Weblogic Server MBean authorization process. This attribute is checked by default to sure backward compatibility.

To verify the setting of the Anonymous Admin Lookup Enabled attribute:

1. Expand the Domains node.
2. On the Domain-->General tab, click the View Domain-Wide Security Settings link.
3. Select the Security-->General tab.
4. Verify that the Anonymous Admin Lookup Enabled attribute is checked. Unchecking this attribute will make the server more secure; however, it might cause applications that require anonymous access to MBeans to stop working properly.
5. Reboot WebLogic Server.