Mechanizmy kontroli dostępu
Dostęp można kontrolować za pomocą programu Windows Communication Foundation (WCF). W tym temacie krótko omówiono różne mechanizmy i przedstawiono sugestie dotyczące tego, kiedy należy ich używać; ma pomóc w wyborze odpowiedniego mechanizmu do użycia. Technologie dostępu są wymienione w kolejności złożoności. Najprostszym elementem PrincipalPermissionAttributejest . Najbardziej złożonym jest model tożsamości.
Oprócz tych mechanizmów personifikacja i delegowanie za pomocą usługi WCF jest objaśniona w temacie Delegowanie i personifikacja.
PrincipalPermissionAttribute
Element PrincipalPermissionAttribute służy do ograniczania dostępu do metody usługi. Gdy atrybut jest stosowany do metody, może służyć do żądania tożsamości lub członkostwa określonego wywołującego w grupie systemu Windows lub roli ASP.NET. Jeśli klient jest uwierzytelniany przy użyciu certyfikatu X.509, otrzymuje podstawową tożsamość składającą się z nazwy podmiotu oraz odcisk palca certyfikatu.
Użyj polecenia , PrincipalPermissionAttribute aby kontrolować dostęp do zasobów na komputerze, na którym działa usługa, a jeśli użytkownicy usługi zawsze będą częścią tej samej domeny systemu Windows, na którym działa usługa. Można łatwo utworzyć grupy systemu Windows, które mają określone poziomy dostępu (takie jak brak, tylko do odczytu lub odczyt i zapis).
Aby uzyskać więcej informacji na temat używania atrybutu, zobacz How to: Restrict Access with the PrincipalPermissionAttribute Class (Instrukcje: ograniczanie dostępu za pomocą klasy PrincipalPermissionAttribute). Aby uzyskać więcej informacji na temat tożsamości, zobacz Service Identity and Authentication (Tożsamość usługi i uwierzytelnianie).
dostawca członkostwa ASP.NET
Funkcja ASP.NET jest dostawcą członkostwa. Mimo że dostawca członkostwa nie jest technicznie mechanizmem kontroli dostępu, umożliwia kontrolowanie dostępu do usługi przez ograniczenie zestawu możliwych tożsamości, które mogą uzyskiwać dostęp do punktu końcowego usługi. Funkcja członkostwa zawiera bazę danych, która może być wypełniona kombinacjami nazwy użytkownika/hasła, które umożliwiają użytkownikom witryny sieci Web ustanawianie kont z witryną. Aby uzyskać dostęp do usługi korzystającej z dostawcy członkostwa, użytkownik musi zalogować się przy użyciu nazwy użytkownika i hasła.
Uwaga
Musisz najpierw wypełnić bazę danych przy użyciu funkcji ASP.NET, zanim usługa WCF będzie mogła jej używać do celów autoryzacji.
Możesz również użyć funkcji członkostwa, jeśli masz już bazę danych członkostwa z istniejącej witryny sieci Web ASP.NET i chcesz umożliwić tym samym użytkownikom korzystanie z usługi, autoryzowane z tymi samymi nazwami użytkowników i hasłami.
Aby uzyskać więcej informacji na temat korzystania z funkcji członkostwa w usłudze WCF, zobacz Instrukcje: korzystanie z dostawcy członkostwa ASP.NET.
dostawca ról ASP.NET
Inną funkcją ASP.NET jest możliwość zarządzania autoryzacją przy użyciu ról. Dostawca ról ASP.NET umożliwia deweloperowi tworzenie ról dla użytkowników i przypisywanie każdego użytkownika do roli lub ról. Podobnie jak w przypadku dostawcy członkostwa role i przypisania są przechowywane w bazie danych i mogą być wypełniane przy użyciu narzędzi dostarczanych przez określoną implementację dostawcy ról ASP.NET. Podobnie jak w przypadku funkcji członkostwa, deweloperzy programu WCF mogą używać informacji w bazie danych do autoryzowania użytkowników usług według ról. Mogą na przykład używać dostawcy ról w połączeniu z mechanizmem PrincipalPermissionAttribute
kontroli dostępu opisanym powyżej.
Możesz również użyć dostawcy ról ASP.NET, jeśli masz istniejącą bazę danych dostawcy ról ASP.NET i chcesz użyć tego samego zestawu reguł i przypisań użytkowników w usłudze WCF.
Aby uzyskać więcej informacji na temat korzystania z funkcji dostawcy ról, zobacz How to: Use the ASP.NET Role Provider with a Service (Jak używać dostawcy ról ASP.NET z usługą).
Menedżer autoryzacji
Inna funkcja łączy Menedżera autoryzacji (AzMan) z dostawcą roli ASP.NET autoryzować klientów. Gdy ASP.NET hostuje usługę sieci Web, moduł AzMan można zintegrować z aplikacją, aby autoryzacja do usługi odbywała się za pomocą narzędzia AzMan. ASP.NET menedżer ról udostępnia interfejs API, który umożliwia zarządzanie rolami aplikacji, dodawanie i usuwanie użytkowników z ról oraz sprawdzanie członkostwa w rolach, ale nie pozwala na wykonywanie zapytań, czy użytkownik ma uprawnienia do wykonywania nazwanego zadania lub operacji. Narzędzie AzMan umożliwia definiowanie poszczególnych operacji i łączenie ich w zadania. Za pomocą narzędzia AZMan, oprócz sprawdzania ról, można również sprawdzić, czy użytkownik może wykonać zadanie. Przypisanie roli i autoryzacja zadań można skonfigurować poza aplikacją lub wykonać programowo w aplikacji. Przystawka AzMan administration Microsoft Management Console (MMC) umożliwia administratorom zmianę zadań, które rola może wykonywać w czasie wykonywania i zarządzać członkostwem każdego użytkownika w rolach.
Możesz również użyć narzędzia AzMan i dostawcy ról ASP.NET, jeśli masz już dostęp do istniejącej instalacji narzędzia AzMan i chcesz autoryzować użytkowników usługi przy użyciu funkcji kombinacji dostawcy azMan/roli.
Aby uzyskać więcej informacji o narzędziu AzMan i dostawcy ról ASP.NET, zobacz How To: Use Authorization Manager (AzMan) with ASP.NET 2.0 (Instrukcje: używanie menedżera autoryzacji (AzMan) z ASP.NET 2.0. Aby uzyskać więcej informacji na temat używania narzędzia AzMan i dostawcy roli dla usług WCF, zobacz Instrukcje: używanie dostawcy ról menedżera autoryzacji ASP.NET z usługą.
Model tożsamości
Model tożsamości to zestaw interfejsów API, które umożliwiają zarządzanie oświadczeniami i zasadami w celu autoryzowania klientów. Za pomocą modelu tożsamości można sprawdzić każde oświadczenie zawarte w poświadczeniach używanych przez obiekt wywołujący do uwierzytelniania się w usłudze, porównać oświadczenia z zestawem zasad dla usługi i udzielić lub odmówić dostępu na podstawie porównania.
Użyj modelu tożsamości, jeśli potrzebujesz dokładnej kontroli i możliwości ustawienia określonych kryteriów przed udzieleniem dostępu. Na przykład w przypadku korzystania z PrincipalPermissionAttributeelementu kryterium jest po prostu to, że tożsamość użytkownika jest uwierzytelniana i należy do określonej roli. Z kolei przy użyciu modelu tożsamości można utworzyć zasady, które stwierdzają, że użytkownik musi mieć ponad 18 lat i posiada ważne prawo jazdy przed zezwoleniem na wyświetlenie dokumentu.
Przykładem, w którym można skorzystać z kontroli dostępu opartej na oświadczeniach modelu tożsamości, jest użycie poświadczeń federacji w scenariuszu wystawionego tokenu. Aby uzyskać więcej informacji na temat federacji i wystawionych tokenów, zobacz Federacja i Wystawione tokeny.
Aby uzyskać więcej informacji na temat modelu tożsamości, zobacz Zarządzanie oświadczeniami i autoryzacją za pomocą modelu tożsamości.
Zobacz też
- PrincipalPermissionAttribute
- Instrukcje: ograniczanie dostępu przy użyciu klasy PrincipalPermissionAttribute
- Instrukcje: używanie dostawcy ról ASP.NET razem z usługą
- Instrukcje: używanie dostawcy roli menedżera autoryzacji platformy ASP.NET za pomocą usługi
- Zarządzanie oświadczeniami i autoryzacją za pomocą modelu tożsamości
- Delegowanie i personifikacja