Zabezpečení back-endových služeb pomocí ověřování klientských certifikátů v Azure API Management
API Management umožňuje zabezpečit přístup k back-endové službě rozhraní API pomocí klientských certifikátů. Tato příručka ukazuje, jak spravovat certifikáty v instanci služby Azure API Management pomocí Azure Portal. Vysvětluje také, jak nakonfigurovat rozhraní API pro použití certifikátu pro přístup k back-endové službě.
Můžete také spravovat API Management certifikáty pomocí API Management REST API.
Možnosti certifikátu
API Management nabízí dvě možnosti správy certifikátů používaných k zabezpečení přístupu k back-end službám:
- Odkazovat na certifikát spravovaný v Azure Key Vault
- Přidejte soubor certifikátu přímo do API Management
Doporučuje se používat certifikáty trezoru klíčů, protože pomáhá API Management zabezpečení:
- Certifikáty uložené v trezorech klíčů je možné opakovaně používat napříč službami.
- Na certifikáty uložené v trezorech klíčů je možné použít podrobné zásady přístupu.
- Certifikáty aktualizované v trezoru klíčů se automaticky obměnají v API Management. Po aktualizaci v trezoru klíčů se certifikát API Management do 4 hodin. Certifikát můžete také ručně aktualizovat pomocí Azure Portal nebo prostřednictvím správy REST API.
Požadavky
Poznámka
Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
- Pokud jste instanci služby API Management ještě nevytyčili, podívejte se na vytvoření instance API Management služby.
- Back-endovou službu byste měli mít nakonfigurovanou pro ověřování klientských certifikátů. Informace o konfiguraci ověřování certifikátů v Azure App Service najdete v tomto článku.
- Potřebujete přístup k certifikátu a hesl pro správu v trezoru klíčů Azure nebo nahrání do API Management služby. Certifikát musí být ve formátu PFX. Certifikáty podepsané svým držitelem jsou povolené.
Požadavky na integraci trezoru klíčů
- Postup vytvoření trezoru klíčů najdete v tématu Rychlý start: Vytvoření trezoru klíčů pomocí Azure Portal.
- Povolte spravovanou identitu přiřazenou systémem nebo uživatelem v API Management instanci.
- Přiřaďte spravované identitě zásady přístupu trezoru klíčů s oprávněními k získání a zobrazení seznamu certifikátů z trezoru. Přidání zásady:
- Na portálu přejděte do trezoru klíčů.
- Vyberte Nastavení > Přístup a > + Přidat zásady přístupu.
- Vyberte Oprávnění k certifikátu a pak vyberte Získat a Zobrazit seznam.
- V části Vybrat objekt zabezpečení vyberte název prostředku vaší spravované identity. Pokud používáte identitu přiřazenou systémem, objekt zabezpečení je název vaší API Management instance.
- Vytvořte nebo importujte certifikát do trezoru klíčů. Viz Rychlý start: Nastavení a načtení certifikátu z Azure Key Vault pomocí Azure Portal.
Požadavky na Key Vault firewall
Pokud Key Vault trezoru klíčů povolená brána firewall, požadavky jsou následující:
- Pro přístup k trezoru API Management musíte použít spravovanou identitu přiřazenou systémem vaší instance.
- V Key Vault firewall povolte možnost Povolit důvěryhodným službám Microsoftu tuto bránu firewall obejít.
Požadavky na virtuální síť
Pokud je API Management nasazená ve virtuální síti, nakonfigurujte také následující nastavení sítě:
- Povolte koncovému bodu služby Azure Key Vault v podsíti API Management služby.
- Nakonfigurujte pravidlo skupiny zabezpečení sítě (NSG), které povolí odchozí provoz do značek služeb AzureKeyVault a AzureActiveDirectory.
Podrobnosti najdete v tématu podrobnosti o konfiguraci sítě Připojení k virtuální síti.
Přidání certifikátu trezoru klíčů
Viz Požadavky pro integraci trezoru klíčů.
Upozornění
Při použití certifikátu trezoru klíčů v API Management dejte pozor, abyste certifikát, trezor klíčů nebo spravovanou identitu použíovanou pro přístup k trezoru klíčů odstranili.
Přidání certifikátu trezoru klíčů do API Management:
V Azure Portalpřejděte na svou instanci API Management.
V části Zabezpečení vyberte Certifikáty.
Vyberte Certifikáty > a přidat.
Do pole Id zadejte název podle svého výběru.
V části Certifikát vyberte Trezor klíčů.
Zadejte identifikátor certifikátu trezoru klíčů nebo zvolte Vybrat a vyberte certifikát z trezoru klíčů.
Důležité
Pokud sami zadáte identifikátor certifikátu trezoru klíčů, ujistěte se, že nemá informace o verzi. Jinak se certifikát nebude automaticky obměnět API Management po aktualizaci v trezoru klíčů.
V části Identita klienta vyberte spravovanou identitu přiřazenou systémem nebo existující spravovanou identitu přiřazenou uživatelem. Zjistěte, jak přidat nebo upravit spravované identity ve vaší API Management službě.
Poznámka
Identita potřebuje oprávnění k získání a zobrazení seznamu certifikátů z trezoru klíčů. Pokud jste ještě nenakonfigurovali přístup k trezoru klíčů, API Management vás vyzve, aby mohl automaticky nakonfigurovat identitu s potřebnými oprávněními.
Vyberte Přidat.
Vyberte Uložit.
Upload certifikátu
Nahrání klientského certifikátu do API Management:
V Azure Portalpřejděte na svou instanci API Management.
V části Zabezpečení vyberte Certifikáty.
Vyberte Certifikáty > a přidat.
Do pole Id zadejte název podle svého výběru.
V části Certifikát vyberte Vlastní.
Vyhledejte soubor .pfx certifikátu a zadejte jeho heslo.
Vyberte Přidat.
Vyberte Uložit.
Po nahrání se certifikát zobrazí v okně Certifikáty. Pokud máte mnoho certifikátů, poznamenejte si kryptografický otisk požadovaného certifikátu, abyste mohli nakonfigurovat rozhraní API tak, aby pro ověřování brány bylo možné použít klientský certifikát.
Poznámka
Pokud chcete vypnout ověřování řetězu certifikátů při použití například certifikátu podepsaného svým držitelem, postupujte podle kroků popsaných v části Certifikáty podepsané svým držitelem dálev tomto článku.
Konfigurace rozhraní API pro použití klientského certifikátu pro ověřování brány
V Azure Portalpřejděte na svou instanci API Management.
V části Rozhraní API vyberte Rozhraní API.
Ze seznamu vyberte rozhraní API.
Na kartě Návrh vyberte ikonu editoru v části Back-end.
V části Přihlašovací údaje brány vyberte Klientský certifikát a v rozevíracím seznamu vyberte váš certifikát.
Vyberte Uložit.
Upozornění
Tato změna je efektivní okamžitě a volání operací tohoto rozhraní API použije certifikát k ověření na back-end serveru.
Tip
Pokud je pro back-endovou službu rozhraní API zadán certifikát pro ověřování brány, stane se součástí zásad pro toto rozhraní API a lze ho zobrazit v editoru zásad.
Certifikáty podepsané svým držitelem
Pokud používáte certifikáty podepsané svým držitelem, budete muset zakázat ověřování řetězu certifikátů, aby API Management komunikoval s back-endový systémem. V opačném případě vrátí kód chyby 500. Pokud to chcete nakonfigurovat, můžete použít New-AzApiManagementBackend rutiny Set-AzApiManagementBackend PowerShellu (pro nový back-end) nebo (pro existující back-end) a nastavit -SkipCertificateChainValidation parametr na True .
$context = New-AzApiManagementContext -resourcegroup 'ContosoResourceGroup' -servicename 'ContosoAPIMService'
New-AzApiManagementBackend -Context $context -Url 'https://contoso.com/myapi' -Protocol http -SkipCertificateChainValidation $true
Odstranění klientského certifikátu
Pokud chcete certifikát odstranit, vyberte ho a pak v místní nabídce ( ... ) vyberte Odstranit.
Důležité
Pokud na certifikát odkazují nějaké zásady, zobrazí se obrazovka s upozorněním. Pokud chcete certifikát odstranit, musíte ho nejprve odebrat ze všech zásad, které jsou nakonfigurované pro jeho použití.