6

Chcę wiedzieć, jaki jest wewnętrzny proces szyfrowania i odszyfrowywania tokena na Okaziciela używanego w OAuth2 i kodu w Asp.Net Identity.Jak tworzone są tokeny na okaziciela (OAuth2)?

Gdy serwer otrzyma token, będzie mógł pobrać UserId, role, roszczenia i wszystkie właściwości w nim zawarte. Jak są odszyfrowane tokeny na okaziciela? Co to jest algorytm szyfrowania i używany kod?

+2

Sprawdź mój wpis na blogu, w którym opisuję sposób generowania tokenów koronki, od czego to zależy i co się dzieje, gdy chroniony zasób otrzymuje token. http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/ –

+0

@TaiseerJoudeh Dziękuję bardzo za komentarz na moje pytanie. Czytałem Twój wpis (i wszystko, co piszesz na swoim blogu), ale interesuje mnie proces szyfrowania tokena na okaziciela. Jakie są używane algorytmy szyfrowania i jego proces. Innymi słowy, w jaki sposób Asp.Net Identity wykonuje ten proces wewnętrznie. –

Odpowiedz

1

Skąd otrzymujesz token? Tokeny są rzadko szyfrowane (czasami są), ale zawsze będą zakodowane (i podpisane). OpenID (protokół na OAuth2) używa JWT. OAuth2 (nie OpenID) używa tokenów "nieprzezroczystych".

Zobacz biblioteki o zdekodowaniu JWT pod numerem http://jwt.io.

-3

Oto krótka odpowiedź, wszystko, na co mam czas. OAuthBearerTokenOptions zawiera kod potrzebny do utworzenia tokena. Musi być skonfigurowany w twoim startupie.

app.UseOAuthBearerAuthentication(OAuthBearerOptions); 

Zważywszy, że ...

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

Oto mały Windows Forms tool który odszyfrowuje OAuth 2.0 okaziciela żetony za pomocą MachineKeyDataProtector.

Jeśli Twoja aplikacja jest hostowana w IIS, możesz użyć powyższego narzędzia.

OAuth 2.0 Bearertoken wystąpią:

  1. szeregowane w formacie binarnym

  2. MachineKey szyfrowane (DPAPI jest używany, gdy aplikacja jest self-hosted, itd.)

  3. Base64 zakodowane

+0

to narzędzie jest tylko plikiem readme i licencją –

+0

Tak, rzeczywiście, musisz iść tutaj: [link] (https://github.com/Legends/BearerTokenDeserializer/tree/Initial) – Legends

+0

Hm, ok ... może być pomocne aby określić, że masz gałąź o nazwie "Początkowa". Mam wrażenie, że pusty oddział główny reprezentuje projekt, który jeszcze się nie rozpoczął. –

Powiązane problemy