Odpowiedzi:
Są one hierarchiczne w taki sam sposób, w jaki rodzaj, gatunek i jednostka są hierarchiczne.
Przedmiot / obiekt dziedziczy z tych samych terminów, które są używane w gramatyce. W zdaniu podmiot jest aktorem, a przedmiot jest przedmiotem. W tym sensie zastosowanie istniało już przed wynalezieniem komputerów. W kontekście bezpieczeństwa podmiotem jest wszystko, co może zgłosić żądanie. Jak wspomniano powyżej, nie musi to ograniczać się do bezpieczeństwa IT, a więc jest to bardzo szeroka klasyfikacja. Interesujące jest to, że podmiot implikuje przedmiot. Bez przedmiotu nie ma podmiotu.
Podmioty decydują się na dyrektorów. Kiedy przedstawiasz swoją kartę kredytową, jesteś podmiotem, a numer konta jest głównym. W innych kontekstach Twój identyfikator użytkownika lub identyfikator wydany przez stan jest Twoim mocodawcą. Ale dyrektorzy mogą być kojarzeni z wieloma typami podmiotów, które nie są ludźmi. Gdy aplikacje żądają funkcji na poziomie systemu, podmiot zabezpieczeń może być sygnatariuszem podpisanego modułu kodu wykonywalnego, ale nawet w tym przypadku podmiot kierujący żądaniem nadal jest podmiotem.
Użytkownik jest bardziej szczegółowy niż temat lub podmiot główny, ponieważ zwykle odnosi się do operatora interaktywnego. Dlatego mamy graficzny interfejs użytkownika, a nie graficzny interfejs główny. Użytkownik jest instancją podmiotu, która jest rozpoznawana jako zleceniodawca . Pojedynczy użytkownik może rozstrzygać sprawę na dowolną liczbę podmiotów głównych, ale oczekuje się, że każdy podmiot główny będzie rozstrzygany na jednego użytkownika (zakładając, że ludzie przestrzegają wymogu nieudostępniania identyfikatorów). W powyższym przykładzie osoba podpisująca wykonywalny moduł kodu zdecydowanie nie jest użytkownikiem, ale jest prawidłową jednostką zabezpieczeń. Interaktywnym operatorem próbującym załadować moduł jest użytkownik.
Jak zauważono w komentarzach, nawet autorytatywne źródła nie zgadzają się na te warunki. Przygotowując tę odpowiedź, przeszukałem NIST, SANS, IEEE, MITER i kilka „quasi-autorytatywnych” źródeł, takich jak przewodniki po egzaminach bezpieczeństwa. Żadne znalezione przeze mnie źródło, które było przynajmniej quasi-autorytatywne, nie obejmowało wszystkich trzech terminów i wszystkie różniły się znacząco pod względem ich użycia. Oto moje podejście do tego, jak należy używać tych terminów, ale z praktycznego punktu widzenia, kiedy przeglądasz instrukcję w środku nocy, definicje wydają się być takie, jakie są podane przez sprzedawcę lub autora. Miejmy nadzieję, że odpowiedzi tutaj zapewnią wystarczający wgląd w nawigację po wodach i przeanalizowanie dowolnego dokumentu bezpieczeństwa przy użyciu tych terminów.
John (human) SUBJECT > username_1 PRINCIPAL > password_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > password_2 USER
John (human) SUBJECT > username_1 PRINCIPAL > smartcard_1 USER
John (human) SUBJECT > username_1 PRINCIPAL > cellphone_1 USER
Spójrz na moją mapę koncepcji uwierzytelniania :
Myślę, że terminologia pochodzi z JAAS .
Gdy aplikacja używa uwierzytelniania JAAS do uwierzytelnienia użytkownika (lub inny podmiot, takich jak usługi), Temat jest tworzony w wyniku. Celem podmiotu jest reprezentowanie uwierzytelnionego użytkownika. Podmiot składa się z zestawu podmiotów głównych , przy czym każdy podmiot główny reprezentuje tożsamość tego użytkownika. Na przykład Podmiot może mieć imię i nazwisko Główny („Susan Smith”) i Główny Numer Ubezpieczenia Społecznego („987-65-4321”), co odróżnia go od innych Podmiotów.
Podmiot to podmiot żądający usługi. Może to być użytkownik lub proces. Prawdopodobnie dlatego zamiast nazwy użytkownika wybrano nazwę Temat.
Kiedy podmiot próbuje uzyskać dostęp do usługi, musi najpierw zostać uwierzytelniony. Pomyślne uwierzytelnienie kończy się załadowaniem podmiotów zabezpieczeń dla tego podmiotu. Na przykład w systemie kontroli dostępu opartym na rolach uwierzytelniony (zalogowany) użytkownik ma zwykle dwa podmioty - userId i roleId. W takich systemach uprawnienia (tj. Kto ma do czego dostęp) są określone zarówno dla ról, jak i dla użytkowników. Podczas autoryzacji (tj. Sprawdzania, czy żądana usługa powinna być dozwolona), system bezpieczeństwa sprawdzi dostępność względem obu podmiotów.
Dlatego z punktu widzenia autoryzacji, jednostki główne to rzeczywiste podmioty, dla których dostęp jest dozwolony lub zabroniony. Temat jest po prostu użytkownikiem / wątkiem / procesem, który przechowuje niektóre podmioty.
Jak wyjaśnił T.Rob, podmiot to każda jednostka, która żąda dostępu do obiektu. Od tego momentu znalazłem komentarz na temat kodu javax.security.auth.Subject, który uważam za BARDZO przydatny i łatwy do zrozumienia:
„Podmioty mogą potencjalnie mieć wiele tożsamości. Każda tożsamość jest reprezentowana jako Główny podmiot w Podmiocie. Strony główne po prostu wiążą nazwy z Podmiotem. Na przykład Podmiot, który jest osobą, Alicja, może mieć dwóch Głównych: jeden, który wiąże” Alice Bar ”, imię i nazwisko na jej prawie jazdy, do Przedmiotu i drugie, które wiąże„ 999-99-9999 ”, numer na jej legitymacji studenckiej, do Przedmiotu. Obaj dyrektorzy odnoszą się do tego samego przedmiotu, chociaż każdy z nich ma inną nazwę ”.
Mam nadzieję, że to pomoże.
To jest łącze do poniższego wyjaśnienia z dokumentacji Oracle JAVA SE.
Podmioty, podmioty, uwierzytelnianie i poświadczenia Aby autoryzować dostęp do zasobów, aplikacje muszą najpierw uwierzytelnić źródło żądania. Struktura JAAS definiuje termin podmiot, który ma reprezentować źródło żądania. Podmiotem może być dowolny podmiot, taki jak osoba lub usługa. Temat jest reprezentowany przez klasę javax.security.auth.Subject .
Uwierzytelnianie reprezentuje proces, za pomocą którego tożsamość podmiotu jest weryfikowana i musi być przeprowadzane w bezpieczny sposób; w przeciwnym razie sprawca może podszywać się pod innych, aby uzyskać dostęp do systemu. Uwierzytelnienie zazwyczaj wiąże się z przedstawieniem przez podmiot pewnego rodzaju dowodów w celu udowodnienia swojej tożsamości. Takimi dowodami mogą być informacje, które tylko podmiot prawdopodobnie znałby lub miał (takie jak hasło lub odcisk palca), lub mogą to być informacje, które może przedstawić tylko podmiot (na przykład dane podpisane przy użyciu klucza prywatnego).
Po uwierzytelnieniu podmiot jest wypełniany powiązanymi tożsamościami lub podmiotami głównymi (typu java.security.Principal ). Przedmiot może mieć wielu Dyrektorów. Na przykład osoba może mieć imię i nazwisko głównego („Jan Kowalski”) i głównego numeru SSN („123-45-6789”), co odróżnia ją od innych Podmiotów.
Oprócz powiązanych jednostek głównych, podmiot może posiadać atrybuty związane z zabezpieczeniami, które nazywane są referencjami . Poświadczenie może zawierać informacje używane do uwierzytelnienia podmiotu w nowych usługach. Takie poświadczenia obejmują hasła, bilety Kerberos i certyfikaty kluczy publicznych. Poświadczenia mogą również zawierać dane, które umożliwiają podmiotowi wykonywanie określonych czynności. Na przykład klucze kryptograficzne reprezentują poświadczenia, które umożliwiają podmiotowi podpisywanie lub szyfrowanie danych. Klasy referencji publicznych i prywatnych nie są częścią podstawowego interfejsu API J2SE. Dlatego każda klasa może reprezentować referencje.
według rahulmohana , myślę, że zanim uwierzytelnienie jest subjet, po uwierzytelnieniu jest pricipal, w przeciwieństwie do tego, subjet może mieć wiele