Appendix B. PIP Reference

1. Introduction

[introduce PIPs]

If you have a PIP you'd like to contribute to the Globus Toolkit, use the following template:

[Note]Note

The above files are in DocBook XML format. Simply save the link to your hard drive, edit the file in a text or xml editor and email to ?. Don't worry about getting the tags exactly right, it's enough to enter the information where it makes sense and we'll clean up the tags where necessary.

2. Container PIP

2.1. Class name

org.globus.wsrf.impl.security.authorization.ContainerPIP

2.2. Overview

This implements the BootstrapPIP interface [PIP-glossary] and is used with in the toolkit to initialize the request entities. It collects information about the service and operation invoked. It is always invoked prior to any authorization processing.

2.3. Configuration

No configuration is required.

2.4. Attributes Collected

This PIP collects three attributes described in the following tables:

Table B.1. Attribute I

Description of attributeMessage Context associated with the thread
Identity attributeIdentity attribute
Attribute IDConstants.MSG_CTX_ATTRIBUTE_URI
DatatypeConstants.MSG_CTX_DATATYPE_URI
Issuernull. The issuer is null since the message context is required to construct the container entity, which is the default issuer for attributes collected in the container.
Validity fromCurrent time
Validity toInfinity

Table B.2. Attribute II

Description of attributeURL of the service invoked.
Identity attributeIdentity attribute
Attribute IDConstants.SERVICE_ATTRIBUTE_ID_URI
DatatypeConstants.STRING_DATATYPE_URI
IssuerContainer
Validity fromCurrent time
Validity toInfinity

Table B.3. Attribute III

Description of attributeName of the operation invoked.
Identity attributeIdentity attribute
Attribute IDConstants.OPERATION_ATTRIBUTE_ID_URI
DatatypeConstants.STRING_DATATYPE_URI
IssuerContainer
Validity fromCurrent time
Validity toInfinity

This PIP also sets up the container issuer entity, which is used as the default issuer for attributes collected in the container. The entity has the following attributes:

Table B.4. Attribute I

Description of attributeContainer id
Identity attributeIdentity attribute
Attribute IDConstants.CONTAINER_ATTRIBUTE_URI
DatatypeConstants.STRING_DATATYPE_URI
Issuernull
Validity fromCurrent time
Validity toInfinity

Table B.5. Attribute II

Description of attributeJava Principals from container credential, only if credentials are configured.
Identity attributeIdentity attribute
Attribute IDConstants.PRINCIPAL_ATTRIBUTE_ID
DatatypeConstants.PRINCIPAL_DATATYPE_URI
Issuernull
Validity fromCurrent time
Validity toInfinity

Table B.6. Attribute III

Description of attributeJava Subject from container credential, only if credentials are configured.
Identity attributeIdentity attribute
Attribute IDConstants.SUBJECT_ATTRIBUTE_ID
DatatypeConstants.SUBJECT_DATATYPE_URI
Issuernull
Validity fromCurrent time
Validity toInfinity

The container entity is created with the same attributes as above with the above entity as the issuer.

2.5. Related interceptors

None.

3. X509Bootstrap

3.1. Class name

org.globus.wsrf.impl.security.authorization.X509BootstrapPIP

3.2. Overview

This implements the BootstrapPIP interface [PIP-glossary] which is used when X509 Certificates are used during authentication scheme. It collects peer entities' attributes obtained from the certificates presented by the peer.

3.3. Configuration

No configuration is required.

3.4. Attributes Collected

This PIP collects two attributes described in the following tables:

Table B.7. Attribute I

Description of attributePeer's Subject object
Identity attributeIdentity attribute
Attribute IDConstants.SUBJECT_ATTRIBUTE_ID
DatatypeConstants.SUBJECT_DATATYPE_URI
IssuerContainer Issuer Entity
Validity fromCurrent time
Validity toInfinity

Table B.8. Attribute II

Description of attributePeer's principals
Identity attributeIdentity attribute
Attribute IDConstants.PRINCIPAL_ATTRIBUTE_ID
DatatypeConstants.PRINCIPAL_DATATYPE_URI
IssuerContainer Issuer Entity
Validity fromCurrent time
Validity toInfinity

3.5. Related interceptors

If X509 Certificates are used for authentication, this bootstrap is used by the Authorization Framework by default.

4. SAML Authorization Assertion PIP

4.1. Class name

org.globus.wsrf.impl.security.authorization.SAMLAuthzAssertionPIP

4.2. Overview

The PIP extracts SAML Authorization Assertion from the request and adds it to the bag of attributes. The message context and the proxy certificate are checked to see if SAML Authorization Assertions are presents.

If the subject DN in the decision statement matches with the requestor's then the attribute is merged with the requestor's bag of attributes.

4.3. Configuration

No configuration information is required.

4.4. Attributes Collected

This PIP collects attributes described in the following tables:

Table B.9. Attribute I

Description of attributeSubject DN from the subject in SAML Authorization Decision Statement (one attribute per statement in assertion)
Identity attributeIdentity attribute
Attribute IDConstants.PRINCIPAL_ATTRIBUTE_ID
DatatypeConstants.PRINCIPAL_DATATYPE_URI
IssuerContainer Issuer Entity
Validity fromExtracted from assertion
Validity toExtracted from assertion

Table B.10. Attribute II

Description of attributeSAML Authoirzation Decision Statement (one attribute per statement in assertion)
Identity attributeNon-Identity attribute
Attribute IDConstants.SAML_AUTHZ_DECISION_ATTRIBUTE_ID
DatatypeConstants.SAML_AUTHZ_DECISION_DATA_TYPE
IssuerContainer Issuer Entity
Validity fromExtracted from assertion
Validity toExtracted from assertion

4.5. Related interceptors

This PIP can be used in tandem with SAMLAuthzAssertionPDP.

5. Parameter PIP

5.1. Class name

org.globus.wsrf.impl.security.authorization.ParameterPIP

5.2. Overview

This PIP extracts configured parameter element from the SOAPMessage. The parameter is added as an action attributes in the associated RequestAttribute.

5.3. Configuration

parameterConfig

Property pointing to configuration file with information about the service, method and parameter to extract as attributes. If configured file name is not absolute, an attempt is made to find the file as provided, if not an attempt is made to locate it relative to GLOBUS_LOCATION and if that fails, an attempt it made to locate it relative to current directory.

The configuration file is read and stored as SOAPParameter. This class is used to store a specific parameter element path for a given operation for a said service. servicePath operationName ParameterPath

The parameter path is a list of QNames, where each QName is QName of a child element of previous QName element. The parameterPath is a string with string representation of each QName, in the order it needs to be looked into with semicolon (;) as delimiter. For example, {http://temp.ns}element1;{http://temp.ns}nextElem2;{http://temp.ns}nextElem3 would represent the parameter {http://temp.ns}nextElem3. The SOAPBody element here is {http://temp.ns}element1, with nextElem2 as its child and nextElem3 as its child.

5.4. Attributes Collected

This PIP collects two attributes described in the following tables:

Table B.11. Attribute I

Description of attributeConfigured parameter if it occurs in that operation. The value is an object of type org.w3c.dom.Node and represents the parameter of the operation.
Identity attributeIdentity attribute
Attribute IDParameter path as described in previous section.
DatatypeConstants.PARAMETER_PATH_DATA_TYPE
IssuerContainer Issuer Entity
Validity fromCurrent time
Validity toInfinity

5.5. Related interceptors

This PIP can be used in tandem with ResourcePropertiesPDP to parameter-based authorization for resource property access.