OAuth Single Sign On

Accelerate uses OAuth2 to facilitate SSO from other platforms. If your organization likes to support SSO to Accelerate, you can register your OAuth implementation by contacting support. We request the following information:

  • Endpoint url for authorization
  • Endpoint url to retrieve an access token
  • Endpoint url to retrieve userinfo, especially the user id, to link the account with
  • Client ID
  • Client Secret

The OAuth involves the following steps:

Steps:
  • Authorization (endpoint /authorization)
  • Token (endpoint /token)
  • User info (endpoint /user_info)

Communication is expected to be in HTTP/1.1 with TLS and has json as content type.

Process for the end user

When an Accelerate user wants to utilize SSO he can go to his account settings page and navigates to the Single Sign On section. Accelerate will display all platforms that are currently supported. By clicking on the “link” button the user will be redirected to the /authorization endpoint and asked to grant Accelerate access to the user basic info. The platform should then redirect the user back to Accelerate. Behind the scenes an access token will be requested by Accelerate, after that a call will be made to /user_info to retrieve the user external identifier. That will be used to link the user’s account with Accelerate. The linking process is now completed.

Now that the user has set up SSO successfully he can now log out and go back to the login page of Accelerate. A new button should appear “Login with <platform>”. When clicking that button he’ll be again sent to the /authorization endpoint, but this time it should redirect him back directly to Accelerate. Accelerate will make a call to /user_info and tries to find a match with the returned user identifier. If a linked account is found, the user will be logged into Accelerate otherwise the action is aborted.

Authorization

The first step in the OAuth flow is authorization. The user of your platform can grant Accelerate to link both accounts. The user also gets redirected here for the login with SSO. That’s why it’s desirable to only prompt the user once during the account linking phase. Accelerate makes a request to your /authorization endpoint with the following GET parameters.

Parameter Description
state unique string
response_type Usually “code”
approval_prompt Whenever to ask for approval, usually “auto”
redirect_uri e.g. https://accelerate.hdconnect.nl/endpoint/sso-callback.php?domain=LICENSE&platform=PLATFORM
client_id client id for Accelerate

The redirect uri is different for each accelerate license as it needs to contain the license identifier (domain) and your platform identifier (platform). The platform identifier is created by us to identify which OAuth implementation needs to be handled.

Token

After the user has granted our application to connect to your platform, Accelerate will call a POST request to the token endpoint. This should give Accelerate access to the /user_info endpoint and possible others, but not relevant in this use case.

Field Description
access_token The access token
refresh_token Used to acquire a new access token when it has expired
expire Unix timestamp when the access token will expire

User info

The final endpoint is /user_info. Accelerate will call this endpoint to find out the account’s identifier. This endpoint should be protected by the OAuth access token.

Field Description
id This field is mandatory, because it’s used to link accounts
name optional
email optional