Skip to main content
We recommend all interactive applications use Authorization Code flow with PKCE where appropriate. Implicit and Hybrid flow are not secure enough and should be avoided at all costs. Deprecated.
In the Implicit flow, the client application requests an ID token and possibly also an access token.

Scenario: client application requests ID token only

  1. The user clicks Sign in.
  2. The client application redirects the user agent to the authorization endpoint of the identity provider.
    • Response type is set to id_token, indicating the Implicit flow and that we’re requesting an ID token only.
    • A nonce value is set to mitigate replay attacks.
    Parameters are described below.
  3. The user enters their credentials.
  4. An identity provider authenticates the user and asks for consent to access their resources on behalf of the Relying Party.
  5. With consent given, the authentication server sends an authorization response message from its authorization endpoint. This redirects the user-agent back to the Relying Party using the redirection URI provided earlier. This URI includes an ID token in a URI fragment (host address and id_token separated by hash (#)). This ID token contains the standard claims, including some claims normally found in the profile and email scopes.
  6. The user agent needs to parse the ID token encoded values that were returned in the URI fragment, and then pass them to the client’s processing logic.
    • The application will likely contain a script that extracts the ID token from the full redirect URI.
  7. It’s then up to the client application to validate the ID token before accessing and trusting the claims it contains.

Parameters

Scenario: client application requests both ID token and access token

This scenario is almost the same as the ID token only scenario, except here we set response type to token id_token.
After user authentication and consent is given, instead of just an ID token, the identity provider also sends an access token in a URI fragment.

Parameters

The client application can validate the ID token, and use the access token and token type to access the tenant’s web services.