Cześć, budujemy aplikację ASP.NET MCV 3 od zera działającą na Windows Azure. Informacje o warstwie Uwierzytelnianie i autoryzacja są przeznaczone do korzystania z usługi kontroli dostępu. Przeszedłem przez kilka artykułów na temat ACS, gdzie otrzymałem podstawowy pomysł, ale wciąż mam pewne wątpliwości.Azure ACS - najlepsze wdrożenie
Rozumiem, że korzystając z ACS, zlecamy proces uwierzytelnienia jednemu lub kilku dostawcom tożsamości (IP), zasadniczo ufamy innemu systemowi (np. Microsoft Live ID) w celu uwierzytelnienia naszych użytkowników. Podstawowy proces jest bardzo prosty: na etapie uwierzytelniania przekierowujemy (ACS to robi) użytkownika do jednego z naszych "zaufanych" adresów IP, który przekieruje użytkownika (z ważnym tokenem) do ACS i ostatecznie do naszej aplikacji. Nadchodzi szereg pytań ...
Ponieważ nie chcemy, aby wszyscy użytkownicy posiadający konto Live ID mieli dostęp do naszej aplikacji, zakładam, że powinien istnieć inny proces sprawdzania tego użytkownika i sprawdzania, czy jest on zarejestrowany w naszej aplikacji. Pytanie jest gdzie? W ACS lub w naszej aplikacji.?
Mam pomysł na ten temat, ale nie wiem, czy to właściwy sposób: Na etapie rejestracji system (nasza aplikacja internetowa) pyta użytkownika, który adres IP (np. Identyfikator Live ID, Google, Facebook i nasza aplikacja.) Chce użyć do uwierzytelnienia się w aplikacji. Następnie użytkownik przechodzi proces uwierzytelniania w systemie IP, a kiedy wraca, przechowujemy jego nazwę użytkownika (nazwę użytkownika IP) w naszej bazie danych. Następnym razem na etapie uwierzytelniania możemy sprawdzić, czy dany użytkownik jest zarejestrowany w naszym systemie.
Jeśli powyższa teoria jest poprawna, oznacza to w naszej aplikacji. musimy zbudować naszego dostawcę członkostwa, aby przechowywać nazwy użytkowników pochodzące z adresów IP i użytkowników, którzy wybrali naszą aplikację. łyk. Czy mam rację? Jaka jest najlepsza praktyka projektowania powyższego procesu?
Porozmawiajmy teraz o autoryzacji i "rolach". Jak to działa z ACS? Czy ACS obsługuje wiele ról na użytkownika?
Znowu rozumiem, że dzięki ACS można utworzyć wiele "grup reguł" powiązanych z adresem IP, a nie z pojedynczym użytkownikiem. Jeśli to prawda, w jaki sposób zarządzamy użytkownikami w roli w naszej aplikacji? Załóżmy na przykład, że mamy wiele ról, a nasi użytkownicy mogą być przypisani do tych ról, czy możemy użyć ASC do zarządzania nimi?
Ostatnie pytania to: Czy sam ACS obejmuje cały proces uwierzytelniania i autoryzacji? Czy nadal potrzebujemy korzystać z usługodawcy .net? Jaka jest najlepsza praktyka, aby pokryć nasze wymagania?
Wielkie dzięki za Twój wkład.
Andrew Wielkie dzięki za odpowiedź. Więc jeśli chodzi o role w ACS I było poprawne, w zasadzie nie możemy powiązać użytkownika z rolą, tak jak możemy to zrobić w dostawcy członkostwa .net (UsersInRoles), ale możemy powiązać rolę opartą na IP. A co z rejestracją? Co powinniśmy przechowywać w naszej bazie danych, aby rozpoznać użytkownika (w ramach naszych klientów) na etapie uwierzytelniania? – Francesco
Nie, mówię, że ** możesz ** kojarzyć użytkowników z rolami używającymi ACS. Rozszerzyłem moją odpowiedź powyżej, aby to uwzględnić. –