Zabezpečení aplikace démona
Tento článek popisuje, jak hostovat aplikace démona v důvěryhodném a zabezpečeném prostředí v Microsoft Azure Maps.
Tady jsou příklady aplikací démona:
- Webová úloha Azure
- Aplikace funkcí Azure
- Služba systému Windows
- Spuštěná a spolehlivá služba na pozadí
Zobrazení podrobností o ověřování Azure Maps
Zobrazení podrobností o ověřování účtu Azure Maps v Azure Portal:
Přihlaste se k webu Azure Portal.
Přejděte do nabídky Azure Portal. Vyberte Všechny prostředky a pak vyberte svůj účet Azure Maps.
V části Nastavení v levém podokně vyberte Ověřování.
Při vytvoření účtu Azure Maps se vytvoří tři hodnoty. Používají se k podpoře dvou typů ověřování v Azure Maps:
- Ověřování Azure Active Directory: Představuje
Client ID
účet, který se má použít pro požadavky rozhraní REST API. HodnotaClient ID
by měla být uložena v konfiguraci aplikace a pak by se měla načíst před provedením Azure Maps požadavků HTTP, které používají Azure AD ověřování. - Ověřování pomocí sdíleného klíče: Jako
Primary Key
klíč předplatného pro ověřování sdíleným klíčem se používají aSecondary Key
. Ověřování pomocí sdíleného klíče spoléhá na předání klíče vygenerovaného účtem Azure Maps s každou žádostí o Azure Maps. Doporučujeme, abyste klíče pravidelně vygenerovávala. Pro zachování aktuálních připojení během regenerace jsou k dispozici dva klíče. Jeden klíč se může používat při opětovném vygenerování druhého klíče. Při opětovném vygenerování klíčů je nutné aktualizovat všechny aplikace, které přistupují k tomuto účtu, aby nové klíče používaly. Další informace najdete v tématu Ověřování pomocí Azure Maps
Důležité
Pro produkční aplikace doporučujeme implementovat Azure AD a řízení přístupu na základě role v Azure (Azure RBAC). Přehled konceptů Azure AD najdete v tématu Ověřování pomocí Azure Maps.
Scénář: Ověřování pomocí sdíleného klíče pomocí Azure Key Vault
Aplikace, které používají ověřování pomocí sdíleného klíče, by měly klíče ukládat v zabezpečeném úložišti. Tento scénář popisuje, jak bezpečně uložit klíč aplikace jako tajný kód v Azure Key Vault. Místo ukládání sdíleného klíče do konfigurace aplikace může aplikace načíst sdílený klíč jako tajný klíč Azure Key Vault. Pro zjednodušení regenerace klíčů doporučujeme, aby aplikace používaly vždy jeden klíč. Aplikace pak můžou znovu vygenerovat nepoužívaný klíč a nasadit znovu vygenerovaný klíč do Azure Key Vault a přitom zachovat aktuální připojení s jedním klíčem. Informace o tom, jak nakonfigurovat Azure Key Vault, najdete v příručce pro vývojáře azure Key Vault.
Důležité
Tento scénář nepřímo přistupuje k Azure Active Directory prostřednictvím Azure Key Vault. Doporučujeme ale použít Azure AD ověřování přímo. Použitím Azure AD se přímo vyhnete dalším požadavkům na složitost a provoz při používání ověřování pomocí sdíleného klíče a nastavení Key Vault.
Následující kroky popisují tento proces:
- Vytvořte Key Vault Azure.
- Vytvořte Azure AD instanční objekt vytvořením registrace aplikace nebo spravované identity. Vytvořený objekt zabezpečení zodpovídá za přístup k azure Key Vault.
- Přiřaďte instančnímu objektu oprávnění k tajným klíčům
get
Azure. Podrobnosti o tom, jak nastavit oprávnění, najdete v tématu Přiřazení zásad Key Vault přístupu pomocí Azure Portal. - Jako vývojáři dočasně přiřaďte oprávnění k přístupu k tajným kódům
set
. - Nastavte sdílený klíč v tajných kódech Key Vault a na ID tajného klíče odkazujte jako na konfiguraci pro aplikaci démona.
- Odeberte oprávnění k tajným kódům
set
. - Pokud chcete načíst tajný klíč sdíleného klíče z Azure Key Vault, implementujte ověřování Azure Active Directory v aplikaci démona.
- Vytvořte požadavek rozhraní REST API Azure Maps se sdíleným klíčem. Teď může aplikace démona načíst sdílený klíč z Key Vault.
Tip
Pokud je aplikace hostovaná v prostředí Azure, doporučujeme použít spravovanou identitu, abyste snížili náklady a složitost správy tajného kódu pro ověřování. Pokud se chcete dozvědět, jak nastavit spravovanou identitu, přečtěte si kurz: Použití spravované identity k připojení Key Vault k webové aplikaci Azure v .NET.
Scénář: Azure AD řízení přístupu na základě role
Po vytvoření účtu Azure Maps se na stránce podrobností o ověřování Azure Portal zobrazí hodnota Azure MapsClient ID
. Tato hodnota představuje účet, který se má použít pro požadavky rozhraní REST API. Tato hodnota by měla být uložena v konfiguraci aplikace a načtena před provedením požadavků HTTP. Cílem scénáře je umožnit aplikaci démona ověřování pro Azure AD a volání Azure Maps rozhraní REST API.
Tip
Pokud chcete zajistit výhody komponent spravovaných identit, doporučujeme hostovat v Azure Virtual Machines, Virtual Machine Scale Sets nebo App Services.
Hostování démona v prostředcích Azure
Při spouštění na prostředcích Azure můžete nakonfigurovat identity spravované Azure tak, aby umožňovaly nízké náklady a minimální úsilí o správu přihlašovacích údajů.
Pokud chcete povolit přístup aplikace ke spravované identitě, přečtěte si téma Přehled spravovaných identit.
Mezi výhody spravované identity patří:
- Ověřování veřejného klíče kryptografie certifikátu X509 spravovaného systémem Azure
- Azure AD zabezpečení pomocí certifikátů X509 místo tajných klíčů klienta.
- Azure spravuje a obnovuje všechny certifikáty přidružené k prostředku spravované identity.
- Provozní správa přihlašovacích údajů je zjednodušená, protože spravovaná identita odstraňuje potřebu zabezpečené služby úložiště tajných kódů, jako je Azure Key Vault.
Hostování démona u prostředků mimo Azure
Při spuštění v prostředí mimo Azure nejsou spravované identity k dispozici. Proto musíte nakonfigurovat instanční objekt prostřednictvím registrace aplikace démona Azure AD.
Vytvoření nové registrace aplikace
Pokud jste už registraci aplikace vytvořili, přejděte k tématu Přiřazení delegovaných oprávnění rozhraní API.
Vytvoření nové registrace aplikace:
Přihlaste se k webu Azure Portal.
Vyberte Azure Active Directory.
V části Spravovat v levém podokně vyberte Registrace aplikací.
Vyberte kartu + Nová registrace .
Zadejte Název a vyberte typ účtu podpory.
Vyberte Zaregistrovat.
Přiřazení oprávnění delegovaného rozhraní API
Přiřazení delegovaných oprávnění rozhraní API k Azure Maps:
Pokud jste to ještě neudělali, přihlaste se k Azure Portal.
Vyberte Azure Active Directory.
V části Spravovat v levém podokně vyberte Registrace aplikací.
Vyberte aplikaci.
V části Spravovat v levém podokně vyberte Oprávnění rozhraní API.
Vyberte Přidat oprávnění.
Vyberte kartu ROZHRANÍ API, která moje organizace používá .
Do vyhledávacího pole zadejte Azure Maps.
Vyberte Azure Maps.
Zaškrtněte políčko Access Azure Maps.
Vyberte Přidat oprávnění.
Vytvoření tajného klíče klienta nebo konfigurace certifikátu
Pokud chcete do své aplikace implementovat ověřování na základě serveru nebo aplikace, můžete zvolit jednu ze dvou možností:
- Nahrajte certifikát veřejného klíče.
- Vytvořte tajný kód klienta.
Nahrání certifikátu veřejného klíče
Nahrání certifikátu veřejného klíče:
V levém podokně v části Spravovat vyberte Tajné kódy certifikátů&.
Vyberte Nahrát certifikát.
Napravo od textového pole vyberte ikonu souboru.
Vyberte soubor .crt, .cer nebo .pem a pak vyberte Přidat.
Vytvoření tajného klíče klienta
Vytvoření tajného klíče klienta:
V levém podokně v části Spravovat vyberte Tajné kódy certifikátů&.
Vyberte + Nový tajný klíč klienta.
Zadejte popis tajného klíče klienta.
Vyberte Přidat.
Zkopírujte tajný kód a bezpečně ho uložte ve službě, jako je Azure Key Vault. Tajný kód použijeme také v části Žádost o token se spravovanou identitou v tomto článku.
Důležité
Pokud chcete certifikát nebo tajný klíč bezpečně uložit, projděte si příručku pro vývojáře Azure Key Vault. Tento tajný kód použijete k získání tokenů z Azure AD.
Udělení přístupu na základě role uživatelům k Azure Maps
Řízení přístupu na základě role (Azure RBAC) můžete udělit přiřazením Azure AD skupiny nebo objektu zabezpečení k jedné nebo několika definicím rolí Azure Maps.
Dostupné definice rolí Azure pro Azure Maps najdete v tématu Zobrazení předdefinovaných definic rolí Azure Maps.
Podrobný postup přiřazení dostupné role Azure Maps vytvořené spravované identitě nebo instančnímu objektu najdete v tématu Přiřazení rolí Azure pomocí Azure Portal
Pokud chcete efektivně spravovat Azure Maps přístup k aplikacím a prostředkům velkého počtu uživatelů, přečtěte si téma Azure AD Skupiny.
Důležité
Aby se uživatelé mohli ověřovat v aplikaci, musí být nejprve vytvořeni v Azure AD. Další informace najdete v tématu Přidání nebo odstranění uživatelů pomocí Azure AD.
Informace o efektivní správě velkého adresáře pro uživatele najdete v tématu Azure AD.
Upozornění
Azure Maps předdefinované definice rolí poskytují velmi rozsáhlý autorizační přístup k mnoha Azure Maps rozhraní REST API. Pokud chcete omezit přístup rozhraní API na minimum, přečtěte si téma vytvoření vlastní definice role a přiřazení identity přiřazené systémem k definici vlastní role. To umožňuje nejnižší úroveň oprávnění potřebnou pro přístup aplikace k Azure Maps.
Žádost o token se spravovanou identitou
Po nakonfigurování spravované identity pro hostitelský prostředek můžete pomocí sady Azure SDK nebo rozhraní REST API získat token pro Azure Maps. Informace o získání přístupového tokenu najdete v tématu Získání přístupového tokenu.
Žádost o token s registrací aplikace
Po registraci aplikace a jejím přidružení k Azure Maps budete muset požádat o přístupový token.
Získání přístupového tokenu:
Pokud jste to ještě neudělali, přihlaste se k Azure Portal.
Vyberte Azure Active Directory.
V levém podokně v části Spravovat vyberte Registrace aplikací.
Vyberte aplikaci.
Měla by se zobrazit stránka Přehled. Zkopírujte ID aplikace (klienta) a ID adresáře (tenanta).
K vytvoření požadavku na token použijeme aplikaci Postman , ale můžete použít jiné vývojové prostředí rozhraní API.
V aplikaci Postman vyberte Nový.
V okně Vytvořit nový vyberte Požadavek HTTP.
Zadejte název žádosti , například Žádost o token POST.
Vyberte metodu POST HTTP.
Zadejte následující adresu URL na adresní řádek (nahraďte
{Tenant-ID}
ID{Client-ID}
adresáře (tenanta), ID aplikace (klienta) a{Client-Secret}
tajným kódem klienta:https://login.microsoftonline.com/{Tenant-ID}/oauth2/v2.0/token?response_type=token&grant_type=client_credentials&client_id={Client-ID}&client_secret={Client-Secret}%3D&scope=api%3A%2F%2Fazmaps.fundamentals%2F.default
Vyberte Odeslat.
Měla by se zobrazit následující odpověď JSON:
{
"token_type": "Bearer",
"expires_in": 86399,
"ext_expires_in": 86399,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im5PbzNaRHJPRFhFSzFq..."
}
Další informace o toku ověřování najdete v tématu Tok přihlašovacích údajů klienta OAuth 2.0 na Microsoft identity platform
Další kroky
Podrobnější příklady:
Vyhledejte metriky využití rozhraní API pro váš účet Azure Maps:
Prozkoumejte ukázky, které ukazují, jak integrovat Azure AD s Azure Maps: