Ukázka kódu: ASP.NET vlastní přihlašovací stránku MVC 3
Aktualizováno: 19. června 2015
Platí pro: Azure
Tato ukázka ukazuje, jak vytvořit vlastní přihlašovací nebo domovskou stránku zjišťování sféry v aplikaci ASP.NET MVC3, která používá Microsoft Azure Active Directory Access Control (označovanou také jako služba Access Control nebo služba ACS). Kód pro tuto ukázku se nachází v podadresáři MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) balíčku ukázek kódu Microsoft Azure Active Directory Access Control (ACS).
Požadavky
K spuštění této ukázky budete potřebovat:
Účet v Azure Portal a obor názvů Access Control
Visual Studio 2010 (libovolná verze)
Windows Identity Foundation SDK
Další podrobnosti najdete v tématu Požadavky ACS (https://go.microsoft.com/fwlink/?LinkId=221065).
Konfigurace ukázky
Konfiguraci služby ACS vyžadovanou pro tuto ukázku je možné provést pomocí portálu pro správu služby ACS nebo služby pro správu služby ACS. Toto téma popisuje obě možnosti.
Možnost 1: Konfigurace ukázky prostřednictvím portálu pro správu služby ACS
Konfigurace ukázky na portálu pro správu služby ACS
Přejděte na portál pro správu Microsoft Azure (https://manage.WindowsAzure.com), přihlaste se a klikněte na Active Directory. (Tip pro řešení potíží: Položka Active Directory chybí nebo není k dispozici)
Chcete-li vytvořit obor názvů Access Control, klikněte na Tlačítko Nový, klikněte na App Services, klikněte na Access Control a potom klikněte na Rychlé vytvoření. (Nebo klikněte na Access Control Obory názvů předtím, než kliknete na Nový.)
Pokud chcete spravovat Access Control obor názvů, vyberte obor názvů a klikněte na Spravovat. (Nebo klikněte na Access Control Obory názvů, vyberte obor názvů a potom klikněte na Spravovat.)
Tato akce otevře portál pro správu služby Access Control.
Pokud chcete vytvořit vztahy s zprostředkovateli identit, klikněte na zprostředkovatele identity a vyberte zprostředkovatele identity, které chcete použít, například Google, Yahoo!a Facebook. Další informace o tom, jak získat požadované klíče pro Facebook, najdete v tématu Postupy: Konfigurace Facebooku jako zprostředkovatele identity (https://go.microsoft.com/fwlink/?LinkId=221151). Kliknutím na odkaz Domů v levé navigační nabídce stránky se vrátíte na hlavní stránku.
Pokud chcete aplikaci zaregistrovat ve službě ACS, klikněte na portálu pro správu služby Access Control na odkaz aplikace předávající strany umístěný na hlavní stránce, vyberte Přidat a zadejte do formuláře následující informace:
Do pole Název zadejte vlastní ASPNET MVC3.
Do pole Sféra zadejte https://localhost:64000/
Do pole Zpáteční adresa URL zadejte https://localhost:64000/Account/SignIn
V poli Formát tokenu vyberte SAML 2.0.
V části Zprostředkovatele identity vyberte Facebook, Google, Windows Live ID a Yahoo!
V poli Podpis tokenu vyberte Použít certifikát oboru názvů služby (standard).
Klikněte na Uložit a přejděte zpět na hlavní stránku.
Když máte nakonfigurovanou aplikaci předávající strany, je teď čas vytvořit pravidla, která určují deklarace identity, které služba ACS vydá vaší aplikaci. V této ukázce projdeme všechny deklarace identity vydané zprostředkovateli identity. Chcete-li vytvořit toto pravidlo, klikněte na skupiny pravidel umístěné na hlavní stránce a klikněte na výchozí skupinu pravidel pro vlastní skupinu pravidel ASPNET MVC3 .
V dolní části stránky klikněte na odkaz Generovat . Ujistěte se, že je vybranámožnost Facebook, Yahoo a klikněte na Tlačítko Generovat.
S nakonfigurovanou službou ACS otevřete Visual Studio.
Možnost 2: Konfigurace ukázky pomocí služby pro správu služby ACS
Ukázkové řešení Visual Studio má aplikaci příkazového řádku s názvem ConfigureSample, která používá službu ACS Management Service a běžné pomocné rutiny definované v knihovně běžných tříd. Tuto aplikaci můžete použít ke konfiguraci vašeho Access Control oboru názvů pro použití s touto ukázkou.
Konfigurace ukázky pomocí služby ACS Management Service
Aktualizujte knihovnu běžných tříd s informacemi o vašem oboru názvů Access Control. Otevřete SamplesConfiguration.cs a zadejte následující informace:
ServiceNamespace – toto je obor názvů používaný se službou ACS.
ManagementServiceIdentityName – jedná se o název účtu služby pro správu.
ManagementServiceIdentityKey – toto je heslo přidružené k účtu služby pro správu.
AcsHostUrl – toto je název hostitele služby ACS.
V projektu ConfigureSample otevřete Program.cs a zadejte následující informace:
applicationId – Toto je ID aplikace vaší facebookové aplikace.
applicationSecret – Toto je tajný kód aplikace pro Facebook.
Podrobnosti o tom, jak získat tyto klíče, najdete v tématu Postupy: Konfigurace Facebooku jako zprostředkovatele identity (https://go.microsoft.com/fwlink/?LinkId=221151).
Spusťte aplikaci ConfigureSample v Visual Studio, která nakonfiguruje službu ACS ke spuštění této ukázky.
Spuštění ukázky
Chcete-li spustit ukázku
Otevřete ukázku umístěnou v aplikaci Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln v Visual Studio.
Pokud chcete přidat ACS jako odkaz služby STS, klikněte pravým tlačítkem myši na MVCCustomSignInPage a v místní nabídce vyberte Přidat odkaz služby STS .
V dialogovém okně zadejte kořen webové aplikace do pole Identifikátor URI aplikace a klepněte na tlačítko Další. Pro tuto ukázku je tato hodnota https://localhost:64000/
Poznámka
Koncové lomítko je důležité, protože se zaplní s hodnotami, které jste zadali ve službě ACS pro předávající stranu. Průvodce vydá upozornění, že váš web nepoužívá PROTOKOL SSL. Toto upozornění přijměte kliknutím na tlačítko Ano , ale mějte na paměti, že pro tyto typy scénářů by měl téměř vždy používat protokol SSL.
V dalším okně vyberte přepínač Použít existující službu STS a zadejte identifikátor URI metadat WS-Federation publikovaných vaším oborem názvů Access Control. Tento identifikátor URI najdete na portálu v části Integrace aplikací. Pokud je obor názvů Access Control mvc3samples, pak je identifikátor URI https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. Po zadání této hodnoty klikněte na tlačítko Další.
Vzhledem k tomu, že váš web nevyžaduje šifrované tokeny, klepněte na tlačítko Další na zbývajících dialogových oknech a klepněte na tlačítko Dokončit.
Vaše aplikace je teď nakonfigurovaná tak, aby používala službu ACS s deka ochranou prostředků ASP .NET. Potřebujeme tuto ochranu zakázat, abychom mohli používat vlastní přihlašovací stránku s podrobnějšími filtry ověřování MVC3. V souboru web.config v konfiguraci odstraňte následující nastavení:
<location path="FederationMetadata"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
V části system.web odstraňte následující nastavení:
<authorization> <deny users="?" /> </authorization>
Když tato dvě nastavení odeberete, ASP .NET neprovádí za nás žádné ověřování ani autorizaci.
Aplikaci spustíte stisknutím klávesy F5 v Visual Studio. V prohlížeči přejdete na hlavní stránku aplikace.
Klikněte na odkaz Přihlásit se v pravém horním rohu a v zobrazeném seznamu vyberte zprostředkovatele identity. Po ověření se vrátíte na domovskou stránku a informace o uživateli se zobrazí v pravém horním rohu (všimněte si, že nezadáte uživatelské jméno).
Kliknutím na Odhlásit se odhlásíte. Tím se vymažou soubory cookie relace a vrátí se zpět na hlavní stránku.
Klikněte na odkaz Adresář . Vzhledem k tomu, že už nejste ověřeni, zobrazí se výzva k výběru zprostředkovatele identity pro přístup na stránku Adresář.
Důvodem je to, že stránka Adresář (index v DirectoryController) je chráněna prostřednictvím Funkce RequireAuthenticationAttribute. Jakmile vyberete zprostředkovatele identity a ověříte, budete přesměrováni zpět na stránku Adresář.