Sto sperimentando un'autenticazione OAuth2 in un servizio web asp.net.
Quando si genera accidentalmente una quantità enorme di attestazioni, ho scoperto che il token al portatore aumenta drasticamente in termini di dimensioni. Ciò mi porta a presupporre che le attestazioni e le eventuali altre informazioni relative all'autorizzazione vengano memorizzate nel token al portatore.
(In precedenza avevo l'impressione che il token al portatore fosse solo un altro tipo di ID di sessione e attestazioni / ruoli in cui è memorizzato il lato server)
Le mie ipotesi:
- Le attestazioni di identità sono memorizzate nel token al portatore e quindi accessibili dal cliente.
- Mi sento incoraggiato dalle linee guida per sviluppatori (MSDN, StackOverFlow) per archiviare informazioni relative alle identità nelle rivendicazioni (ad esempio "ClientID" = xxxx, "CanViewSensitiveData" = true, ecc.). L'ho considerato "stato dell'arte".
La combinazione dei due punti sembra non essere corretta. L'invio / ricezione di dati sensibili all'autenticazione / autorizzazione al / dal client offrirebbe la possibilità a un cliente canaglia di manomettere il token al portatore e di modificare i reclami / ruoli contenuti. Precedentemente, con l'utilizzo dell'ID di sessione, questo è stato attenuato da una generazione casuale del sessionID e dell'enorme entropia.
Sono certo che gli inventori di questa tecnologia / protocollo hanno già impedito la manomissione dei dati contenuti, ma non sono sicuro di come. Qualcuno potrebbe far luce su questo argomento? I miei presupposti sono errati o c'è una specie di firma di token coinvolta?