Co oznacza mechanizm oświadczeń w nowym ASP.NET Identity Core?
Istnieją dwa typowe podejścia do autoryzacji oparte na roli i oświadczeniu.
Bezpieczeństwo oparte na rolach
Użytkownikowi zostaje przypisana jedna lub więcej ról, za pośrednictwem których otrzymuje on prawa dostępu. Ponadto, przypisując użytkownika do roli, natychmiast uzyskuje on wszystkie prawa dostępu zdefiniowane dla tej roli.
Bezpieczeństwo oparte na oświadczeniach
Tożsamość oparta na oświadczeniach to zestaw oświadczeń. Oświadczenie to stwierdzenie, które jednostka (użytkownik lub inna aplikacja) wydaje o sobie, to tylko twierdzenie. Na przykład lista roszczeń może zawierać nazwę użytkownika, adres e-mail użytkownika, wiek użytkownika, uprawnienia użytkownika do wykonania czynności. W zabezpieczeniach opartych na rolach użytkownik przedstawia poświadczenia bezpośrednio w aplikacji. W modelu opartym na oświadczeniach użytkownik przedstawia oświadczenia, a nie poświadczenia aplikacji. Aby roszczenie miało praktyczną wartość, musi pochodzić od podmiotu, któremu ufa aplikacja.
Poniższe kroki ilustrują sekwencję tego, co dzieje się w modelu zabezpieczeń opartym na oświadczeniach:
- Użytkownik żąda działania. Aplikacja strony ufającej (RP) prosi o token.
- Użytkownik przedstawia poświadczenia organowi wydającemu, któremu ufa aplikacja RP.
- Organ wystawiający wystawia podpisany token z oświadczeniami po uwierzytelnieniu poświadczeń użytkownika.
- Użytkownik przedstawia token aplikacji RP. Aplikacja sprawdza poprawność podpisu tokenu, wyodrębnia oświadczenia i na podstawie oświadczeń akceptuje lub odrzuca żądanie.
Ale nadal nie mogę zrozumieć i znaleźć żadnych informacji, kiedy dane są dodawane do AspNetUserClaims i jakich sytuacji używa ta tabela?
Jeśli jesteś w sytuacji, w której zabezpieczenia oparte na rolach nie są używane, a zdecydujesz się użyć zabezpieczeń opartych na oświadczeniach, musisz użyć tabeli AspNetUserClaims. Aby dowiedzieć się, jak używać oświadczeń w ASP.NET Identity, zobacz poniższe łącze, aby uzyskać więcej informacji.
http://kevin-junghans.blogspot.com/2013/12/using-claims-in-aspnet-identity.html
Aktualizacja
O której godzinie należy używać zabezpieczeń opartych na rolach, a kiedy opartych na oświadczeniach? Czy mógłbyś podać kilka przykładów?
Nie ma bardzo jasnej sytuacji, w której używałbyś lub nie używałbyś zabezpieczeń opartych na rolach lub roszczeniach, co nie przypomina przypadku, w którym używałbyś A zamiast B.
Jednak kontrola dostępu oparta na oświadczeniach umożliwia lepsze oddzielenie reguł autoryzacji od podstawowej logiki biznesowej. Zmiana reguł autoryzacji nie wpływa na podstawową logikę biznesową. Będą sytuacje, w których możesz preferować podejście oparte na roszczeniach.
Czasami roszczenia nie są potrzebne. To jest ważne zastrzeżenie. Firmy posiadające wiele aplikacji wewnętrznych mogą korzystać ze zintegrowanego uwierzytelniania systemu Windows, aby osiągnąć wiele korzyści wynikających z oświadczeń. Usługa Active Directory świetnie radzi sobie z przechowywaniem tożsamości użytkowników, a ponieważ Kerberos jest częścią systemu Windows, aplikacje nie muszą zawierać dużej ilości logiki uwierzytelniania. Tak długo, jak każda aplikacja, którą tworzysz, może korzystać ze zintegrowanego uwierzytelniania systemu Windows, być może osiągnąłeś już utopię tożsamości. Istnieje jednak wiele powodów, dla których możesz potrzebować czegoś innego niż uwierzytelnianie systemu Windows. Możesz mieć aplikacje internetowe, z których korzystają osoby, które nie mają kont w domenie Windows. Innym powodem może być to, że Twoja firma połączyła się z inną firmą, a Ty ” ponownie występują problemy z uwierzytelnianiem w dwóch lasach systemu Windows, które nie mają (i mogą nigdy) nie mieć relacji zaufania. Być może chcesz udostępniać tożsamości innej firmie, która ma aplikacje inne niż .NET Framework lub musisz udostępniać tożsamości między aplikacjami działającymi na różnych platformach (na przykład Macintosh). To tylko kilka sytuacji, w których tożsamość oparta na oświadczeniach może być dla Ciebie właściwym wyborem.
Aby uzyskać więcej informacji, odwiedź http://msdn.microsoft.com/en-us/library/ff359101.aspx