Skip to content

Fortified IDDocs

SAML Broker

Fortified ID can act as a SAML Broker (sometimes also referred to as an IdP proxy).

To learn more about how Fortified ID Access supports SAML, please click LINK.

This authenticator acts as a SAML Broker (sometimes also referred to as an IdP proxy).

Typically used in SAML brokering scenarios when one or more methods of identification reside on a remote IdP.
Note. Fortified ID Access has native authenticators for some remote IdPs, for example Swedish BankID and Freja. However, if you use BankID or Freja through a third-party provider, you need to configure them using a SAML Broker.

Common Authenticator configuration can be found here.

NameDescriptionDefault valueMandatory
issue_as_sp_entityWhen sending authentication request, what is the entity id used.N/Atrue
target_idp_entityThe remote IDP entity id to trust.N/Atrue
custom_identifierCustom identifier to be set in the event logging entryN/Afalse
force_auth_requestShould the auth request force re-authenticationfalsefalse
sign_algorithmWhich signature algorithm to use if signing authn-requests. Ensure it is working with the private key used. This will only affect requests sent to idp's requiring signing requests.http://www.w3.org/2001/04/xmldsig-more#rsa-sha256false
sign_digest_methodWhich digest method to use if signing authn-requests. Ensure it is working with the selected signature algorithm. This will only affect requests sent to idp's requiring signing requests.http://www.w3.org/2001/04/xmlenc#sha256false
validate_in_response_toOptional validation rule (true/false)falsefalse
validate_audience_restrictionsOptional validation rule (true/false)falsefalse
validate_destinationOptional validation rule (true/false)falsefalse
validate_authn_instantOptional validation rule (true/false)falsefalse
validate_session_timestampOptional validation rule (true/false)falsefalse
skew_time_secondsMaximum acceptable time difference (seconds)60false
authn_context_class_refValue sent in AuthnContextClassRefN/Afalse
cache_ttl_secondsTime to live for the cache300false
allowed_authn_context_class_refWhen requesting authn_context_class_ref, comparison is done with exact match. Use this parameter to allow other return values. Configure as array: "allowed_authn_context_class_ref":["xxx","yyy"]N/Afalse

  • The incoming SAML response must be signed.
  • Signed assertion is not validated.
  • Encrypted assertion is not supported.

The SAML response from the IdP is validated according to a set of rules. Some rules are mandatory and always validated, other rules are optional and can be activated in the configuration.

  • Response Issuer must match target_idp_entity
  • There must be at least one valid signature present
  • Response status must indicate success
  • Response issue timestamp (not before current timestamp)
  • Assertion NotBefore timestamp
  • Assertion NotOnOrAfter timestamp
  • Ensure the response matches a pending request by ID
  • Response destination
  • Audience restrictions
  • Assertion AuthnInstant
  • Assertion SessionNotOnOrAfter
  • AuthContextClassRef, "equals" or "any of"

On request sent to remote IDP:

  • WEB_100027("Sent auth request to remote IDP")
  • IDENTIFIER (user traceid)
  • SOURCE_SERVICE_NAME (entity id from requesting SP)
  • SOURCE_ADDRESS (user IP address)
  • AUTHENTICATOR_ID, Configured id and display_anme
  • CUSTOMER_IDENTIFIER (if configured)

On a successful authentication event is logged containing the following:

  • WEB_100014("Authenticated using SP-broker method")
  • IDENTIFIER (user traceid)
  • SOURCE_SERVICE_NAME (entity id from the SAML response)
  • SOURCE_USER_NAME (name id from the issued assertion)
  • SOURCE_ADDRESS (user IP address)
  • AUTHENTICATOR_ID, Configured id and display_anme
  • CUSTOMER_IDENTIFIER (if configured)
  • All attributes in the incoming assertion with value(s). Multivalued attributes att joined using comma ",".

On a failed response from remote IDP

  • WEB_100026("Authenticated failed using SP-broker method")
  • IDENTIFIER (user traceid)
  • SOURCE_SERVICE_NAME (entity id from the SAML response)
  • SOURCE_ADDRESS (user IP address)
  • AUTHENTICATOR_ID, Configured id and display_anme
  • CUSTOMER_IDENTIFIER (if configured)

When consuming and validating the response only one assertion is allowed. Either response or assertion must be signed. No signatures will produce error.

After successful validation, data stored in the global state are:

  • nameID - containing the name-id reported in the assertion.
  • remoteIssuer - value of the IDP entityID issuing the assertion.
  • All additional attributes from the assertion. Multivalued attributes are merged into a comma-separated string. FriendlyName is favoured over Name.
    • if an incoming attribute with Name urn:oid:2.5.4.42 and FriendlyName givenName, givenName is used as key in global state.
    • If no FriendlyNAme attribute is present Name is used.