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 .
User clicks "login via SURFconext"
Client (SP) generates OpenID Connect Authorize request
Client (SP) redirects user to the OpenID Connect Authorization endpoint
OpenID Connect server receives request and prepares a SAML redirect
WAYF: User selects institution on WAYF
IdP parses request, authenticates user
IdP redirects back to SURFconext with SAML response
SURFconext sends a SAML response to the OpenID Connect gateway
The OpenID connect gateway verifies the reponse, generates a code, and redirects the user to the Client (SP) with the code
The Client (SP) receives the code
The Client (SP) prepares a backchannel request to the exchange the token for an access and ID token
The OpenID connect gateway receives the token, checks the validity
The OpenID connect gateway generates an access and id token
- 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 can be used to verify it can retrieve information on behalf of the user
- The SP has received the access token in the authentication flow. It uses the token to retrieve information from a resource server. The OIDC server itself has a special resource server, called the userinfo endpoint. This endpoint van supply user claims (attributes)
- The resource server receives the access token, and prepares a request to the introspect endpoint of the OIDC server, where it checks the validity of the token
- The introspect endpoint verifies the validity of the access token, and returns some info about the user, allowing the resource server toidentify the user
- The resource server receives the information on the user
- The resource server retrieves the requested user information and generates a response
- The client (SP) receives the information about the user (claims, group membership, other resources)