type=page
status=published
title=Administering Security in Cluster Mode
next=administrative-security.html
prev=message-security.html
~~~~~~

= Administering Security in Cluster Mode

[[GSSCG00038]][[gknpf]]


[[administering-security-in-cluster-mode]]
== 4 Administering Security in Cluster Mode

This chapter describes important information about administering
security in a cluster.

The following topics are described:

* link:#gksam[Configuring Certificates in Cluster Mode]
* link:#gkmhh[Dynamic Reconfiguration]
* link:#gktgi[Understanding Synchronization]

This chapter assumes that you are familiar with security features such
as authentication, authorization, and certificates. If you are not, see
link:system-security.html#ablnk[Administering System Security].

Instructions for accomplishing the tasks specific to GlassFish Server by
using the Administration Console are contained in the Administration
Console online help.

[[gksam]][[GSSCG00159]][[configuring-certificates-in-cluster-mode]]

=== Configuring Certificates in Cluster Mode

The sections link:system-security.html#abloj[Certificates and SSL] and
link:system-security.html#ablqz[Administering JSSE Certificates] describe
the relevant concepts and use of certificates in GlassFish Server.

By default, GlassFish Server uses self-signed certificates. The
self-signed certificates that GlassFish Server uses might not be trusted
by clients by default because a certificate authority does not vouch for
the authenticity of the certificate.

You can instead use your own certificates, as described in
link:administrative-security.html#gkped[Using Your Own Certificates].

[[gkmhh]][[GSSCG00160]][[dynamic-reconfiguration]]

=== Dynamic Reconfiguration

Administrative commands that you execute on the domain administration
server (DAS) must either be replicated on the affected server instances,
or on all server instances that are part of the cluster. GlassFish
Server replicates the commands by sending the same administration
command request that was sent to the DAS to the server instances. As a
result of replicating the commands on the DAS and the individual
instances, the DAS and the instances make the same changes to their
respective copies of the domain's configuration.

[NOTE]
====
Oracle recommends that you enable secure admin as described in
link:administrative-security.html#gknqh[Managing Administrative Security]
so that GlassFish Server securely transfers these files on the network.
====

Dynamic reconfiguration refers to using the `--target` operand to CLI
subcommands to make a change to a server instance (if the user-specified
target is a server instance), or all server instances that are part of
the cluster (if the user-specified target is a cluster). For
example:`asadmin create-jdbc-resource some-options --target some-target`.

The `--target` operand allows the following values:

* `server` - Performs the command on the default server instance.
This is the default value.
* configuration_name - Performs the command in the specified configuration.
* cluster_name - Performs the command on all server instances in the
specified cluster.
* instance_name - Performs the command on a specified server instance.

If a command fails for a cluster, the status shows all server instances
where dynamic reconfiguration failed, and suggests corrective next steps.

The command status also shows when a restart is required for each server instance.

The `--target` operand is supported for the following security-related CLI subcommands:

* create-jacc-provider
* delete-jacc-provider
* list-jacc-providers
* create-audit-module
* create-auth-realm
* create-file-user
* delete-audit-module
* delete-auth-realm
* delete-file-user
* update-file-user
* create-message-security-provider
* delete-message-security-provider
* list-audit-modules
* list-file-groups
* list-file-users
* login

[[gkned]][[GSSCG00226]][[enabling-dynamic-configuration]]

==== Enabling Dynamic Configuration

Dynamic configuration is enabled by default and no additional action is required.

Use the following command to enable dynamic configuration from the command line:

`asadmin --user user --passwordfile password-file set cluster-name-config.dynamic-reconfiguration-enabled=true`.

To enable dynamic configuration from the Administration Console, perform
the following steps:

1. Expand the Configurations node.
2. Click the name of the cluster's configuration.
3. On the Configuration System Properties page,
   check the Dynamic Reconfiguration Enabled box.
4. Click Save.

[NOTE]
====
The dynamic reconfiguration feature applies only to server instances,
not the DAS. Therefore, you cannot "disable" dynamic reconfiguration on
the DAS. There is no way to make changes to the DAS configuration using
`asadmin` commands, the Administration Console, or the REST interface
without having those changes take effect immediately.
====

[[gktgi]][[GSSCG00161]][[understanding-synchronization]]

=== Understanding Synchronization

As described in "link:../ha-administration-guide/instances.html#GSHAG00189[
Resynchronizing GlassFish Server Instances and the DAS]"
in GlassFish Server Open Source Edition High
Availability Administration Guide, configuration data for a GlassFish
Server instance is stored in the repository of the DAS and in a cache on
the host that is local to the instance. The configuration data in these
locations must be synchronized. The cache is synchronized only when a
user uses the administration tools to start or restart an instance.

See "link:../ha-administration-guide/instances.html#GSHAG00189[
Resynchronizing GlassFish Server Instances and the DAS]"
in GlassFish Server Open Source Edition High Availability
Administration Guide for information about default synchronization for
files and directories, for the steps required to resynchronize an
instance and the DAS, and for additional synchronization topics.


