Project

General

Profile

Support #49699

OIDC : Ajout des code_challenge_methods_supported à la configuration well-known

Added by Benjamin Renard 7 months ago. Updated 6 months ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
22 Dec 2020
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

J'ai fait un test de configuration d'une authentification OIDC avec Authentic et un client utilisant la lib OpenID-Connect-PHP (https://github.com/jumbojett/OpenID-Connect-PHP) et quand je tente de la configurer en mode PKCE, j'ai une erreur m'indiquant que le paramètre code_challenge_methods_supported n'est pas fourni dans la configuration well-known de l'IDP. Effectivement, ce paramètre semble absent du JSON retourné par Authentic sur l'URI /.well-known/openid-configuration.

Authentic supporte-t-il PKCE ? Est-ce le client qui réclame quelques choses hors du standard OIDC ?

History

#1

Updated by Frédéric Péters 7 months ago

Il n'y a pas de prise en charge de PKCE dans Authentic.

Sur le sujet précédemment Benjamin D. faisait cette réponse :

Le plus simple est d'utiliser le mode authorization code grant est de laisser la résolution du code à la partie serveur via les crédentiels du client, il est dit que c'est équivalent à PKCE dans le draft (https://tools.ietf.org/html/draft-ietf-oauth-security-topics-11#section-2.1.1).

Aussi dans la même section il y a cette phrase :
« OpenID Connect clients MAY use the "nonce" parameter of the OpenID Connect authentication request as specified in [OpenID] in conjunction with the corresponding ID Token claim for the same purpose. »

et authentic gère bien le paramètre nonce, il vous suffit donc de générer un nonce sur la partie serveur de votre client et vérifier que celui-ci correspond lors de la consommation de l'id token. Pour le diagramme de séquence :

participant "Authentic, OIDC provider" as A
participant "App Mobile" as M
participant "Backend App Mobile, OIDC client" as W

M -> W : ouverture d'une session (avec un cookie de session ou autre)
W -> M : attribution d'un nonce (stocké en session ou dans un cookie HttpOnly)
M -> A : requête autorisation OIDC
note over A, M : connexion
A -> M : retour code, ou id token
M -> W : soumission de l'id token (ou du code pour résolution) pour connexion, validation de l'id-token dont le nonce (comparaison avec la valeur en session ou dans le cookie HttpOnly)

Ce mécanisme interdit le rejeu (si tant est qu'une interception soit possible dans ce diagramme).

#2

Updated by Benjamin Renard 6 months ago

Frédéric Péters a écrit :

Il n'y a pas de prise en charge de PKCE dans Authentic.

Sur le sujet précédemment Benjamin D. faisait cette réponse :

Désolé du délai de réponse, j'avais zappé… Merci pour ton retour et pour les précisions de Benjamin. C'était juste un test, donc pas de souci pour moi ici. J'espère n'avoir pas à traiter de cas ou PKCE soit un impératif, mais jusqu'ici, dans les intégrations qu'on a eut à faire, l'application cliente ne gérait que le mode implicite/natif de toutes manières.

Si le cas ce présent, j'essayerai de me rappeler l'existence de cette explication de Benjamin.

Also available in: Atom PDF