Wyjaśnij „uwierzytelnianie oparte na oświadczeniach” pięciolatkowi

189

Cóż, niezupełnie do 5-latka, ale jeśli to możliwe, unikaj modnego hasła i słowa korporacyjnego.

Uwierzytelnianie oparte na oświadczeniach wydaje się teraz modne, ale nie mogłem znaleźć prostego i praktycznego wyjaśnienia tego, czym tak naprawdę jest, czym różni się od tego, co mamy teraz (zakładam „to, co mamy teraz” uwierzytelnianie oparte na rolach), jakie są zalety korzystania z niego itp.

Anton Gogolev
źródło
1
Zgadzam się z @Marnix. Teraz, gdy masz podstawową wiedzę, możesz łatwiej odnosić się do definicji / wyjaśnień Microsoftu .
FrankO
Uważam też, że ten oficjalny dokument jest prosty, jeśli chcesz poświęcić nieco więcej uwagi i czasu. Wprowadzenie odpowiada na pytanie, a diagramy mówią tysiąc słów: download.microsoft.com/download/7/D/0/…
Paweł Bulwan
Kentico ma również dość lekkie wyjaśnienie na temat takiej terminologii docs.kentico.com/k9/managing-users/…
Hoan Dang

Odpowiedzi:

215

@Marnix ma całkiem dobrą odpowiedź, ale odejdź od technicznego aspektu:

Uwierzytelnianie na podstawie oświadczeń polega na określeniu, komu ufasz, aby uzyskać dokładne informacje o tożsamości, i tylko na podstawie tych informacji. Mój przykład idzie do baru. Wyobraź sobie przez chwilę, że chcesz dostać piwo w barze. Teoretycznie barman powinien poprosić cię o dowód wieku. Jak to udowodnić? Cóż, jedną z opcji jest to, aby barman przeciął cię na pół i policzył liczbę dzwonków, ale mogą być z tym pewne problemy. Inną opcją jest zapisanie swoich urodzin na kartce papieru, którą barman akceptuje lub odrzuca. Trzecią opcją jest udanie się do rządu, zdobycie dowodu osobistego, a następnie okazanie dowodu osobistego barmanowi.

Niektórzy mogą śmiać się z pomysłu zapisania swoich urodzin na kartce papieru, ale dzieje się tak, gdy uwierzytelniasz użytkowników w samej aplikacji, ponieważ barman (lub Twoja aplikacja) musi zaufać kartce papieru . Ufamy jednak rządowemu stwierdzeniu, że data urodzin w dowodzie osobistym jest ważna, a dokument tożsamości dotyczy osoby żądającej napoju. Dla wszystkich celów i barmanów (lub aplikacji) tak naprawdę nie obchodzi, w jaki sposób nastąpiło uwierzytelnienie z powodu zaufania. Barman nie wie o tobie nic oprócz twojej daty urodzenia, ponieważ to wszystko, co barman musi wiedzieć. Teraz barman może przechowywać informacje, które według nich są dla nich ważne, takie jak twój ulubiony napój, ale rząd nie dba o to (ponieważ nie jest to wiarygodne źródło),

Kluczem do CBA jest „kto jest wiarygodnym źródłem tożsamości?”

Steve
źródło
20
Doskonała analogia! Chciałbym dać dodatkowe punkty za metodę „przeciąć cię na pół i policzyć pierścionki” określającą wiek danej osoby. Będę musiał tego spróbować. :-)
Keith Robertson
8
Widzę „do wszystkich intensywnych celów” tak często, że naprawdę doceniam, kiedy ludzie mówią, poprawnie, „do wszystkich celów i celów”
JoeBrockhaus
3
Łatwość: wyjaśnij im, że analogii dotyczących skomplikowanych tematów nie można łatwo sprowadzić do prostych pojęć, niezależnie od tego, jak dobrze je rozumiemy. I ... dlaczego, u licha, tak czy inaczej 5-latek miałby tak naprawdę obchodzić się z autoryzacją opartą na roszczeniach?
Steve,
2
przeczytałem ten tekst i wydaje się, że uwierzytelnianie oparte na oświadczeniach jest systemem uwierzytelniającym innych firm, takim jak otwarte uwierzytelnianie lub logowanie społecznościowe, takie jak konto Microsoft, Facebook, Twitter, Google. ktoś może mi powiedzieć, czym różni się uwierzytelnianie oparte na oświadczeniach od uwierzytelniania otwartego? ponieważ otwarte uwierzytelnianie jest zbyt trzecim systemem uwierzytelniania.
Thomas
1
@Thomas OAuth tak naprawdę dotyczy autoryzacji, a nie uwierzytelnienia, co zmienia się w zupełnie inną rozmowę. Podają informacje identyfikujące, ale ich celem jest wykorzystanie tokena do uzyskania dostępu do ich usługi, a nie do identyfikacji użytkownika. Rozszerzeniem tego jest OpenID, który ma na celu identyfikację. W obu przypadkach prostym sposobem myślenia o tym (jeśli nie 100% dokładności) jest to, że są to tylko implementacje CBA.
Steve
131

(To jest moje osobiste zdanie na ten temat, inni mogą się różnić. Napisz inne punkty widzenia jako osobne odpowiedzi.)

Tożsamość / uwierzytelnianie / autoryzacja oparta na oświadczeniach polega na oddzieleniu obsługi autoryzacji użytkownika i logowania użytkownika od aplikacji (internetowej) poprzez przekształcenie uwierzytelnienia / autoryzacji w oddzielną usługę (internetową).

Na przykład, kiedy po raz pierwszy przejdę do aplikacji internetowej obsługującej oświadczenia, przekieruje moją przeglądarkę do „usługi logowania”, której ufa. Uwierzytelnię się w tej usłudze (przy użyciu uwierzytelniania systemu Windows, karty inteligentnej itp.), A w odpowiedzi odeśle „token”, który przeglądarka odsyła do aplikacji internetowej. Teraz aplikacja internetowa sprawdza, czy token jest podpisany cyfrowo przez zaufaną usługę logowania, a następnie sprawdza „roszczenia” w tokenie. Na podstawie tych twierdzeń aplikacja decyduje o tym, jaką funkcjonalność oferuje użytkownik.

Roszczenia prawie zawsze będą zawierać tożsamość użytkownika, często są też roszczenia związane z autoryzacją („ten użytkownik może przeglądać dane sprzedaży, ale ich nie aktualizować”), a czasem także inne informacje („rozmiar buta = 42”).

Kluczową kwestią jest to, że aplikacja nie wie ani nie obchodzi, w jaki sposób użytkownik został uwierzytelniony, ani w jaki sposób administrowane są autoryzacje: wykorzystuje jedynie informacje z oświadczeń w podpisanym tokenie do ustalenia, kim jest użytkownik i / lub co użytkownik może zobaczyć lub zrobić i / lub wszelkie inne informacje o użytkowniku.

(Tak, zakładam, że dość inteligentny i dobrze poinformowany 5-latek tutaj :-)

MarnixKlooster ReinstateMonica
źródło
5
Czy działają takie działania jak „Zaloguj się za pomocą Facebooka / Google / ...” uwierzytelniania opartego na roszczeniach?
Wes
1
Jestem pewien, że mój 5-latek to wszystko zrozumie.
Sinaesthetic
@ pytanie jest nieco niejasne. Sam fakt zalogowania się za pomocą Facebooka lub Google'a nie jest przykładem uwierzytelnienia opartego na roszczeniach, nie. Twierdziłbym również, że uwierzytelnianie oparte na oświadczeniach nie jest rzeczą. Byłaby to autoryzacja . W grę wchodzi CBA na etapie autoryzacji logowania się u tych dostawców. Gdy poprosi o uprawnienia, a ty je zaakceptujesz, doda zakres do twojego tokena dostępu. Jest to semantycznie różne od twierdzenia, ale często jest używane w bardzo podobny sposób.
Sinaesthetic
40

Poniższy przykład ze świata rzeczywistego pochodzi z Przewodnika po tożsamości i kontroli dostępu opartej na oświadczeniach (wydanie drugie) .

Bardzo znaną analogią jest protokół uwierzytelniania, którego przestrzegasz przy każdej wizycie na lotnisku . Nie możesz po prostu podejść do bramy i okazać paszport lub prawo jazdy. Zamiast tego należy najpierw dokonać odprawy przy kasie biletowej. Tutaj przedstawisz, co ma sens. Jeśli wybierasz się za granicę, okazujesz paszport. W przypadku lotów krajowych okazujesz prawo jazdy. Po sprawdzeniu, czy Twój identyfikator zdjęcia pasuje do Twojej twarzy ( uwierzytelnienie ), agent sprawdza Twój lot i sprawdza, czy zapłaciłeś za bilet ( autoryzacja) ). Zakładając, że wszystko jest w porządku, otrzymasz kartę pokładową, którą zabierasz do bramki.

Karta pokładowa jest bardzo pouczająca. Bramkarze znają twoje imię i numer osoby często podróżującej (uwierzytelnianie i personalizacja), numer lotu i priorytet miejsca (autoryzacja), a może nawet więcej. Bramkarze mają wszystko, czego potrzebują, aby skutecznie wykonywać swoje zadania.

Na karcie pokładowej znajdują się również specjalne informacje. Jest zakodowany w kodzie kreskowym i / lub pasku magnetycznym z tyłu. Informacje te (takie jak numer seryjny wejścia na pokład) dowodzą, że przepustka została wydana przez linię lotniczą i nie jest fałszerstwem.

Zasadniczo karta pokładowa to podpisany zestaw roszczeń złożonych przez linię lotniczą na Twój temat . Wskazuje, że możesz wejść na określony lot o określonej godzinie i usiąść na określonym miejscu. Oczywiście agenci nie muszą o tym głęboko myśleć. Po prostu sprawdzają twoją kartę pokładową, czytają zawarte na niej roszczenia i pozwalają ci wejść na pokład samolotu.

Ważne jest również, aby pamiętać, że może istnieć więcej niż jeden sposób uzyskania podpisanego zestawu roszczeń, którym jest karta pokładowa. Możesz udać się do kasy biletowej na lotnisku lub skorzystać ze strony internetowej linii lotniczej i wydrukować kartę pokładową w domu. Bramkarze wchodzący na pokład nie dbają o to, jak powstała karta pokładowa; nie obchodzi ich, którego emitenta użyłeś, o ile linia lotnicza ufa. Dbają tylko o to, że jest to autentyczny zestaw roszczeń, które dają ci pozwolenie na wejście do samolotu.

W oprogramowaniu ten pakiet roszczeń nazywa się tokenem zabezpieczającym . Każdy token bezpieczeństwa jest podpisany przez wystawcę, który go utworzył. Aplikacja oparta na oświadczeniach uważa użytkowników za uwierzytelnionych, jeśli przedstawią ważny, podpisany token bezpieczeństwa od zaufanego wystawcy .

Maria Ines Parnisari
źródło
18

W przypadku pięcioletniego chłopca poproś go, aby założył, że dołączył do nowej szkoły, podpisując wniosek przez rodziców. Po zatwierdzeniu wniosku przez kierownictwo szkoły otrzymuje kartę dostępu, która zawiera wszystkie poniższe informacje, które możemy nazwać ROSZCZENIAMI, aby wejść do szkoły.

  1. NAZWA CHŁOPCA to BOB.
  2. NAZWA SZKOŁY JEST NAJWYŻSZA SZKOŁA MONTISSORI
  3. KLASA JEST 8 KLASĄ

Pierwszego dnia swojej szkoły, kiedy wchodzi do szkoły, przesunął kartę dostępu i otworzyły się bramy, co oznacza, że ​​został ODPOWIEDZIALNY JAKO jedna ze osób ze szkoły. W ten sposób jest OSOBĄ UWZGLĘDNIONĄ, aby wejść do szkoły.

Po dotarciu do swojej klasy użył karty dostępu, aby wejść do każdej klasy, ale w 8. klasie drzwi standardowe otworzyły się, jak twierdził, że jest z 8. klasy.

W szkole jest UPOWAŻNIONY tylko do wejścia do swojej klasy, ponieważ studiuje teraz 8. standard. A jeśli spróbuje wejść w 6. Standard, nauczyciel NIE BĘDZIE go UPOWAŻNIAĆ.

uśmiecha się 1
źródło
3
To tylko opisuje ogólne pojęcie uwierzytelnienia i autoryzacji. Nie w oparciu o roszczenia lub w inny sposób
Sheepy
Owczarek, z pewnością wyjaśnienia twierdzą, że jest w klasie 8, a odmówiono mu dostępu do klasy 6?
Ian
1
przeczytałem ten tekst i wydaje się, że uwierzytelnianie oparte na oświadczeniach jest systemem uwierzytelniającym innych firm, takim jak otwarte uwierzytelnianie lub logowanie społecznościowe, takie jak konto Microsoft, Facebook, Twitter, Google. ktoś może mi powiedzieć, czym różni się uwierzytelnianie oparte na oświadczeniach od uwierzytelniania otwartego? ponieważ otwarte uwierzytelnianie jest zbyt trzecim systemem uwierzytelniania.
Thomas
9

Jak najbardziej nietechniczny:

Jeśli miałbyś opisać cokolwiek na temat tego, kim jesteś i co wolno ci zobaczyć lub robić, każda z tych rzeczy byłaby czymś, co „twierdziłeś”, że jest prawdą, a zatem każda „rzecz” na tej liście byłaby „ roszczenie".

Za każdym razem, gdy mówisz komuś coś o sobie lub „twierdzisz”, że możesz coś zobaczyć lub zrobić, przekazujesz mu swoją listę roszczeń. Sprawdzą z organem, że twoje roszczenia są prawdziwe, a jeśli tak, uwierzą we wszystko na tej liście roszczeń. Więc jeśli twierdzisz, że jesteś Bradem Pittem, twoja lista roszczeń mówi, że jesteś Bradem Pittem i zostało to potwierdzone autorytetem, że wszystkie twoje roszczenia są prawdziwe - wtedy będą wierzyć, że jesteś Bradem Pittem wraz z wszystko inne na tej liście.

Twierdzenie : co uważasz za prawdziwe. Może to być informacja lub opis pozwolenia, które rzekomo masz. System, w którym zgłaszasz swoje roszczenia, musi tylko zrozumieć, co to jest / oznacza roszczenie, a także być w stanie zweryfikować z odpowiednim organem.

Autorytet : system, który łączy twoją listę roszczeń razem i podpisuje ją, co w zasadzie mówi: „Według mojej władzy wszystko na tej liście jest prawdziwe”. Tak długo, jak system czytający oświadczenia może zweryfikować przez organ, że podpis jest poprawny, wszystko na liście oświadczeń będzie uważane za autentyczne i prawdziwe.

Nie nazywajmy tego również „uwierzytelnianiem opartym na oświadczeniach”, zamiast tego nazwijmy to „tożsamością opartą na oświadczeniach”.

Nieco bardziej techniczne:

Teraz w tym procesie uwierzytelniasz się za pomocą jakiegoś mechanizmu (nazwa użytkownika / hasło, klucz tajny klienta, certyfikat itp.), Który daje token potwierdzający, że jesteś tym, za kogo się podajesz. Następnie zamieniasz ten token dostępu na token ID. Proces ten wykorzysta twoją tożsamość do znalezienia i zbudowania listy roszczeń, podpisania jej, a następnie oddania tokena identyfikacyjnego zawierającego wszystkie twoje roszczenia.

Na etapie autoryzacji , w zależności od sposobu jego realizacji, zasób sprawdzi Twój token identyfikacyjny (oświadczenia), a następnie sprawdzi, czy masz niezbędne oświadczenia, aby uzyskać dostęp do tego zasobu.

Na przykład, jeśli zasób „CastleBlack / CommandersTower” mówi, że „musisz mieć dostęp do czarnego zamku i być lordem dowódcą, to spojrzy na twoją listę roszczeń, aby sprawdzić, czy obie te rzeczy są prawdziwe.

Jak widać, „roszczenia” mogą być dowolne. To może być rola, może być faktem, może być flagą. To tylko lista par klucz-wartość, a „wartość” jest opcjonalna. Czasami chodzi tylko o sprawdzenie, czy roszczenie istnieje:

claims : [
    {"type": "name", "value": "Jon Snow"},
    {"type": "home", "value": "Winterfell, The North, Westeros"},   
    {"type": "email", "value": "[email protected]"},
    {"type": "role", "value": "veteran;deserter;"},
    {"type": "department", "value": "none"},    
    {"type": "allowEntry", "value": "true"},
    {"type": "access", "value": "castleblack;eastwatch;"}
]

Więc jeśli Jon zaloguje się i spróbuje uzyskać dostęp do zasobu opisanego powyżej, zostanie odmówiony, ponieważ chociaż jest tym, za kogo się podaje i ma dostęp do czarnego zamku, nie jest on już dowódcą ani nie ma wyraźnego dostępu do wieża dowódcy, a zatem nie może pośrednio wejść do wieży dowódcy władcy.

Mówiąc dokładniej, „CastleBlack” prawdopodobnie miałby [większy] zakres, a każdy obszar byłby konkretnym pozwoleniem, ale to inna dyskusja.

Sposób, w jaki każda aplikacja radzi sobie z dostępem, będzie inny, ale użyje do tego roszczeń.

Sinaesthetic
źródło
5

Biorąc pod uwagę, że roszczenie jest atrybutem, który mówi ci coś o użytkowniku (imię i nazwisko, wiek, pochodzenie etniczne itp.), Pracujesz przeciwko usłudze tokenów zabezpieczających w celu potwierdzenia tych roszczeń, a także użyłeś ich do autoryzacji oprócz uwierzytelnienia.

Poniższy fragment pochodzi z Wikipedii ( http://en.wikipedia.org/wiki/Claims-based_identity ) i jest to najlepsza analogia, jaką do tej pory znalazłem

„Aby lepiej zrozumieć koncepcję usługi tokena zabezpieczającego, rozważ analogię klubu nocnego z portierem. Portier chce uniemożliwić wjazd osobom nieletnim. Aby to ułatwić, prosi patrona o okazanie prawa jazdy, karty ubezpieczenia zdrowotnego lub inną identyfikację (token) wydaną przez zaufaną stronę trzecią (usługę tokena bezpieczeństwa), taką jak prowincjonalny lub stanowy departament prawa jazdy, departament zdrowia lub firma ubezpieczeniowa. wiek. Musi jedynie zaufać organowi wydającemu (i oczywiście dokonać własnej oceny autentyczności przedstawionego tokena). Po wykonaniu tych dwóch kroków klub nocny pomyślnie uwierzytelnił patrona w odniesieniu do twierdzenia, że ​​jest on wiek uprawniający do picia.

Kontynuując analogię, klub nocny może mieć system członkostwa, a niektórzy członkowie mogą być zwykli lub VIP. Portier może poprosić o kolejny token, kartę członkowską, która może złożyć kolejne roszczenie; że członek jest VIP. W takim przypadku zaufanym organem wydającym token byłby prawdopodobnie sam klub. Jeśli karta członkowska twierdzi, że patronem jest VIP, klub może odpowiednio zareagować, tłumacząc uwierzytelnione roszczenie członkowskie VIP na pozwolenie, takie jak zezwolenie patronowi na siedzenie w ekskluzywnym salonie i otrzymywanie bezpłatnych napojów ”.

Paleta
źródło