Open ID Connect Flashcards

1
Q

Na czym polega problem lokalnej bazy użytkowników vs zewnętrzny serwis?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Kiedy został ustaniowiony Open ID Connect?

A

Został ustanowiony w 2014 roku.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czy był to pierwszy system do autentykacji/autoryzacji?

A

Nie, np. wcześnieł był Open ID 1, Open ID 2, SAML

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Z jakich głównych elementów składa się Open ID Connect?

A
  1. Ł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.
  2. 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.
  3. Prostota - Open ID Connect występują w prostszych i bardziej zaawansowanych postaciach - lepszych dla Enterprise
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym różni się oAuth 2.0 vs Open ID Connect?

A

oAuth 2.0 służy do delegowania autoryzacji, a Open ID Connect do “federated authentication”.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Czym jest Identity Token?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jak nazywa się tożsamoś użytkownika w JTW?

A

sub (subject)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jak nazywa się organ wydający token?

A

iss (issuing authority)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jak nazywa się grupa użytkowników dla której wygenerowany jest token?

A

aud (audience)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czym jest parametr nonce tokenu JWT?

A

Służy do walidacji tokenu. Pozwala powiązać sesję użytkonwika z ID tokenem. Przeciwdziała atakom replay.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jak wykorzystać parametr nonce?

A

Jeśli jest obecny w tokenie:

  1. Klient powinien zweryfikować czy wartość nonce jest taka sama jak ta przesłana razem a AuthReq.
  2. 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jak nazywają się parametry określające kiedy i jak (pod kątem siły) użytkownik został uwierzytelniony?

A

auth_time i acr

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jak nazywa się parametr mówiący o tym kiedy użytkownik dokonał uwierzytelnienia?

A

iat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jak nazywa się parametr mówiący o tym kiedy token wygasa?

A

exp

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Czy token JWT może zawierać dodatkowe dane?

A

Tak, dowolny pary wartości - nazywanych “claims”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Czy token może być zweryfikowany po stronie serwera?

A

Tak, token JWT powinien być podpisany

17
Q

Czy token jest szyfrowany?

A

Nie, ale może zostać zaszyfrowany w celu dodatkowej ochrony.

18
Q

Jak klient nazywany jest w terminologii OpenID Connect?

A

Relying Party (RP)

19
Q

Gdzie powinno przebiegać potwierdzenie tożsamości użytkownika?

A

Zawsze w obrębie bezpiecznego kontekstu - po stronie serwera.

20
Q

Czy protokół OpenID Connect definiuje proces sprawdzenia tożsamości?

A

Nie

21
Q

Jaki protokół jest wykorzystywany do uzyskania token’u?

A

oAuth 2.0

22
Q

Jakie przepływy uwierzytelnienie oferuje oAuth 2.0?

A
  1. 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.
  2. Implicit flow - dla aplikacji JS, które nie mają backendu. ID token jest uzyskiwany bezpośrednio po przekierowaniu od OP. Bez “back-channel request”.
  3. Hybrid-flow - rzadko używany. Pozwala frontendowi i backendowi na uzyskiwanie token’ów niezależnie od siebie. Kombinacja code i impicit flow.