Uwierzytelnianie platformy Microsoft Azure

Autor : Rick Anderson

Narzędzia microsoft ASP.NET dla usługi Windows Azure Active Directory ułatwiają uwierzytelnianie aplikacji internetowych hostowanych w witrynach sieci Web platformy Windows Azure. Uwierzytelnianie platformy Windows Azure służy do uwierzytelniania użytkowników Office 365 z organizacji, kont firmowych synchronizowanych z lokalnej usługi Active Directory lub użytkowników utworzonych we własnej niestandardowej domenie usługi Windows Azure Active Directory. Włączenie uwierzytelniania platformy Windows Azure umożliwia skonfigurowanie aplikacji do uwierzytelniania użytkowników przy użyciu jednej dzierżawy usługi Windows Azure Active Directory .

Narzędzie ASP.NET uwierzytelniania platformy Windows Azure nie jest obsługiwane w przypadku ról internetowych w usłudze w chmurze, ale planujemy to zrobić w przyszłej wersji. Program Windows Identity Foundation (WIF) jest obsługiwany w rolach internetowych platformy Windows Azure.

Aby uzyskać szczegółowe informacje na temat sposobu konfigurowania synchronizacji między lokalną usługą Active Directory i dzierżawą usługi Windows Azure Active Directory, zobacz Implementowanie logowania jednokrotnego i zarządzanie nim przy użyciu usług AD FS 2.0.

Usługa Windows Azure Active Directory jest obecnie dostępna jako bezpłatna usługa w wersji zapoznawczej.

Wymagania:

Tworzenie aplikacji internetowej ASP.NET przy użyciu programu Visual Studio 2012

W tym samouczku można utworzyć dowolną aplikację internetową za pomocą programu Visual Studio 2012, korzystając z szablonu intranetowego ASP.NET MVC.

  1. Utwórz nową aplikację intranetową MVC 4 ASP.NET i zaakceptuj wszystkie wartości domyślne. (Musi to być wartość In tra net, a nie In ter net project). Zrzut ekranu przedstawiający okno dialogowe Szablon projektu. Wybrana jest aplikacja intranetowa.

Włączanie uwierzytelniania platformy Azure w oknie (gdy jesteś administratorem globalnym tenet)

Jeśli nie masz istniejącej dzierżawy usługi Windows Azure Active Directory (na przykład za pomocą istniejącego konta Office 365), możesz utworzyć nową dzierżawę, rejestrując się w celu uzyskania nowego konta usługi Windows Azure Active Directory.

  1. W menu Project (Projekt) wybierz pozycję Enable Windows Azure Authentication (Włącz uwierzytelnianie platformy Windows Azure):

    Zrzut ekranu przedstawiający menu rozwijane Project (Projekt). Włącz uwierzytelnianie platformy Windows Azure jest zakreśline na czerwono.

  2. Wprowadź domenę dla dzierżawy usługi Windows Azure Active Directory (na przykład contoso.onmicrosoft.com) i kliknij przycisk Włącz:

Zrzut ekranu przedstawiający okno dialogowe Włączanie uwierzytelniania platformy Windows Azure.

  1. W oknie dialogowym Uwierzytelnianie sieci Web zaloguj się jako administrator dzierżawy usługi Windows Azure Active Directory:

    Zrzut ekranu przedstawiający stronę logowania do uwierzytelniania w sieci Web usługi Microsoft Office 3 6 5.

Zrzut ekranu przedstawiający stronę logowania do platformy Windows Azure.

Włączanie platformy Azure dla platformy Windows przez innego niż administrator tenet

Jeśli nie masz uprawnień administratora globalnego dla dzierżawy usługi Windows Azure Active Directory, możesz cofnąć zaznaczenie pola wyboru aprowizacji aplikacji.

Zrzut ekranu przedstawiający okno dialogowe Włączanie uwierzytelniania platformy Windows Azure.

W oknie dialogowym zostaną wyświetlone wartości Domena, Identyfikator podmiotu zabezpieczeń aplikacji i Adres URL odpowiedzi , które są wymagane do aprowizacji aplikacji przy użyciu zestawu tenet usługi Azure Active Directory. Te informacje należy przekazać osobie, która ma wystarczające uprawnienia do aprowizacji aplikacji. Aby uzyskać szczegółowe informacje na temat ręcznego tworzenia jednostki usługi, zobaczJak zaimplementować logowanie jednokrotne w usłudze Windows Azure Active Directory — ASP.NET Application . Po pomyślnym aprowizacji aplikacji możesz kliknąć pozycję Kontynuuj, aby zaktualizować web.config przy użyciu wybranych ustawień. Jeśli chcesz kontynuować tworzenie aplikacji podczas oczekiwania na zainicjowanie obsługi administracyjnej, możesz kliknąć przycisk Zamknij, aby zapamiętać ustawienia w pliku projektu. Przy następnym wywołaniu opcji Włącz uwierzytelnianie platformy Windows Azure i usuń zaznaczenie pola wyboru aprowizacji zostaną wyświetlone te same ustawienia, a następnie kliknij przycisk Kontynuuj, a następnie kliknij pozycję Zastosuj te ustawienia w web.config.

  1. Zaczekaj na skonfigurowanie aplikacji na potrzeby uwierzytelniania platformy Windows Azure i aprowizowania za pomocą usługi Windows Azure Active Directory.

  2. Po włączeniu uwierzytelniania platformy Windows Azure dla aplikacji kliknij przycisk Zamknij:

    Zrzut ekranu przedstawiający okno dialogowe o nazwie Włączanie uwierzytelniania platformy Windows Azure.

  3. Naciśnij klawisz F5, aby uruchomić aplikację. Powinno nastąpić automatyczne przekierowanie do strony logowania. Użyj poświadczeń użytkownika tenet katalogu, aby zalogować się do aplikacji.

    Zrzut ekranu przedstawiający stronę logowania do platformy Windows Azure.

  4. Ponieważ aplikacja korzysta obecnie z certyfikatu testowego z podpisem własnym, w przeglądarce zostanie wyświetlone ostrzeżenie informujące o tym, że certyfikat nie został wystawiony przez zaufany urząd certyfikacji.

    To ostrzeżenie można bezpiecznie zignorować podczas programowania lokalnego, klikając pozycję Kontynuuj do tej witryny internetowej:

    Zrzut ekranu przedstawiający ostrzeżenie o zabezpieczeniach witryny internetowej. Przejdź do tej witryny internetowej, która nie jest zalecana, jest zakreślina na czerwono.

  5. Udało Ci się zalogować do aplikacji przy użyciu uwierzytelniania platformy Windows Azure.

    Zrzut ekranu przedstawiający stronę główną aplikacji My A A S P dot NET.

Włączenie uwierzytelniania platformy Windows Azure powoduje wprowadzenie następujących zmian w aplikacji:

  • Do projektu zostanie dodana klasa Anti-Cross-Site Request Forgery (CSRF) ( App_Start\AntiXsrfConfig.cs ).

  • Pakiety System.IdentityModel.Tokens.ValidatingIssuerNameRegistry NuGet są dodawane do projektu.

  • Ustawienia programu Windows Identity Foundation w aplikacji zostaną skonfigurowane do akceptowania tokenów zabezpieczających z dzierżawy usługi Windows Azure Active Directory. Kliknij poniższy obraz, aby wyświetlić rozszerzony widok zmian wprowadzonych w pliku Web.config .

    Zrzut ekranu przedstawiający wiersze kodu od 9 do 67. Niektóre wiersze są usuwane ze zrzutu ekranu i pozostałe wiersze od 92 do 97.

  • Zostanie aprowizowana jednostka usługi dla aplikacji w dzierżawie usługi Windows Azure Active Directory.

  • Protokół HTTPS jest włączony.

Wdrażanie aplikacji na platformie Windows Azure

Aby uzyskać pełne instrukcje, zobacz Deploying an ASP.NET Web Application to a Windows Azure Web Site (Wdrażanie aplikacji internetowej ASP.NET w witrynie internetowej platformy Windows Azure).

Aby opublikować aplikację przy użyciu uwierzytelniania platformy Windows Azure w witrynie internetowej platformy Azure:

  1. Kliknij prawym przyciskiem myszy aplikację i wybierz polecenie Publikuj:

    Zrzut ekranu przedstawiający menu win Azure Auth Demo (Pokaz uwierzytelniania platformy Azure). Opcja Publikuj jest zaznaczona.

  2. W oknie dialogowym Publikowanie w sieci Web pobierz i zaimportuj profil publikowania dla witryny internetowej platformy Azure.

    Zrzut ekranu przedstawiający stronę Profil w oknie dialogowym Publikowanie w sieci Web.

  3. Karta Połączenie zawiera docelowy adres URL (publiczny adres URL aplikacji). Kliknij pozycję Weryfikuj połączenie , aby przetestować połączenie:

    Zrzut ekranu przedstawiający stronę Połączenie w oknie dialogowym Publikowanie w sieci Web.

  4. Jeśli opublikowano wcześniej tę witrynę sieci Web platformy Azure, rozważ sprawdzenie ustawienia Usuń dodatkowe pliki w miejscu docelowym , aby upewnić się, że aplikacja jest czysta. Zwróć uwagę, że pole wyboru Włącz uwierzytelnianie platformy Windows Azure jest zaznaczone.

    Zrzut ekranu przedstawiający stronę Ustawienia w oknie dialogowym Publikowanie w sieci Web. Włącz uwierzytelnianie platformy Windows Azure jest zaznaczone i zakreśline na czerwono.

  5. Opcjonalnie: na karcie Podgląd kliknij przycisk Rozpocznij podgląd , aby wyświetlić wdrożone pliki.

    Zrzut ekranu przedstawiający stronę Podgląd w oknie dialogowym Publikowanie w sieci Web.

  6. Kliknij pozycję Publikuj.

    Zostanie wyświetlony monit o włączenie uwierzytelniania platformy Windows Azure dla hosta docelowego. Kliknij przycisk Włącz , aby kontynuować:

    Zrzut ekranu przedstawiający okno dialogowe Włączanie uwierzytelniania platformy Windows Azure.

  7. Wprowadź poświadczenia administratora dla dzierżawy usługi Windows Azure Active Directory:

    Zrzut ekranu przedstawiający stronę logowania do uwierzytelniania internetowego platformy Windows Azure.

  8. Po pomyślnym opublikowaniu aplikacji zostanie otwarta przeglądarka w opublikowanej witrynie internetowej.

    Uwaga

    Po włączeniu uwierzytelniania platformy Windows Azure dla hosta docelowego aplikacja może potrwać do pięciu minut (zazwyczaj znacznie mniej). Po pierwszym uruchomieniu aplikacji, jeśli wystąpi błąd ACS50001: Nie znaleziono jednostki uzależnionej o nazwie "[obszar]", a następnie zaczekaj kilka minut i spróbuj ponownie uruchomić aplikację.

  9. Po wyświetleniu monitu zaloguj się jako użytkownik w katalogu:

    Zrzut ekranu przedstawiający stronę logowania do platformy Windows Azure.

  10. Pomyślnie zalogowano się do aplikacji hostowanej na platformie Azure przy użyciu uwierzytelniania platformy Windows Azure.

    Zrzut ekranu przedstawiający stronę główną My A S P dot NET.

Znane problemy

Autoryzacja oparta na rolach kończy się niepowodzeniem w przypadku korzystania z uwierzytelniania platformy Windows Azure

Uwierzytelnianie platformy Windows Azure nie zapewnia obecnie niezbędnego oświadczenia roli, aby można było wykonać autoryzację opartą na rolach. Rolę uwierzytelnionego użytkownika należy pobrać ręcznie z usługi Windows Azure Active Directory.

Przejście do aplikacji przy użyciu uwierzytelniania platformy Windows Azure powoduje błąd "ACS20016 Domena zalogowanego użytkownika (live.com) nie jest zgodna z żadną dozwoloną domeną tego usługi STS"

Jeśli użytkownik jest już zalogowany na koncie Microsoft (na przykład hotmail.com, live.com, outlook.com) i próbujesz uzyskać dostęp do aplikacji, która włączyła uwierzytelnianie platformy Windows Azure, może zostać wyświetlony komunikat o błędzie 400, ponieważ domena konta Microsoft nie jest rozpoznawana przez usługę Windows Azure Active Directory. Aby zalogować się do aplikacji, najpierw wyloguj się z konta Microsoft.

Logowanie do aplikacji z włączonym uwierzytelnianiem platformy Windows Azure i elementem X509CertificateValidationMode innym niż Brak powoduje błędy weryfikacji certyfikatu dla certyfikatu accounts.accesscontrol.windows.net

Weryfikacja certyfikatu nie jest wymagana i powinna zostać wyłączona. Odcisk palca certyfikatu wystawcy jest weryfikowany przez moduł WSFederationAuthenticationModule.

Podczas próby włączenia uwierzytelniania platformy Windows Azure w oknie dialogowym uwierzytelnianie sieci Web jest wyświetlany błąd "ACS20016: Domena zalogowanego użytkownika (contoso.onmicrosoft.com) nie jest zgodna z żadną dozwoloną domeną tego usługi STS".

Ten błąd może wystąpić, gdy wcześniej pomyślnie zalogowano się przy użyciu innego konta usługi Windows Azure Active Directory z poziomu tego samego procesu programu Visual Studio. Wyloguj się z określonego konta lub uruchom ponownie program Visual Studio. Jeśli wcześniej zalogowano się i wybrano opcję "Zachowaj mnie zalogowano", może być konieczne wyczyszczenie plików cookie przeglądarki.

ACS20012: Żądanie nie jest prawidłowym komunikatem protokołu WS-Federation

Może się to zdarzyć, jeśli użytkownik jest już zalogowany przy użyciu innego identyfikatora Firmy Microsoft do jednej z usług platformy Azure. Użyj okna przeglądarki prywatnej, takiego jak InPrivate w programie IE lub Incognito w przeglądarce Chrome, lub wyczyść wszystkie pliki cookie.

Dodatkowe zasoby