Notifying an external service about user authentication by using a webhook
Before you begin
As a SaaS administrator, you must first configure the OpenID Connect Issuer URL and generate a JWK; see Configuring-OAuth-2-0.
To configure webhooks for SAML 2.0
- In the BMC Helix SSO Admin Console, edit the tenant, and enable the Webhooks on authentication response feature.
- Click Realm, and edit the realm to which you want to add a webhook.
In the General tab, in the On Auth Webhook URL field, specify the webhook URL provided by the external service to which BMC Helix SSO sends messages on end-user authentication.
For security reason, the webhook URL must differ from the localhost URL.
Edit the realm to which you have added the webhook, click Authentication, and for SAML, specify Xpath 1.0 for group retrieval and validate it with the customer’s SAML assertion.
If the Xpath is not configured, the webhook will not have the groups attribute → "groups":[]. If the XPath is configured improperly, does not align with the customer's SAML assertion, or the customer's SAML is not configured, the groups attribute will have an empty array, which prevents identifying whether the user is missing a membership or groups or the user does not have an association with any group. If the XPath is invalid, BMC Helix SSO will not authenticate the user.
- Click Save.
To configure webhooks for OpenID Connect
- In the BMC Helix SSO Admin Console, edit the tenant, and enable the Webhooks on authentication response feature.
- Click Realm, and edit the realm to which you want to add a webhook.
- In the General tab, in the On Auth Webhook URL field, specify the webhook URL provided by the external service to which BMC Helix SSO sends messages on end-user authentication.
For security reason, the webhook URL must differ from the localhost URL. - Edit the realm to which you have added the webhook, click Authentication, and for OpenID Connect, specify Groups Claim Name—a name of the claim in id_token from which to extract end-user groups.
- Click Save.
Further considerations
The user is authenticated, and a session is created for them if the external service returns 200 or 201. If the external service returns a status code other than HTTP 200 or 201, BMC Helix SSO does not create a user session to prevent further user login to the protected BMC application.
A timeout limit of 10 seconds is applicable in the following cases:
- BMC Helix SSO cannot connect with the external server.
- The external service server does not respond after BMC Helix SSO authenticates a user.