Nasazení federovaných aplikací a služeb ACS do Azure
Platí pro
Microsoft Azure Active Directory Access Control (označované také jako služba Access Control nebo služba ACS)
Windows Identity Foundation (WIF)
Microsoft Azure
Souhrn
Toto téma konsoliduje pokyny, které byste měli vzít v úvahu při vývoji aplikací a služeb, které používají službu ACS a které se nasadí do Azure.
Cíle
Dynamické vygenerované porty můžete obejít pomocí výpočetního Emulator.
Nasaďte modul runtime Windows Identity Foundation (WIF) do Azure.
Zašifrujte soubory cookie pomocí RSA.
Nakonfigurujte sestavení vyvolaná reflexí, která se mají nasadit do Azure.
Dynamické vygenerované porty s výpočetním Emulator
Tato část je relevantní při vytváření webových aplikací. Při vytváření webových služeb to není relevantní. Výpočetní Emulator je součástí nástrojů sady Azure SDK. Můžete ji použít ke spuštění, testování, ladění a vyladění aplikace před nasazením jako hostované služby do Azure. Ve výpočetním Emulator není možné přidělit jedinečnou IP adresu. Výpočetní Emulator se pokusí přiřadit požadovaný port. Pokud tento port není dostupný, přidělí další nejlepší dostupné číslo portu. To znamená, že ve výpočetním Emulator může být vaší službě přiřazeno jiné číslo portu než číslo portu, které jste zadali v definičním souboru. Další informace o výpočetních Emulator najdete v tématu Přehled Windows Emulator služby Azure Compute (https://go.microsoft.com/fwlink/?LinkId=221212).
Pokud výpočetní Emulator přidělí IP adresu jinou než IP adresu nakonfigurovanou jako zpáteční adresu URL na portálu pro správu služby ACS, služba ACS přesměruje ověřené požadavky na adresu URL nakonfigurovanou v poli Zpáteční adresa URL konfigurace předávající strany, ale v této adrese URL nebude existovat žádná odpovídající stránka. V důsledku toho se zobrazí prázdná stránka.
Pokud chcete toto chování obejít, nakonfigurujte veřejný port koncového bodu cloudové webové aplikace na port, který je dostupný na vašem počítači. Výpočetní Emulator pak nepřiřazuje náhodný port, aby nedošlo ke kolizi.
Konfigurace koncového bodu pro použití dostupného portu
Chcete-li otevřít příkazový řádek, klepněte na tlačítko Start, zadejte cmd a stiskněte Klávesu Enter.
Spuštěním následujícího příkazu zobrazte seznam IP adres místního hostitele s použitými porty: netstat –a –n | findstr 127.0.0.1
Projděte si seznam a zjistěte port, který se aktuálně nepoužívá. Tento port použijete v následujících krocích.
V Průzkumník řešení poklikejte na svou roli, která se nachází ve složce Role v cloudovém projektu. Otevře se stránka vlastností role.
Na stránce Vlastnosti webové role klikněte na kartu Koncové body .
V souboru **Veřejný port ** zadejte hodnotu portu, kterou jste identifikovali v kroku 3.
Pokud chcete práci uložit, stiskněte Ctrl+S.
Nasazení modulu runtime Windows Identity Foundation do Windows Azure
Windows Identity Foundation (WIF) je neskladný modul runtime, který musí být nainstalovaný v počítači, aby ji vaše aplikace pracující s deklaracemi mohl používat. WiF není ve výchozím nastavení nainstalovaný v instancích Azure. Pokud chcete spustit aplikaci pracující s deklaracemi identity v cloudu, musíte v instanci Azure zpřístupnit modul runtime WIF. Nejjednodušším způsobem je zahrnout sestavení WIF do balíčku pro nasazení.
Zahrnutí sestavení WIF do balíčku nasazení Windows Azure
V Průzkumník řešení vyhledejte aplikaci pracující s deklaracemi.
Rozbalte složku Reference .
Vyhledejte sestavení Microsoft.IdentityModel ve složce Reference .
Klepněte pravým tlačítkem myši na sestavení a klepněte na příkaz Vlastnosti.
V okně vlastností zadejte **Kopírovat místní ** jako true a specific version as False.
Šifrování souborů cookie pomocí RSA
Tato část je relevantní při vytváření webových aplikací. WiF ve výchozím nastavení chrání soubory cookie kryptograficky pomocí aplikačních programovacích rozhraní ochrany dat (DPAPI). DpAPI není v Azure k dispozici. Abyste měli jistotu, že webová aplikace pracující s deklaracemi identity v cloudu funguje správně, když je nasazená do Azure, musíte pomocí RSA přidat funkce šifrování souborů cookie.
Šifrování souborů cookie pomocí RSA
V Průzkumník řešení vyhledejte webovou aplikaci podporující cloudové deklarace identity.
Otevřete soubor global.asax.cs, což je kód za souborem global.asax v editoru Visual Studio.
Přidejte následující deklarace:
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Web; using Microsoft.IdentityModel.Web.Configuration;
Přidejte následující kód:
void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e) { // // Use the <serviceCertificate> to protect the cookies that are // sent to the client. // List<CookieTransform> sessionTransforms = new List<CookieTransform>(new CookieTransform[] { new DeflateCookieTransform(), new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate), new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate) }); SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly()); e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler); } void Application_Start(object sender, EventArgs e) { FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
Poznámka
Pokud jste již přidali obslužnou rutinu události Application_Start, můžete ji aktualizovat tak, aby zahrnovala tento kód.
Uložte svou práci.
Konfigurace sestavení vyvolaná reflexí, která se mají nasadit do Windows Azure
V některých případech jsou sestavení vyvolána reflexí, například při vývoji služeb WCF služby Representational State Transfer (REST) nebo HttpModules, které kontrolují příchozí tokeny SWT. Abyste měli jistotu, že jsou tato sestavení nasazená do Azure, musíte provést další kroky pro jejich přidání do balíčku pro nasazení.
Přidání sestavení, která jsou vyvolána reflexí do balíčku nasazení Windows Azure
Rozbalte složku přihrádky webové aplikace nebo služby pracující s deklaracemi identity v cloudu.
Klepněte pravým tlačítkem myši na sestavení a potom klepněte na tlačítko Zahrnout do Project.
Klepněte pravým tlačítkem myši na stejnou knihovnu a klepněte na příkaz Vlastnosti.
V okně Vlastnosti klepněte na tlačítko Kopírovat, pokud je novější pro kopírovat do výstupního adresáře.