Open ID Connect Flashcards
Na czym polega problem lokalnej bazy użytkowników vs zewnętrzny serwis?
Np. nasza własna baza danych vs Google/FB/Twitter i ich serwisy do autentykacji.
Ponadto jeden IdP (Identity Provider) może obsługiwać wiele aplikacji. Czy to oznacza Single Point of Failuer - nie jeśli aplikacja jest redundantna.
Kiedy został ustaniowiony Open ID Connect?
Został ustanowiony w 2014 roku.
Czy był to pierwszy system do autentykacji/autoryzacji?
Nie, np. wcześnieł był Open ID 1, Open ID 2, SAML
Z jakich głównych elementów składa się Open ID Connect?
- Łatwe do obsługi tokeny - klient otrzymuje token zawierający informacji identyfikujące w formie JWT (Java Web Token). Jest to tzw. ID Token.
JWT Token może używać róznego rodzaju algorymtów szyfrujących, hashujących i kompresji. - Bazowany na protokole oAuth 2.0 - wsparcie dla aplikacji mobilnych, desktopowych i webowych. Oznacza to również posiadanie jednego protokołu do uwierzytelnienie i autoryzacji.
- Prostota - Open ID Connect występują w prostszych i bardziej zaawansowanych postaciach - lepszych dla Enterprise
Czym różni się oAuth 2.0 vs Open ID Connect?
oAuth 2.0 służy do delegowania autoryzacji, a Open ID Connect do “federated authentication”.
Czym jest Identity Token?
Przypomina dowód osobisty, który jest w formacie JWT i jest podpisany przez Identity Provider. Żeby go uzyskąc klient musi wysłać żądania do IP
Jak nazywa się tożsamoś użytkownika w JTW?
sub (subject)
Jak nazywa się organ wydający token?
iss (issuing authority)
Jak nazywa się grupa użytkowników dla której wygenerowany jest token?
aud (audience)
Czym jest parametr nonce tokenu JWT?
Służy do walidacji tokenu. Pozwala powiązać sesję użytkonwika z ID tokenem. Przeciwdziała atakom replay.
Jak wykorzystać parametr nonce?
Jeśli jest obecny w tokenie:
- Klient powinien zweryfikować czy wartość nonce jest taka sama jak ta przesłana razem a AuthReq.
- Jeśli nonce był cześcią AuthReq to serwer musi go zwrócić razem z tokenem. Serwer nie modyfikuje w żaden sposób wartości nonce. Jest ona case-sensitive.
Jak nazywają się parametry określające kiedy i jak (pod kątem siły) użytkownik został uwierzytelniony?
auth_time i acr
Jak nazywa się parametr mówiący o tym kiedy użytkownik dokonał uwierzytelnienia?
iat
Jak nazywa się parametr mówiący o tym kiedy token wygasa?
exp
Czy token JWT może zawierać dodatkowe dane?
Tak, dowolny pary wartości - nazywanych “claims”
Czy token może być zweryfikowany po stronie serwera?
Tak, token JWT powinien być podpisany
Czy token jest szyfrowany?
Nie, ale może zostać zaszyfrowany w celu dodatkowej ochrony.
Jak klient nazywany jest w terminologii OpenID Connect?
Relying Party (RP)
Gdzie powinno przebiegać potwierdzenie tożsamości użytkownika?
Zawsze w obrębie bezpiecznego kontekstu - po stronie serwera.
Czy protokół OpenID Connect definiuje proces sprawdzenia tożsamości?
Nie
Jaki protokół jest wykorzystywany do uzyskania token’u?
oAuth 2.0
Jakie przepływy uwierzytelnienie oferuje oAuth 2.0?
- Authorisation code flow - najczęstszy sposób. Używany przez aplikacji webowe i natywne. Wymaga przekierowania na inną stroną z formularzem logowania. W ten sposób użytkownik uzyskuje od OP. Za pomocą “back-channel request” uzyskiwany jest ID token. Dzięki temu przeglądarka bezpośrednio nie ma dostępu do tokenu.
- Implicit flow - dla aplikacji JS, które nie mają backendu. ID token jest uzyskiwany bezpośrednio po przekierowaniu od OP. Bez “back-channel request”.
- Hybrid-flow - rzadko używany. Pozwala frontendowi i backendowi na uzyskiwanie token’ów niezależnie od siebie. Kombinacja code i impicit flow.