6. Access Control Configuration

This section provides a detailed description of the OpenSplice access control policy configuration.

Each configuration parameter will be explained by means of an extensive description together with the tabular summary that contains the following information:

Full path -

Describes the location of the item within a complete configuration. Because the configuration is in XML format, an XPath expression is used to point out the name and location of the configuration item.

Format -

Describes the format of the value of the configuration item.

Dimension -

Describes the unit for the configuration item (for instance seconds or bytes).

Default value -

Describes the default value that is used by the service when the configuration item is not set in the configuration.

Valid values -

Describes the valid values for the configuration item. This can be a range or a set of values.

If the configuration parameter is an XML attribute, the table also contains the following information:

Required -

Describes whether the attribute is required or if it is optional.

If the configuration parameter is an XML element, the table also contains the following information:

Occurrences -

Describes the range of the possible number of occurrences of the element in the configuration by specifying the minimum and maximum number of occurrences.

6.1. Access Control Policy Elements

When access control is enabled a file containing the access control policy configuration is referenced in the secure networking configuration.

The access control policy configuration expects a root element named accessControlPolicy. Elements defined in an access control policy are listed and explained in the following sections.

6.1.1. Element secrecyLevels/secrecyLevel

The access control policy contains a hierarchical list of secrecy levels which are grouped under the secrecyLevels element. Typical secrecy levels would be: UNCLASSIFIED, RESTRICTED, CONFIDENTIAL, SECRET, and TOP_SECRET.

caution Note that the order of defined secrecy levels is important: secrecy levels are listed from weakest to strongest.

Full Path

accessControlPolicy/secrecyLevels/secrecyLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - *

Remarks

Listed from the weakest to the strongest level.

6.1.2. Element integrityLevels/integrityLevel

The access control policy contains a list of integrity levels which are grouped under the integrityLevels element.

caution The order of defined integrity levels is important. Integrity levels are listed from the weakest to the strongest.

Full Path

accessControlPolicy/integrityLevels/integrityLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - *

Remarks

Listed from the weakest to the strongest level.

6.1.3. Element users/user

The users section contains a set of users. A user has an id, a clearance, and a list of authentication mechanisms.

6.1.3.1. Element id

Full Path

accessControlPolicy/users/user/id

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - 1

Remarks

none

6.1.3.2. Element Clearance

A clearance consists of this user’s secrecy level, integrity level, and a set of compartments.

6.1.3.2.1. Element secrecyLevel

Defines this user’s secrecy level.

Full Path

accessControlPolicy/users/user/clearance/secrecyLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any, defined in accessControlPolicy/secrecyLevels

Occurrences (min-max)

0 - 1

Remarks

none

6.1.3.2.2. Element integrityLevel

Defines this user’s integrity level.

Full Path

accessControlPolicy/users/user/clearance/integrityLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any, defined in accessControlPolicy/integrityLevels

Occurrences (min-max)

0 - 1

Remarks

none

6.1.3.2.3. Element compartments/compartment

The compartments section contains a set of compartments this user is entitled to access.

Full Path

accessControlPolicy/users/user/clearance/compartments/compartment

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - *

Remarks

none

6.1.3.3. Element authentication

This element contains a list of authentication mechanisms for this user.

info Currently, OpenSplice supports SSL X.509 Certificate Authentication. Other authentication mechanisms (such as user ID/password authentication) may be available in a future release.

6.1.3.3.1. Element x509Authentication

Defines properties of x509 (SSL certificate) authentication.

Element subject

Full Path

accessControlPolicy/users/user/authentication/x509Authentication/subject

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - 1

Remarks

The distinguished name (DN) of the certificate the user transmits to authenticate to the system (single elements of the distinguished name have to be separated by a comma).

caution Note that the user’s certificate DN must be unique: ensure that multiple users do not share the same client certificate DN.

6.1.4. Element resources/resource

The resources section contains a set of resources, in other words, the objects to be protected.

A resource has a resource identification (made up of the resource’s type, id, and topic or partitions, respectively) and a classification (containing the resource’s secrecy and integrity level and a list of compartments). The classification is used for mandatory access control.

6.1.4.1. Element type

Defines the type of this resource. A resource can have the type PARTITION or TOPIC.

Full Path

accessControlPolicy/resources/resource/type

Format

string

Dimension

none

Default Value

none

Valid Values

“PARTITION” or “TOPIC”

Occurrences (min-max)

0 - 1

Remarks

none

6.1.4.2. Element id

Defines this resource’s id.

Full Path

accessControlPolicy/resources/resource/id

Format

string

Dimension

none

Default Value

none

Valid Values

any valid topic or partition name of a DDS domain

Occurrences (min-max)

0 - 1

Remarks

This is related to the type element value.

6.1.4.3. Element topics/topic

The topics section contains a set of topics. This element is only valid if the type of the resource is TOPIC. It lists all valid topics that may be part of this partition.

Full Path

accessControlPolicy/resources/resource/topics/topic

Format

string

Dimension

none

Default Value

none

Valid Values

any valid topic of a DDS domain

Occurrences (min-max)

0 - 1

Remarks

Exists only if element type = PARTITION

6.1.4.4. Element partitions/partition

The partitions section contains a set of partitions. This element is only valid if the type of the resource is PARTITION. It lists all valid partitions that may be part of this partition.

Full Path

accessControlPolicy/resources/resource/partitions/partition

Format

string

Dimension

none

Default Value

none

Valid Values

any valid partition of a DDS domain

Occurrences (min-max)

0 - *

Remarks

Exists only if element type = TOPIC

6.1.4.5. Element classification

A classification consists of this resource’s secrecy level, integrity level, and a set of compartments.

6.1.4.5.1. Element secrecyLevel

Defines this resource’s secrecy level.

Full Path

accessControlPolicy/resources/resource/classification/secrecyLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any, defined in accessControlPolicy/secrecyLevels

Occurrences (min-max)

0 - 1

Remarks

none

6.1.4.5.2. Element integrityLevel

Defines this resource’ integrity level.

Full Path

accessControlPolicy/resources/resource/classification/integrityLevel

Format

string

Dimension

none

Default Value

none

Valid Values

any, defined in accessControlPolicy/integrityLevels

Occurrences (min-max)

0 - 1

Remarks

none

6.1.4.5.3. Element compartments/compartment

The compartments section contains a set of compartments this resource is intended for.

Full Path

accessControlPolicy/resources/resource/classification/compartments/compartment

Format

string

Dimension

none

Default Value

none

Valid Values

any

Occurrences (min-max)

0 - *

Remarks

none

6.2. Access Control Example Configuration

The following XML shows an example access control policy.

<accessControlPolicy>
    <secrecyLevels> <!-- for MAC -->
        <secrecyLevel>UNCLASSIFIED</secrecyLevel>
        <secrecyLevel>CONFIDENTIAL</secrecyLevel>
        <secrecyLevel>SECRET</secrecyLevel>
        <secrecyLevel>TOP_SECRET</secrecyLevel>
    </secrecyLevels>

    <integrityLevels> <!-- for MAC -->
        <integrityLevel>LEVEL_0</integrityLevel>
        <integrityLevel>LEVEL_1</integrityLevel>
        <integrityLevel>LEVEL_2</integrityLevel>
    </integrityLevels>
    <users>
        <user>
            <id>user1</id>
            <clearance> <!-- for MAC -->
                <secrecyLevel>CONFIDENTIAL</secrecyLevel>
                <integrityLevel>LEVEL_2</integrityLevel>
                <compartments>
                    <compartment>US Only</compartment>
                    <compartment>Air Force</compartment>
                    <compartment>Radar</compartment>
                </compartments>
            </clearance>
            <authentication>
                <x509Authentication>
                    <subject>DN</subject>
                </x509Authentication>
            </authentication>
        </user>
        <user>
            <id>user2</id>
            <authentication>
                <x509Authentication>
                    <subject>DN2</subject>
                </x509Authentication>
            </authentication>
        </user>
    </users>
    <resources>
        <resource>
             <type>PARTITION</type>
               <id>chat</id>
            <topics>
              <topic>ChatMessage</topic>
              <topic>NamedMessage</topic>
            </topics>
            <classification> <!-- for MAC -->
                <secrecyLevel>CONFIDENTIAL</secrecyLevel>
                <integrityLevel>LEVEL_1</integrityLevel>
                <compartments>
                    <compartment>US Only</compartment>
                    <compartment>Air Force</compartment>
                </compartments>
            </classification>
        </resource>
        <resource>
            <type>TOPIC</type>
              <id>pingpong</id>
           <partitions>
              <partition>PING</partition>
              <partition>PONG</partition>
           </partitions>
        </resource>
        <resource>
            <type>TOPIC</type>
              <id>topic1</id>
           <partitions>
           </partitions>
        </resource>
    </resources>
</accessControlPolicy>