OpenID Connect (OIDC)
- is an extension of Open Authorization (OAuth) adding delegated authentication (i.e. allowing Client application(s) to obtain a Resource Owner’s information)
- is not backward compatible with OpenID 2 (or 1 for that matter). OpenID Connect is effectively version 3 of the OpenID specification
OIDC Entities
Click here to expand...
Link to originalauthentication/authorization/delegation entities/actors:
Entity/Actor
Description
- Resource Owner (RO)
- End-User
- Principal
the entity that is in control of the data exposed by the API, typically an end-user
- Client
- Relying-Party (RP)
the mobile app, website, etc. that wants to access data on behalf of the Resource Owner
- Authorization/OAuth Server/Service (AS)
- Identity-Provider (IdP)
- OpenID Provider
- a combination or sometimes a separation of:
- Authentication Server - deals with authenticating the End-User
- Security Token Service (STS) or Token Endpoint - issues tokens (e.g. Access Tokens, Refresh Tokens, ID Tokens)
- Resource/UserInfo Server/Provider (RS)
- Service-Provider (SP)
the service/application/resource:
- that exposes the protected resource/API and requires authentication/authorization of any principal wishing to access it
- agrees to trust the Identity-Provider to authenticateClient
NOTE: This 1 of many Grant Flows (above portrays Implicit Flow of OAuth & OpenID Connect)
OIDC Terms
|
Terms |
Description |
|---|---|
|
Claim |
|
|
Scope |
|
| |
| |
| |
|
UserInfo |
|
OIDC Flows
Link to originalOpenID Connect defines different types of authentication flow to cater to different Client types
Flow
Description
Token Flow (Implicit Flow)
- front-channel only (less secure)
- required for client apps that have no “back end” logic on the web server, like a Javascript app
- OAuth 2.0 flow in which all tokens (e.g. Access Token, Refresh Token, ID Token) are returned from the Authorization Endpoint, and neither the Token Endpoint nor an Authorization Code are used
Code Flow (Authentication Code Flow)
- front-channel and back-channel (more secure)
- designed for client apps that have a back end that can communicate with the IdP away from prying eyes
- OAuth 2.0 flow in which an Authorization Code is returned from the Authorization Endpoint and all tokens (e.g. Access Token, Refresh Token, ID Token) is returned from the Token Endpoint
Hybrid Flow
- OAuth 2.0 flow in which an Authorization Code is returned from the Authorization Endpoint, some tokens are returned from the Authorization Endpoint, and others are returned from the Token Endpoint
