Zabezpečení back-endových služeb pomocí ověřování klientských certifikátů ve službě Azure API Management

PLATÍ PRO: Všechny úrovně služby API Management

Api Management umožňuje zabezpečit přístup k back-endové službě rozhraní API pomocí klientských certifikátů a vzájemného ověřování TLS. Tato příručka ukazuje, jak spravovat certifikáty v instanci služby Azure API Management pomocí webu Azure Portal. Vysvětluje také, jak nakonfigurovat rozhraní API tak, aby používalo certifikát pro přístup k back-endové službě.

Certifikáty SLUŽBY API Management můžete spravovat také pomocí rozhraní REST API služby API Management.

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-endovým službám:

  • Odkaz na certifikát spravovaný ve službě Azure Key Vault
  • Přidání souboru certifikátu přímo do služby API Management

Použití certifikátů trezoru klíčů se doporučuje, protože pomáhá zlepšit zabezpečení služby API Management:

  • Certifikáty uložené v trezorech klíčů je možné opakovaně používat napříč službami.
  • Podrobné zásady přístupu se dají použít na certifikáty uložené v trezorech klíčů.
  • Certifikáty aktualizované v trezoru klíčů se ve službě API Management automaticky obměňují. Po aktualizaci v trezoru klíčů se certifikát ve službě API Management aktualizuje do 4 hodin. Certifikát můžete aktualizovat také ručně pomocí webu Azure Portal nebo přes rozhraní REST API pro správu.

Požadavky

Poznámka:

Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Začněte tím, že si projdete téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.

  • Pokud jste ještě nevytvořili instanci služby API Management, přečtěte si téma Vytvoření instance služby API Management.

  • Pro ověřování klientských certifikátů byste měli mít nakonfigurovanou back-endovou službu. Informace o konfiguraci ověřování certifikátů ve službě Aplikace Azure najdete v tomto článku.

  • Potřebujete přístup k certifikátu a heslu pro správu v trezoru klíčů Azure nebo nahrát do služby API Management. Certifikát musí být ve formátu PFX . Certifikáty podepsané svým držitelem jsou povolené.

    Pokud používáte certifikát podepsaný svým držitelem:

Požadavky na integraci trezoru klíčů

  1. Pokud ještě trezor klíčů nemáte, vytvořte ho. Postup vytvoření trezoru klíčů najdete v tématu Rychlý start: Vytvoření trezoru klíčů pomocí webu Azure Portal.

    Pokud chcete vytvořit nebo importovat certifikát do trezoru klíčů, přečtěte si článek Rychlý start: Nastavení a načtení certifikátu ze služby Azure Key Vault pomocí webu Azure Portal.

  2. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem v instanci služby API Management.

Konfigurace přístupu k trezoru klíčů

  1. Na portálu přejděte do trezoru klíčů.

  2. V nabídce vlevo vyberte konfiguraci accessu a poznamenejte si nakonfigurovaný model oprávnění.

  3. V závislosti na modelu oprávnění nakonfigurujte zásady přístupu trezoru klíčů nebo přístup Azure RBAC pro spravovanou identitu služby API Management.

    Přidání zásady přístupu trezoru klíčů:

    1. V nabídce vlevo vyberte Zásady přístupu.
    2. Na stránce Zásady přístupu vyberte + Vytvořit.
    3. Na kartě Oprávnění v části Oprávnění vyberte Získat a Seznam a pak vyberte Další.
    4. Na kartě Objekt zabezpečení vyberte objekt zabezpečení, vyhledejte název prostředku vaší spravované identity a pak vyberte Další. Pokud používáte identitu přiřazenou systémem, objekt zabezpečení je název vaší instance služby API Management.
    5. Znovu vyberte Další . Na kartě Revize a vytvoření vyberte Vytvořit.

    Konfigurace přístupu Azure RBAC:

    1. V nabídce vlevo vyberte Řízení přístupu (IAM).
    2. Na stránce Řízení přístupu (IAM) vyberte Přidat přiřazení role.
    3. Na kartě Role vyberte uživatele certifikátu služby Key Vault.
    4. Na kartě Členové vyberte Spravovaná identita> + Vybrat členy.
    5. Na stránce Vybrat spravovanou identitu vyberte spravovanou identitu přiřazenou systémem nebo spravovanou identitu přiřazenou uživatelem přidruženou k vaší instanci služby API Management a pak vyberte Vybrat.
    6. Vyberte Zkontrolovat + přiřadit.

Požadavky na bránu firewall služby Key Vault

Pokud je ve vašem trezoru klíčů povolená brána firewall služby Key Vault, jsou další požadavky:

  • Pro přístup k trezoru klíčů musíte použít spravovanou identitu přiřazenou systémem instance služby API Management.

  • V bráně firewall služby Key Vault povolte, aby tuto možnost brány firewall vynechala důvěryhodná služba Microsoftu.

  • Ujistěte se, že vaše IP adresa místního klienta má povolený přístup k trezoru klíčů dočasně, když vyberete certifikát nebo tajný klíč pro přidání do služby Azure API Management. Další informace najdete v tématu Konfigurace nastavení sítě služby Azure Key Vault.

    Po dokončení konfigurace můžete zablokovat adresu klienta v bráně firewall trezoru klíčů.

Požadavky na virtuální síť

Pokud je instance služby API Management nasazená ve virtuální síti, nakonfigurujte také následující nastavení sítě:

Podrobnosti najdete v tématu Konfigurace sítě při nastavování služby Azure API Management ve virtuální síti.

Přidání certifikátu trezoru klíčů

Viz Požadavky pro integraci trezoru klíčů.

Důležité

Při přidávání certifikátu trezoru klíčů do instance služby API Management musíte mít oprávnění k výpisu tajných kódů z trezoru klíčů.

Upozornění

Při použití certifikátu trezoru klíčů ve službě API Management dávejte pozor, abyste certifikát, trezor klíčů nebo spravovanou identitu používanou pro přístup k trezoru klíčů neodstraňovat.

Přidání certifikátu trezoru klíčů do služby API Management:

  1. Na webu Azure Portal přejděte k vaší instanci služby API Management.

  2. V části Zabezpečení vyberte Certifikáty.

  3. Vyberte Certifikáty>+ Přidat.

  4. Do pole ID zadejte název podle vašeho výběru.

  5. V certifikátu vyberte Trezor klíčů.

  6. Zadejte identifikátor certifikátu trezoru klíčů nebo zvolte Vybrat a vyberte certifikát z trezoru klíčů.

    Důležité

    Pokud zadáte identifikátor certifikátu trezoru klíčů sami, ujistěte se, že neobsahuje informace o verzi. V opačném případě se certifikát nebude automaticky otáčet ve službě API Management po aktualizaci v trezoru klíčů.

  7. V části Identita klienta vyberte spravovanou identitu přiřazenou systémem nebo existující spravovanou identitu přiřazenou uživatelem. Naučte se přidávat nebo upravovat spravované identity ve službě API Management.

    Poznámka:

    Identita potřebuje oprávnění k získání a výpisu certifikátu z trezoru klíčů. Pokud jste ještě nenakonfigurovali přístup k trezoru klíčů, služba API Management vás vyzve, aby automaticky nakonfigurovala identitu s potřebnými oprávněními.

  8. Vyberte Přidat.

    Snímek obrazovky s přidáním certifikátu trezoru klíčů do služby API Management na portálu

  9. Zvolte Uložit.

Nahrát certifikát

Nahrání klientského certifikátu do služby API Management:

  1. Na webu Azure Portal přejděte k vaší instanci služby API Management.

  2. V části Zabezpečení vyberte Certifikáty.

  3. Vyberte Certifikáty>+ Přidat.

  4. Do pole ID zadejte název podle vašeho výběru.

  5. V části Certifikát vyberte Vlastní.

  6. Vyhledejte soubor .pfx certifikátu a zadejte jeho heslo.

  7. Vyberte Přidat.

    Snímek obrazovky s nahráním klientského certifikátu do služby API Management na portálu

  8. Zvolte Uložit.

Po nahrání certifikátu se zobrazí v okně Certifikáty . Pokud máte mnoho certifikátů, poznamenejte si kryptografický otisk požadovaného certifikátu, abyste nakonfigurovali rozhraní API tak, aby pro ověřování brány používalo klientský certifikát.

Konfigurace rozhraní API pro použití klientského certifikátu pro ověřování brány

  1. Na webu Azure Portal přejděte k vaší instanci služby API Management.

  2. V části Rozhraní API vyberte rozhraní API.

  3. Ze seznamu vyberte rozhraní API.

  4. Na kartě Návrh vyberte ikonu editoru v části Back-end.

  5. V části Přihlašovací údaje brány vyberte Certifikát klienta a v rozevíracím seznamu vyberte certifikát.

  6. Zvolte Uložit.

    Použití klientského certifikátu pro ověřování brány

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-endovém serveru.

Tip

Když je pro ověřování brány pro back-endovou službu rozhraní API zadaný certifikát, stane se součástí zásad pro toto rozhraní API a dá se zobrazit v editoru zásad.

Zakázání ověřování řetězu certifikátů pro 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 služba API Management komunikuje s back-endovým systémem. Jinak vrátí kód chyby 500. Ke konfiguraci můžete použít rutiny PowerShellu New-AzApiManagementBackend (pro nový back-end) nebo Set-AzApiManagementBackend (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

Ověření řetězu certifikátů můžete také zakázat pomocí rozhraní REST API back-endu.

Odstranění klientského certifikátu

Pokud chcete odstranit certifikát, vyberte ho a pak v místní nabídce (...) vyberte Odstranit.

Odstranění certifikátu

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 nejdřív odebrat certifikát ze všech zásad, které jsou nakonfigurované tak, aby ho používaly.

Další kroky