OAuth 2.0/OIDC authentication flow
Learn more about the authentication flow for OAuth 2.0 compliant SSO.
- User as the Resource Owner
 - Reltio Data Cloud as the Resource Server:
- Hub at a glance
 - Reltio OAuth2 service
 
 - Third-party identity provider (IdP) as the Authorization Server (for more information, see topicOAuth 2.0/OpenID Connect (OIDC) Single Sign On (SSO))
 
This diagram illustrates the authentication flow among these parties.
This authentication flow typically includes the following interactions:
- A user tries to log in to a Reltio tenant using the Hub.
 - The Hub receives the request (with 
tenantId) and redirects the user to the Reltio OAuth2 service. - The Reltio OAuth2 service receives an authorization request and automatically redirects the user to the associated third-party Authorization Server to get an OAuth code. Using the 
tenantIdprovided by Hub, Reltio OAuth2 service chooses an IdP and redirects the user to the IdP login page. For example.https://auth-srv.customer.com/as/authorize?client_id=customer.reltio&client_secret=1A2b3C&grant_type=code&scope=profile_name,profile_email&redirect_uri=https://auth.reltio.com/callback&state=ABCDwhere:- Login endpoint is the URL defined in the IdP configuration (for more information see section OAuth 2.0/OpenID Connect (OIDC) Single Sign On (SSO)).
 - state is an internal identifier of the Authorization Server request to tie the redirect URL to the Reltio OAuth2 service callback page.
 
 - The Hub gets a token for the user from Reltio OAuth2 service and sends it in an authorization request to Reltio OAuth2 service. For example.
https://auth.reltio.com/authorize?grant_type=code&code=<Reltio code> - The Reltio OAuth2 service generates an OAuth token request for the Authorization Server. For example:
https://auth-srv.customer.com/as/authorize?grant_type=authorization_code&code=<code>where:- Token endpointi s the URL defined in the IdP configuration.
 - code is the user token received from Authorization Server in the previous step.
 
 - The Reltio OAuth2 service sends a validation request with an appropriate authorization header to the IdP to obtain user information For example.
https://auth-srv.customer.com/as/useror
https://auth-srv.customer.com/as/checkTokenwhere
User info endpointis defined in the IdP configuration. - The Reltio OAuth2 service tries to associate the user information from the IdP with a user it holds using 
Reltio OAuth2-IdPbased on an unambiguous identifier such as an email address or user ID:- 
                            
If it can map the user, the Reltio Data Cloud validates the roles/privilege against those defined in IdP.
 - 
                            
If it can't map the user, the Reltio Data Cloud creates a new user in Reltio OAuth2 with the roles predefined in the IdP configuration.
 
 - 
                            
 - The Authorization Server returns a response containing the OAuth 
access_tokenandrefresh_token, which must be within 400 characters of each other.Note: For a refresh token request, the Reltio OAuth2 service uses the refresh token directly in the IdP.