italia / spid-cie-oidc-django

The SPID/CIE OIDC Federation SDK, written in Python
Apache License 2.0
23 stars 25 forks source link

Esempio flusso di autenticazione #238

Closed lollito closed 2 years ago

lollito commented 2 years ago

Dopo aver avviato l'example provider e provando a invocare l'endpoint "/oidc/op/authorization/" si riceve un errore "403 Forbidden" aggiungendo nell'header un csrftoken la chiamata va a buon fine e restituisce l'html di login.

Non si ottiene però il body di risposta riportato nell'esempio:

"In the case of successful user authentication, the response contains the following parameters: code, REQUIRED. Authorization code. state, REQUIRED. State value enclosed in the authentication requests. iss, REQUIRED for CIE, OPTIONAL for Spid. Issuer identifier of the OP. scope, REQUIRED if the scopes are different from those required by RP."

peppelinux commented 2 years ago

be dovresti partire da /oidc/rp/landing e non dall'endpoint dell'OP, questo richiede l'authz request del RP altrimenti 403 :)

lollito commented 2 years ago

Si chiaro, ma dovrei riuscire ad arrivare ad avere il token chiamando gli endpoint da un servizio e non passando dal browser. Quindi ho settato io a mano il csrf token e ricevo un 200 ok ma con un html e non con il json come da api doc con code e state. Probabilmente ho capito male qualcosa. È possibile avere un flusso di esempio di chiamate per arrivare al token?

peppelinux commented 2 years ago

si, è auth code flow come da OIDC iGOV, documentato sulle LG OIDC SPID è un flusso per umani e l'autentica, mediante web form HTML, è un requisito essenziale.

forse ho capito male io le tue intenzioni, ad ogni modo, il flusso è auth code flow + PKCE

peppelinux commented 2 years ago

image

peppelinux commented 2 years ago

Ciao @lollito hai aggiornamenti su questa issue oppure possiamo chiuderla?