Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device.
Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
Unlike other authentication methods, it's not possible to configure OpenID Connect authentication method completely with SSO Management UI, but SSO Management API is required. All the steps here are done using Management API.
OpenID Connect is a subset of OAuth 2.0. Read more on configuring OAuth 2.0 in SSO from OAuth2 - SSO
Reference of OAuth 2.0 and OpenID Connect 1.0 client implementation in SSO Server authentication method OpenIDConnectMethod.
If provider does not support registration protocol then this step is optional but you can use the response body as a base for manually building the registration response in step 8.
7. Send registration request to OpenID Connect provider, and receive registration response
If provider does not support registration protocol then you need another method to register SSO Server as client and receive client_id and possible client_secret. Then you need to add them to the payload for next step manually.
8. Register registration response with SSO Server
This example has additional configuration for using acr_values in OIDC client and it is using keys for token endpoint authentication instead of a secret. If the provider does not support the registration protocol then you need to manually construct the registration response with the required parameters.
This value must be registered with OpenID Provider
scope
The requested scopes as a space separated list.
Should be "openid" if registration parameter is not defined
state
Random value
client_id
Value of registration parameter "client_id"
OpenID Connect parameters
nonce
Random value
prompt
"login" if force-authn request is enabled
"none" if is-passive request is enabled
max_age
"0" if force-authn request is enabled
ui_locales
When "ui_locales_supported" is a non-empty array of locale tags:
Best match for SSO Server user interface locale in "ui_locales_supported".
Value of registration parameter "default_ui_locales", provided it's also present in "ui_locales_supported".
First item in "ui_locales_supported".
When "ui_locales_supported" is not set:
SSO Server user interface locale.
Value of registration parameter "default_ui_locales".
When "ui_locales_supported" is set, but is an empty array, the parameter "ui_locales" will not be set.
login_hint
Pass-thru value from authorization request
acr_values
Value of "acr_values" in the extension parameter "ubisecure_request_parameters" in the client metadata.
Signed request
Registration parameter "request_object_signing_alg" controls if SSO Server creates signed request. If parameter is not defined then request is not signed.
SSO Server attempts to choose one of the following token validation mechanisms.
ID Token
Enabled if "id_token" is present in Token Response, and if "id_token_signed_response_alg" Client Configuration value is not "none"
UserInfo
Enabled if "userinfo_endpoint" is defined in Provider Metadata..
Introspection
Enabled if "introspection_endpoint" is defined in Provider Metadata.
Configuration
Configuration strings
It is possible to configure OpenID Connect method via management UI. Following table lists, which parameters can be added info Configuration section when OpenID Connect method is selected.
Parameter
Description
Parameter
Description
oidc.acr
Specifies the method filtering. This can be used for filtering method visibility within application based on the received acr_values. One of the received acr_values must match with the values defined by this parameter.
Client metadata
When registering the client metadata as JSON, Ubisecure SSO provides the following extensions:
Parameter
Type
Since
Description
Parameter
Type
Since
Description
ubisecure_request_object_query_parameters
string array
8.4.1
When sending an authorization request as Request Object by Value, controls the claims that should be extracted outside of the request object and sent as HTTP query parameters.
ubisecure_request_parameters
object
8.4.1
Controls static parameters to be sent with authorization requests. The keys on the root level of the object will be mapped as query parameters. Values will be URL encoded. Any JSON type will be accepted and passed as an authorization request parameter
ubisecure_request_mode
string
8.4.1
Controls HTTP method and parameter format used for submitting the authorization request. Value form_post will use form encoded body and POST method. Value query will use query string for parameters and GET method. If not specified the default value is query.
An example client metadata with Ubisecure extensions:
GET /authorization?request=eyJ...&client_id=test-client&scope=openid&response_type=code&acr_values=my-static-acr-values&claims=%7B%22some-complex%22%3A%7B%22key%22%3A%7B%22value%22%3Atrue%7D%7D%2C%22another-complex%22%3A%7B%22some-key%22%3A%7B%22test%22%3Atrue%7D%7D%7D
URL length
Please note that when sending authorization requests using GET the request URL length might exceed the limit in some browsers. Care must be taken when sending many query parameters using HTTP GET.
Compatibility flags
The following compatibility flags are supported for OpenID Connect authentication methods
Flag
Since
Applies to
Description
Flag
Since
Applies to
Description
StrictAudiencePolicy
8.4.1
Specific authentication method or system-wide
Controls JWT aud claim construction and validation policy. If set, the aud claim is required to match the provider's invoked endpoint. If not set, accepts and generates aud claim with issuer, token endpoint and invoked endpoint.
SecuredAuthorizationRequestValidate
8.4.1
Specific authentication method or system-wide
Controls JWT claims validation of secured authorization request. If set, then implement pre 8.4.1 validation. Only iss claim is validated. If not set, then aud, sub, exp and jti claims are validated but only when present.