Fides Documentation – Ethyca

OAuth2

SaaS integrations support two OAuth2 flows:

This Authentication Code flow has the following configuration values:

The Client Credential flow has all these values except for authorization_request since it is not required for this flow.

Sample configuration Permalink for this section

Each OAuth2 request is fully configurable to account for the different ways the parameters can be mapped to a request. The following examples demonstrate the requests generated from sample configuration files.

OAuth2 Authorization Code example

authentication:
  strategy: oauth2_authorization_code
  configuration:
    authorization_request:
      ...
    token_request:
      ...
    refresh_request:
      ...

Authorization request Permalink for this section

authorization_request:
    method: GET
    path: /auth/authorize
    query_params:
    - name: client_id
        value: <client_id>
    - name: redirect_uri
        value: <redirect_uri>
    - name: response_type
        value: code
    - name: scope
        value: <scope>
    - name: state
        value: <state>

The above authentication_request will generate the following:

https://<domain>/auth/authorize?client_id=<client_id>&redirect_uri=<redirect_uri>&response_type=code&scope=<scope>&state=<state>

The placeholders are sourced from the values defined in the connector_params of your SaaS config.

The <state> placeholder is generated automatically with each authorization request. This authorization URL can be retrieved by calling:

https://{{domain}}/api/v1/connection/{{connection_key}}/authorize

Token request Permalink for this section

token_request:
    method: POST
    path: /oauth/token
    query_params:
    - name: client_id
        value: <client_id>
    - name: client_secret
        value: <client_secret>
    - name: grant_type
        value: authorization_code
    - name: code
        value: <code>

The <code> placeholder is defined automatically by Fides.

The above token_request configuration generates the following:

https://<domain>/oauth_token?client_id=<client_id>&client_secret=<client_secret>&grant_type=authorization_code&code=<code>

This request is called automatically after Fides receives a callback response to the https://{{domain}}/api/v1/oauth/callback endpoint.

Refresh request Permalink for this section

refresh_request:
    method: POST
    path: /oauth/token
    query_params:
    - name: client_id
        value: <client_id>
    - name: client_secret
        value: <client_secret>
    - name: grant_type
        value: refresh_token
    - name: refresh_token
        value: <refresh_token>

The <refresh_token> placeholder is defined automatically by Fides.

The above refresh_request configuration generates the following:

GET https://<domain>/oauth_token?client_id=<client_id>&client_secret=<client_secret>&grant_type=refresh_token&refresh_token=<refresh_token>

This is called automatically when the access_token is about to expire. The expiration is usually defined in the response to the token request. If the expiration is not returned by the API, it can be specified manually by setting the expires_in field (which is defined in seconds):

authentication:
  strategy: oauth2_authorization_code
  configuration:
    expires_in: 3600
    authorization_request:
      ...
    token_request:
      ...
    refresh_request:
      ...

Usage checklist Permalink for this section

To use OAuth2 as a connection strategy, the following must be configured first:

For all OAuth2 flows Permalink for this section

Per-connector configuration Permalink for this section

Additional steps for authentication code flow Permalink for this section

One-time configuration Permalink for this section

Per-connector configuration Permalink for this section

OAuth2 authentication code flow diagram Permalink for this section