Skip to main content

OAuth 2.0 / OpenID Connect

To configure OpenID Connect on the Spectra Analyze or Spectra Detect Manager appliances, go to the appropriate dialog:

  • For Spectra Analyze, navigate to Administration > Configuration > Authentication
  • For Spectra Detect Manager, navigate to Administration > Spectra Detect Manager > Authentication

In the dialog, select the OAuth 2.0/OpenID Connect option. This will expand the dialog and display additional configuration options divided into sections - OpenID Connect client, OpenID Connect provider, Signature verification, Claim mapping, User access, Miscellaneous.

1.1 OpenID Connect client

Find the Client Identifier value previously copied and saved, and enter it into the Client ID field.

Select the type of client (public or confidential). If confidential is selected, find the Secret value previously copied and saved, and enter it into the Client secret field.

Configure the remaining options:

  • Check Verify SSL certificate if the OIDC client needs to verify the SSL certificate of the authorization server
  • Fill the Config URL field if you have previously configured an OpenID Connect discovery document (using the .well-known/openid-configuration endpoint)
  • Select the source from which claims about the user will be taken:
    • ID Token
    • UserInfo endpoint
    • Access Token

If Access Token is selected, additional options are available:

  • Audience: Identifies the intended recipient of the token. This corresponds to the aud value in the token.
  • Relying Party ID/Resource: The ID of the application requesting user authentication from the Identity Provider. In this case, it should be set to the identifier assigned to the appliance in the Identity Provider's configuration.
  • Issuer: Corresponds to the iss value in the token.

Finally, check Enable PKCE in case your authentication provider requires PKCE as additional verification.


1.2 OpenID Connect provider

If the Config URL field was used in the previous step, these fields will already be configured. If you need to enter them manually, examples are below. The Scopes field needs to be validated manually.

Example values

Authorization Endpoint: https://auth.example.com/adfs/oauth2/authorize/

Token Endpoint: https://auth.example.com/adfs/oauth2/token/

UserInfo Endpoint: https://auth.example.com/userinfo

Values listed in the Scopes field refer to the OpenID Connect scopes that will be requested during login. The allatclaims scope should be included to allow access to the claims if using the customized ID Token.

Enter the desired values into the Scopes field. An example using Okta would look like this: openid profile email groups.


1.3 Signature verification

In the Signature algorithm pull-down menu, select the algorithm used to sign the ID token. Supported options are RS256 and HS256.

If RS256 is selected as the algorithm, the Signature public key or the JWKS Endpoint must also be configured.

If the JWKS Endpoint has to be used, its URL can be found in the openid-configuration metadata document as the value assigned to the jwks_uri parameter. This URL should then be entered into the JWKS Endpoint field in the dialog.


1.4 Claim mapping

This section allows mapping OpenID Connect claims to internal user attributes on the appliance.

ID Token or Access Token must be selected in the OpenID Connect client section to retrieve additional claims from customized tokens.

The short name of each claim should be entered into the corresponding field. In the Username field, it is possible to enter unique_name to use the unique name claim; email to use the email address claim; or any other short name to use a particular claim.

Username and Email are mandatory fields, you could use email for both. The First Name, Last name, and Group fields are optional. It is highly recommended to use groups which determine the right level of access for users defined in the User Access section next.

The Claim Mapping Groups Delimiter field should only be used if your IDP sends all groups as one long string of characters with a delimiter. (Not common)


1.5 User access

All fields in this section are optional. Each field accepts only one value (the name of just one group). If a field is left blank, it will be ignored (treated as if it is not configured).

The IDP must be configured to send groups as part of the scopes configured above in order to correctly use the group values in this section.

The Active flag group field accepts the name of the group containing active users. If a user is not in this group, they will be marked as inactive and denied access.

The Superuser flag group field accepts the name of the group containing superusers (administrators). Users will be marked as superusers only if they are in this group.

The Require group field accepts the name of the group containing users who have access to the appliance. Authentication will fail for every user that is not in this group.

The Deny group field accepts the name of the group containing users who are not allowed to access the appliance. Authentication will fail for every user that is in this group.

note

The Active and Require groups function similarly, but only one should be used at a time. Superusers must belong to both the Superuser flag group and either the Active or Require group (whichever group is chosen is also used to determine the full list of users.)


1.6 Miscellaneous

This section can be used to require the authorization server to always re-authenticate the user, even if the user is already authenticated.

To enable this option, select the “Always prompt for login” checkbox.

Configuration reference

Administration > Configuration > Authentication > User Directory: OAuth 2.0/OpenID Connect

OpenID Connect client
Client IDClient Identifier value for the application. This should be provided to the appliance administrator by the OpenID Connect provider.
Client TypeSpecifies if the appliance will be configured as a public or a confidential application. Possible values are Public (do not use Client Secret) and Confidential (use Client Secret). If set to Confidential, the Client secret must be provided in the next field.
Client secretVisible only if Client Type is set to Confidential (use Client Secret). The value used by the application to authenticate to the authorization server. This should be provided to the appliance administrator by the OpenID Connect provider.
Verify SSL certificateIf this checkbox is selected, the OpenID Connect client will verify the SSL certificate of the provider responses.
Config URLCan be optionally used to populate configuration fields by providing the URI discovery mechanism URL of the Identity Provider and clicking the Get button.
Claim SourceSpecifies which source will be used to authenticate and authorize users. Supported values are Use ID Token (OpenID), Use UserInfo endpoint (OpenID) and Use Access Token.
AudienceVisible only if Claim Source is set to Use Access Token. Specifies the expected value of the Audience (aud) field in the token to confirm its validity.
Relying Party ID/ResourceVisible only if Claim Source is set to Use Access Token. The ID of the application requesting user authentication from the Identity Provider. In this case, it should be set to the identifier assigned to the appliance in the Identity Provider's configuration.
IssuerVisible only if Claim Source is set to Use Access Token. Specifies the expected value of the Issuer (iss) field in the token to confirm its validity.
Enable PKCEAdditional verification method used by some identity providers. The code challenge method used by the Spectra appliance is always S256.
OpenID Connect provider
Authorization EndpointURL of the OpenID Connect provider authorization endpoint. This endpoint handles authentication and authorization of users.
Token EndpointURL of the OpenID Connect provider token endpoint. This endpoint can be used by a client application to request and obtain ID, refresh, and access tokens.
UserInfo endpointVisible only if Claim Source is set to Use UserInfo endpoint (OpenID). URL of the OpenID Connect provider UserInfo endpoint. The UserInfo endpoint is a protected resource from which client applications can retrieve information about claims for the logged-in user.
ScopesProvide one or more scopes that should be requested during login.
Signature verification
Signature algorithmSelect which algorithm should be used to sign ID tokens. Supported options are RS265 and HS256. If RS256 is selected as the algorithm, the Signature public key or the JWKS Endpoint must also be configured.
Signature public keyThe key used to sign ID tokens when using the RS256 signature algorithm.
JWKS EndpointURL of the JWKS (JSON Web Key Set) endpoint configured by the OpenID Connect provider.
Claim mapping
Username(Optional) Short name of the claim containing the unique username for identifying the user. Usernames are case-insensitive. For example, "john" and "John" cannot coexist.
E-mailShort name of the claim containing the email address of the user. The address itself doesn't have to be unique - multiple users can have the same email.
First nameShort name of the claim containing the first name of the user.
Last name(Optional) Short name of the claim containing the last name of the user.
Groups(Optional) Name of the claim that contains a list of user groups.
Groups Delimiter(Optional) Character to split the Groups string on.
User access
Active flag groupAccepts names of one or more groups containing active users. If a user is not in one of these groups, they will be marked as inactive and denied access.
Superuser flag groupAccepts names of one or more groups containing superusers (administrators). Users will be marked as superusers only if they are in one of these groups.
Require groupAccepts names of one or more groups containing users who have access to the appliance. Authentication will fail for every user that is not in one of these groups.
Deny groupAccepts names of one or more groups containing users who are not allowed to access the appliance. Authentication will fail for every user that is in one of these groups.
Access Groups DelimiterCharacter to split the User Access Groups on. Characters entered in this field must not be used in any access group name. Max length of delimiter is 2 characters.
Miscellaneous
Always prompt for loginSelect the checkbox to require the authorization server to always re-authenticate the user, even if the user is already authenticated. If this option is enabled, the prompt=login parameter will be added to the authentication query. This option should not be used as a security measure, because the parameter can be removed by users to bypass re-authentication.