You can develop a
CICS®
application or a web
service application to create a SAML token or to add attributes to a SAML
token and to re-sign
it.
About this task
You can use
CICS
SAML support to add attributes to SAML
tokens and re-sign the request with the certificate specified in the
CICS
STS configuration file. The SAML token might be received from
an external sender or created from a template. The application that
you develop can be
either a
CICS
application or a web service
application.
Attention: Create, augment, and re-sign tokens only on a region
where all application code that participates in the augmenting of
the token is trusted by
other members of the federation.
Procedure
-
Add the attributes by creating the following containers in the
same channel that was used
to validate the original SAML token.
Note: You must have validated the token before you can modify it.
The validated token is
contained in the DFHSAML-OUTTOKEN container.
-
Put the attribute name into container DFHSAML-ATTRN
aaa
, where
aaa
are three uppercase alphanumeric characters.
For
example:
EXEC CICS PUT CONTAINER('DFHSAML-ATTRNORG')
CHANNEL('SAML-CHANNEL') FROM('title')
- Optional:
Put the attribute name space into container DFHSAML-ATTRS
aaa
, where
aaa
are the same characters as you used for the attribute name
container.
This step is not required for SAML version 2.0.
- Optional:
Put the attribute friendly name into container DFHSAML-ATTRY
aaa
,
where
aaa
are the same characters as you used for the attribute name
container.
For
example:
EXEC CICS PUT CONTAINER('DFHSAML-ATTRYORG')
CHANNEL('SAML-CHANNEL') FROM('eduPersonAffiliation')
- Optional:
Put the attribute format into container DFHSAML-ATTRF
aaa
, where
aaa
are the same characters as you used for the attribute name
container.
For
example:
EXEC CICS PUT CONTAINER('DFHSAML-ATTRNORG')
CHANNEL('SAML-CHANNEL')
FROM('urn:oasis:names:tc:SAML:2.0:attrname-format:uri')
- Optional:
Put one or more attribute values into containers
DFHSAML-A
aaa
N
bbb
, where
aaa
are the same characters as you used for the attribute name
container and
bbb
are three uppercase alphanumeric characters.
For
example:
EXEC CICS PUT CONTAINER('DFHSAML-AORGV001')
CHANNEL('SAML-CHANNEL') FROM('staff')
EXEC CICS PUT CONTAINER('DFHSAML-AORGV002') CHANNEL('SAML-CHANNEL')
FROM('employee')
-
Create the token in either of the following ways:
-
Put the
SAML-ISSUE
value in the DFHSAML-FUNCTION container and link to
the linkable interface DFHSAML, which creates the new token. By
default, the token is
re-signed using the signature options that are specified in the STS
configuration file. If no
signature is required, the application can create a DFHSAML-SIGNED
container with the
SAML-IGNORED option specified before it calls DFHSAML. If an <issuer> is
specified in the
STS configuration file, its value is used in the new SAML token.
-
Invoke a web service. If the requester pipeline associated with
the web service is
configured for SAML, it automatically adds attributes to the original token
and creates
a new one. By default, the pipeline re-signs the SAML token by
using the signature
options that are specified in the STS configuration file. If no signature
is required,
set the requester pipeline configuration option token_signature to
no.
If an <issuer> is specified in the STS configuration file, its
value is used in the
new SAML token. In addition to creating a new SAML token, the
requester pipeline also
inserts the SAML token in the outbound web service request.