Kod zarządzany może odnaleźć tożsamość lub rolę podmiotu zabezpieczeń za pośrednictwem IPrincipal obiektu, który zawiera odwołanie do IIdentity obiektu. Warto porównać obiekty tożsamości i podmiotów zabezpieczeń z znanymi pojęciami, takimi jak konta użytkowników i grup. W większości środowisk sieciowych konta użytkowników reprezentują osoby lub programy, a konta grup reprezentują określone kategorie użytkowników i posiadane prawa. Podobnie obiekty tożsamości platformy .NET reprezentują użytkowników, a role reprezentują członkostwa i konteksty zabezpieczeń. Na platformie .NET obiekt główny hermetyzuje zarówno obiekt tożsamości, jak i rolę. Aplikacje platformy .NET udzielają uprawnień podmiotowi zabezpieczeń na podstawie tożsamości lub, częściej, członkostwa w rolach.
Obiekty tożsamości
Obiekt tożsamości hermetyzuje informacje o zweryfikowanym użytkowniku lub jednostce. Na najbardziej podstawowym poziomie obiekty tożsamości zawierają nazwę i typ uwierzytelniania. Nazwa może być nazwą użytkownika lub nazwą konta systemu Windows, a typ uwierzytelniania może być obsługiwanym protokołem logowania, takim jak Kerberos V5 lub wartość niestandardowa. .NET definiuje GenericIdentity obiekt, który może być używany w większości niestandardowych scenariuszy logowania i bardziej wyspecjalizowany WindowsIdentity obiekt, który może być używany, gdy aplikacja ma polegać na uwierzytelnianiu systemu Windows. Ponadto można zdefiniować własną klasę tożsamości, która hermetyzuje niestandardowe informacje o użytkowniku.
Interfejs IIdentity definiuje właściwości uzyskiwania dostępu do nazwy i typu uwierzytelniania, takiego jak Kerberos V5 lub NTLM. Wszystkie klasy tożsamości implementują interfejs IIdentity . Nie ma wymaganej relacji między obiektem Identity i tokenem procesu systemu Windows, w ramach którego jest obecnie wykonywany wątek. Jeśli jednak obiekt Identity jest obiektem WindowsIdentity, przyjmuje się, że tożsamość reprezentuje token zabezpieczający systemu Windows.
Obiekty główne
Obiekt podmiotu zabezpieczeń reprezentuje kontekst zabezpieczeń, w którym jest uruchomiony kod. Aplikacje implementujące prawa udzielania zabezpieczeń oparte na rolach na podstawie roli skojarzonej z obiektem głównym. Podobnie jak obiekty tożsamości, platforma .NET udostępnia GenericPrincipal obiekt i WindowsPrincipal obiekt. Można również zdefiniować własne niestandardowe klasy podmiotów zabezpieczeń.
Interfejs IPrincipal definiuje właściwość umożliwiającą uzyskiwanie dostępu do skojarzonego obiektu tożsamości , a także metodę określania, czy użytkownik zidentyfikowany przez obiekt Principal jest członkiem danej roli. Wszystkie klasy principal implementują interfejs IPrincipal , a także wszelkie dodatkowe właściwości i metody, które są niezbędne. Na przykład środowisko uruchomieniowe języka wspólnego udostępnia klasę WindowsPrincipal , która implementuje dodatkowe funkcje mapowania członkostwa w grupie na role.
Obiekt Principal jest powiązany z obiektem kontekstu wywołania (CallContext) w domenie aplikacji (AppDomain). Domyślny kontekst wywołania jest zawsze tworzony z każdym nowym elementem AppDomain, więc zawsze istnieje kontekst wywołania dostępny do akceptowania obiektu Principal . Po utworzeniu nowego wątku dla wątku jest również tworzony obiekt CallContext . Odwołanie do obiektu Principal jest automatycznie kopiowane z wątku tworzenia do elementu CallContext nowego wątku. Jeśli środowisko uruchomieniowe nie może określić, który obiekt podmiotu zabezpieczeń należy do twórcy wątku, jest zgodny z domyślnymi zasadami tworzenia obiektu Podmiot zabezpieczeń i tożsamości .
Konfigurowalne zasady specyficzne dla domeny aplikacji definiują reguły podejmowania decyzji o typie obiektu Principal do skojarzenia z nową domeną aplikacji. Jeśli zasady zabezpieczeń zezwalają, środowisko uruchomieniowe może tworzyć obiekty podmiotów zabezpieczeń i tożsamości , które odzwierciedlają token systemu operacyjnego skojarzony z bieżącym wątkiem wykonywania. Domyślnie środowisko uruchomieniowe używa obiektów Principal i Identity , które reprezentują nieuwierzytelnionych użytkowników. Środowisko uruchomieniowe nie tworzy tych domyślnych obiektów podmiotu zabezpieczeń i tożsamości , dopóki kod nie podejmie próby uzyskania do nich dostępu.
Zaufany kod, który tworzy domenę aplikacji, może ustawić zasady domeny aplikacji kontrolujące konstruowanie domyślnych obiektów podmiotu zabezpieczeń i tożsamości . Te zasady specyficzne dla domeny aplikacji dotyczą wszystkich wątków wykonywania w tej domenie aplikacji. Niezarządzany zaufany host z założenia ma możliwość ustawiania tych zasad, ale kod zarządzany, który ustawia te zasady, musi mieć System.Security.Permissions.SecurityPermission właściwość do kontrolowania zasad domeny.
Podczas przesyłania obiektu principal w domenach aplikacji, ale w ramach tego samego procesu (i w związku z tym na tym samym komputerze), infrastruktura komunikacji telefonicznej kopiuje odwołanie do obiektu Principal skojarzonego z kontekstem obiektu wywołującego do kontekstu wywoływanego.
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię:
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.