6

Voglio sapere, qual è il processo interno per crittografare e decodificare un token Bearer utilizzato in OAuth2 e il codice in Asp.Net Identity.Come vengono creati i token bearer (OAuth2)?

Una volta che il server riceve un token, è in grado di recuperare UserId, ruoli, reclami e tutte le proprietà al suo interno. Quindi, come vengono decifrati i token Bearer? Che cos'è l'algoritmo di crittografia e il codice utilizzato?

+2

Controllare il post del mio blog in cui descrivo come generare token come pizzo, da cosa dipende e cosa succede quando una risorsa protetta riceve un token. http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/ –

+0

@TaiseerJoudeh Grazie mille per il commento sulla mia domanda. Ho letto il tuo post (e tutto ciò che scrivi sul tuo blog), ma sono interessato al processo di crittografia del token Bearer. Quali sono gli algoritmi di crittografia utilizzati e il suo processo. In altre parole, come Asp.Net Identity sta facendo internamente questo processo. –

risposta

1

Da dove si ottiene il token? I token sono raramente crittografati (a volte lo sono), ma saranno sempre codificati (e firmati). OpenID (un protocollo sopra OAuth2) utilizza JWT. OAuth2 (non OpenID) utilizza i token "opachi".

Vedere http://jwt.io per le librerie sulla decodifica di un JWT.

-3

Ecco una risposta breve, tutto quello che ho tempo. OAuthBearerTokenOptions contiene il codice necessario per creare il token. Deve essere configurato nell'avvio di owin.

app.UseOAuthBearerAuthentication(OAuthBearerOptions); 

Dato che ...

var ticket = new AuthenticationTicket(identity, new AuthenticationProperties()); 
var currentUtc = new SystemClock().UtcNow; 
ticket.Properties.IssuedUtc = currentUtc; 
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(expirationMinutes)); 
string accessToken = oAuthBearerAuthenticationOptions.AccessTokenFormat.Protect(ticket); 
0

Ecco un po 'di Windows Form tool che decifra OAuth 2.0 portatore gettoni usando MachineKeyDataProtector.

Quindi, se l'app è ospitata in IIS, è possibile utilizzare lo strumento precedente.

OAuth 2.0 Bearertoken ottiene:

  1. serializzato in formato binario

  2. MachineKey criptato (DPAPI viene utilizzato quando app è self-hosted, ecc)

  3. Base64 codificato

+0

questo strumento è solo un readme e licenza –

+0

Sì, infatti, devi andare qui: [link] (https://github.com/Legends/BearerTokenDeserializer/tree/Initial) – Legends

+0

Hm, ok ... potrebbe essere utile per specificare di avere un ramo chiamato "Iniziale". Tendo a pensare che un ramo master vuoto rappresenti un progetto che non è ancora stato avviato. –

Problemi correlati