Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

With OpenID Connect, trust is established out-of-band, by supplying the Service Provider with a username and a secret. All the necessary technical information such as endpoints, supported algorithms and supported claims can be found at the .well-kown endpoint: https://oidc.surfconext.nl/.well-known/openid-configuration

SURFconext couples the SP and the IdP based on specific rules.

Note that SURFconext itself does not authenticate users: this is done by the connected Identity Providers.

 

<< picture >>

OpenID Connect authentication process in steps

Todo

 

The picture above is a schematic representation of the login flow of the SURFconext OpenID Connect proxy. To get a feeling of how things work in reality, you can play around with our playground: https://authz-playground.connect.surfconext.nl.

  1. User accesses a Service Provider (Relying Party) and clicks "login via SURFconext"

  2. Client (SP) generates OpenID Connect Authorize request and

  3. Client (SP) redirects Redirects user to the OpenID Connect Authorization endpoint

  4. OpenID Connect server receives request and prepares a SAML redirect to authenticate the user

  5. WAYF: User selects institution on WAYF

  6. IdP parses request, authenticates user

  7. IdP redirects back to SURFconext with SAML response

  8. In order to determine where to send the user for authentication, SURFconext shows the user a "Where Are You From?" (WAYF) page with all Identity Providers that have access to the service. The user chooses the institution that is his Identity Provider.

  9. The IdP authenticates the user, usually by asking to enter his credentials. After validating,
  10. the IdP generates a SAML response and redirects the user back to SURFconext with a response message, saying that the user is authenticated. The message also contains the attributes from the user.

  11. SURFconext validates the response message and if OK makes some alterations, e.g. rewriting the user's identifier and adding or modifying attributes and sends the SURFconext sends a SAML response to the OpenID Connect gateway. According to the attribute release policy applied, SURFconext determines the attributes that are allowed through to the Service Provider.

  12. The OpenID connect gateway verifies the reponseresponse, generates a code, and redirects the user to the Client (SP) with the code

  13. The Client (SP) receives the authorization code

  14. The Client (SP) prepares a backchannel request to the exchange the token for an access and ID token

  15. The OpenID connect gateway receives the token , and checks the validity

  16. The OpenID connect gateway generates an access and id ID token

  17. The access and ID token are posted to the redirect URL of the Client (SP)
    The picture above shows what a client could do with an accestoken: The accesstoken

    << picture >>


    The Client (SP) now has 2 tokens; an ID token which contains a pseudonymous identifier and an access token that can be used to verify it can retrieve information from resource servers on behalf of the user. The picture above sketches this process.

     

  18. The Client (SP) has received the access token in the authentication flow. It uses the token to retrieve information from a resource server. The OIDC OpenID Connect server itself has a special resource server, called the userinfo endpoint. This endpoint van can supply user claims (attributes).
  19. The resource server receives the access token, and prepares a request to the introspect endpoint of the OIDC OpenID Connect server, where it checks the validity of the token
  20. The introspect endpoint verifies the validity of the access token, and returns some info about the user, allowing the resource server toidentify to identify the user
  21.  The resource server receives the information on the user
  22.  The resource server retrieves the requested user information and generates a response
  23. The client Client (SP) receives the information about the user (claims, group membership, other resources)

 

 

...