Build SAML Protocol Request Assertion
gateway90
The Build SAML Protocol Request assertion is used to create a SAMLP request from either a request message, response message, or a Message variable. If the request can be successfully fulfilled, a SAMLP request is returned containing one or more SAML tokens. The Evaluate SAML Protocol Response assertion is then used to evaluate the request, response, or Message variable.
The target message for this assertion is set within the wizard, but it may also be changed in the policy window, without using the wizard. For more information, see Select a Target Message.
To learn more about selecting a private key for this assertion, see Select a Custom Private Key.
The Build SAML Protocol Request assertion is typically used as follows in a policy:
Build SAML Protocol Request
Route via HTTP(S)
Evaluate SAML Protocol Response
Using the Assertion
- Do one of the following:
- To add the assertion to the Policy Development window, see Add an Assertion.
- To change the configuration of an existing assertion, proceed to step 2 below.
- Right-click <target>:Build SAML Protocol Request...in the policy window and selectSAML Protocol Request Wizardor double-click the assertion in the policy window.
- Follow the wizard to complete the assertion. For details, see SAML Protocol Request Wizard.
SAML Protocol Request Wizard
The SAML Protocol Request Wizard automatically starts when you add or edit a Build SAML Protocol Request assertion in a policy.
For more information about wizards, see Wizard under Interfaces.
You can use context variables in many of the text fields in the wizard. These variables are evaluated at runtime as the SAML Protocol request is being constructed.
Wizard Step | Descriptions |
---|---|
Step 1: Introduction | Introduces the wizard. |
Step 2: Target Message and SOAP Version |
|
Step 3: SAML Version |
|
Step 4: Issuer (SAML 2.0 only) | Configure the Issuer attribute value. For a description of these settings, see Configure the [ Issuer ] Tab in Build SAML Protocol Response Assertion. |
Step 5: SAMLP Request Type | Specify the SAMLP query request to be configured:
|
Step 6: Authorization Query | This step is used if you chose "Authorization Decision Request" in Step 5.
|
Step 7: Attribute Statement | This step is used if you chose Attribute Query Request. Define the attributes that the SAML statement will include.
To modify an existing Attribute Statement, select it from the list and then click [ Edit ].To remove an Attribute Statement, select it from the list and then click [ Remove ]. |
Step 8: Name Identifier | Enter the details for the Name Identifier. See Configure the Name Identifier below for details. |
Step 9: Subject Confirmation | Configure the subject confirmation method in this step. See Configure the Subject Confirmation below for details. |
Step 10: Digital Signature | Select the Sign Request check box to include a digital signature in the request. Clear the check box to not include a digital signature. A digital signature is not always required in SAML. The following are some examples where the signature may not be required:
|
Configuring the Name Identifier
This wizard step configures the details for the Name Identifier in the SAML Protocol Request.
- Select theInclude Name Identifiercheck box to include the Name Identifier in the SAML token.Clear the check box to not include the Name Identifier. This disables all the remaining settings in the wizard step; click [Next] to proceed to the next step in the wizard.
- Select theEncrypt Name Identifiercheck box to encrypt the Name Identifier. This causes a <saml:EncryptedID> to be placed in the <saml:Subject> element.Clear the check box to not encrypt the Name Identifier. This will place a <saml:NameID> in the <saml:Subject> element.
- If encrypting the Name Identifier, click [Configure] and complete the EncryptedID Encryption Properties. For more information, see Configure Encryption Settings.If not encrypting the Name Identifier, skip to step 4.
- Choose theFormatof the Name Identifier:
- Automatic: The Name Identifier Format URI will be selected based on the type of credentials used to authenticate the user.
- X.509 Subject Name: The Name Identifier Format URI is the X.509 Subject Name.
- Email Address: The Name Identifier Format URI is the email address.
- Windows Domain Qualified Name: The Name Identifier Format URI is the Windows Domain Qualified Name.
- Unspecified: Indicates that the issuer of the SAML token is not warranting that the Name Identifier value meets any particular format expectations.
- Custom: Enter a custom Name Identifier Format URI. You may specify a context variable. Ensure that the URI is valid to prevent the assertion from failing.
- Optionally enter aName Qualifiertemplate. This value determines the security or administrative domain of the subject. An example of a Name Qualifier might be theAPI Gatewayhostname (for example, gatewayhost.acmecorp.com). It is not necessary to enter a fully-qualified hostname.
- ForName Identifier Value, indicate where the value of the Name Identifier is to be retrieved:
- From Credentials: The value is the user name from the credentials used to authenticate the user.
- From Authenticated User: The value is the most appropriate attribute (matching the selected Format) available from the user who was authenticated.
- From Template: The value is the result of evaluating the specified template. This will typically be a context variable, perhaps one resulting from an XPath (Evaluate Request XPath or Evaluate Response XPath) or from the Extract Attributes for Authenticated User Assertion.
Configuring the Subject Confirmation
This wizard step configures the subject confirmation method to be used in the SAML Protocol Request.
- Choose theSubject Confirmation Methodto be used in the issued SAML token. This allows the SAML-relying party to confirm that the message came from a system entity that corresponds to the subject in the statement or query.ValuesDescriptionHolder-of-KeyThe SAML token will use the Holder-of-Key subject confirmation method (with the standard URI urn:oasis:names:tc:SAML:1.0:cm:holder-of-key or urn:oasis:names:tc:SAML:2.0:cm:holder-of-key, depending on the selected SAML version in Step 3 of the wizard). For such assertions, the will require that the subject demonstrate possession of the private key corresponding to the public key in the Subject certificate.The request Subject may use one of two methods to prove that they hold this key:
- The request includes at least one element covered by a valid WSS message signature. The signing certificate will be used as the Subject certificate. Or,
- The request arrived over SSL/TLS with client certificate. The client certificate will be used as the Subject certificate
Sender VouchesThe SAML token will use the Sender Vouches subject confirmation method (with the standard URI urn:oasis:names:tc:SAML:1.0:cm:sender-vouches or urn:oasis:names:tc:SAML:2.0:cm:sender-vouches, depending on the selected SAML version in Step 2 of the wizard). For such assertions, theAPI Gatewayvouches for the verification of the subject.BearerThe SAML token will use the Bearer Token subject confirmation method (with the standard URI urn:oasis:names:tc:SAML:1.0:cm:bearer or urn:oasis:names:tc:SAML:2.0:cm:bearer, depending on the selected SAML version in Step 2 of the wizard). Like HTTP cookies, such assertions will always be assumed to belong to whatever message contains them, and the subject will be assumed to be the sender of the message.NoneThe SAML token does not have a subject confirmation method. - Configure theInclude Subject Certificatecheck box as required. This is available on when theSubject Confirmation Methodis "Holder-of-Key".Select this check box to specify that the subject's certificate (or a reference to it) will be included in the SAML token. Choose the method by which it should be included or referenced from one of the following options.
- Literal Certificate (X509Data): The entire subject certificate is inserted into the SAML token. This increases the size of the assertion significantly, but will mean that the recipient does not have to locate the subject certificates.
- SecurityTokenReference using SKI: A Subject Key Identifier (SKI) from the certificate is included in the SAML token. This results in a smaller assertion, but it requires that the recipient look up the subject certificate.
- SecurityTokenReference using SHA1 Thumbprint: An SHA1 thumbprint from the certificate is included in the SAML token. Like the SK1 option above, this produces a smaller assertion, but it requires that the recipient look up the subject certificate.
- If SAML 2.0 is used and the Subject Confirmation Method is not set to "None", optionally complete theSubject Confirmation Datasection. These fields provide additional information to be used by a specific confirmation method.
- Recipient: Enter a URI that specifies the required entity or location. For example, this attribute might indicate that a resulting SAML token must be delivered to a particular network endpoint in order to prevent an intermediary from redirecting it someplace else. You may reference context variables.
- Address: Enter the required network address or location. For example, this attribute might be used to bind a resulting SAML token to particular client addresses to prevent an attacker from stealing and presenting the token from another location. You may reference context variables.
- In Response To: Enter the required message ID. For example, this attribute might be used to correlate the resulting SAML token to the related SAML request. You may reference context variables.
- If SAML 2.0 is used and the Subject Confirmation Method is not set to "None", optionally complete define aValidity Periodfor the SAML token:
- Not Before seconds in past: Select this check box and then enter the number of seconds in the past before which the subject cannot be confirmed. The default is 120 seconds.
- Not On or After seconds in future: Select this check box and then enter the number of seconds into the future after which the subject can no longer be confirmed. The default is 300 seconds.