Pages enfant
  • Elements de repères OpenID Connect (vs CAS & shibboleth)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Authorization code flow

C'est le plus classique, proche de CAS et/ou proxy CAS :

CASOIDCSAML 2
Server

OP (OpenID Provider) ou Authorization Server

IDP
Service

Client ou RP (Relying Party)

SP
/login
/
authorization
 
_endpoint

/serviceValidate

/p3/serviceValidate

/
token_endpointHTTP Artifact
 
/

userinfo_endpointAttribute Query
Paramètres :
  


serviceclient_id & redirect_uri & state
SAMLRequest
ticket

code

Artifact
gatewayprompt=noneisPassive
renewprompt=loginForceAuthn

acr_valuesAuthnContextClassRef

Un peu similaire :

  


proxy ticket (valide une fois)access token (valide un certain temps)
 

PGTrefresh token
 

Comparé à CAS, le client (service) doit s'enregistrer sur l'IDP pour avoir un "client_id" et un "client_secret".

Autres code flow

Flowresponse_typeresponse_mode
Authorization code"code"query
Implicit"id_token token" ou "id_token"fragment
Hybrid"code id_token" ou "code token" ou "code id_token token"fragment

Dans le cas "response_type=id_token", l'id_token contient toutes les claims demandés par le paramètre "scope".

...

http://connect2id.com/products/server/docs/config/core#op-authz-responseModes
https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html

JWT : id_token vs JWT access token

id_token est un JWT, mais ne doit pas être utilisé ailleurs que dans le client. Donc pas dans l'API.

L'access token peut être un JWT (rfc9068) si on le demande au Authorization Server

  • pour Apereo CAS, c'est avec l'option "jwtAccessToken" de "OAuthRegisteredService"
  • pour Keycloak, il semble que les access token soit toujours des JWT

Cf https://auth0.com/blog/id-token-access-token-what-is-the-difference/

Mapping eduPerson attributes to OIDC claims

https://wiki.refeds.org/display/GROUPS/OIDCreMapping+SAML+attributes+to+OIDC+Claims

Implémentations OpenID Connect

Apereo CAS

NB : le userinfo_endpoint est /profile