Sdílet prostřednictvím


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. Tento článek ukazuje, jak spravovat certifikáty ve službě 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ů, které slouží k zabezpečení přístupu k back-endovým službám:

  • Odkaz na certifikát spravovaný ve službě Azure Key Vault
  • Přidejte soubor certifikátu přímo ve službě API Management.

Poznámka:

V současné době není integrace s trezorem klíčů pro tento scénář dostupná v pracovních prostorech.

Doporučujeme používat certifikáty trezoru klíčů, protože tím se zlepšuje 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 čtyř hodin. Certifikát můžete také aktualizovat 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.

  • Nakonfigurujte ověřování certifikátu klienta back-endové služby. Informace o konfiguraci ověřování certifikátů ve službě Azure App Service najdete v tématu Konfigurace vzájemného ověřování TLS ve službě App Service.

  • Ujistěte se, že máte přístup k certifikátu a heslu pro správu v trezoru klíčů Azure nebo certifikát pro nahrání 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 nebo jiný vlastní certifikát certifikační autority a vaše instance služby API Management je v některé z klasických úrovní, nainstalujte odpovídající certifikáty kořenové a zprostředkující certifikační autority ve službě API Management, abyste umožnili ověření certifikátu back-endové služby. Další informace najdete v tématu Přidání vlastního certifikátu certifikační autority ve službě Azure API Management.

    Pokud certifikáty certifikační autority nenainstalujete, služba API Management nemůže certifikát back-endové služby ověřit a požadavky na back-endovou službu selžou, pokud nezakážete ověřování řetězu certifikátů. Viz Zakázání ověřování řetězu certifikátů pro certifikáty podepsané svým držitelem dále v tomto článku.

    Důležité

    Pokud je vaše instance služby API Management v jedné z úrovní v2, můžete v přihlašovacích údajích pro autorizaci back-endu nakonfigurovat jenom podrobnosti o certifikátech certifikační autority. Další informace najdete v doprovodných materiálech k back-endům.

    Poznámka:

    Certifikáty certifikační autority pro ověřování certifikátů se v úrovni spotřeby nepodporují.

Požadavky na integraci trezoru klíčů

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

  2. Povolte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem ve službě API Management.

Konfigurace přístupu k trezoru klíčů

  1. Na portálu přejděte do trezoru klíčů.
  2. V nabídce vlevo vyberte Nastavení>konfigurace přístupu. Všimněte si nakonfigurovaného modelu 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.

Chcete-li přidat zásadu přístupu k 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 sekci Oprávnění pro tajné vyberte Získat a Vypsat a pak vyberte Další.
  4. Na kartě Hlavní vyhledejte název prostředku vaší spravované identity a poté vyberte Další. Pokud používáte systémem přiřazenou identitu, identifikátor je název vaší instance služby API Management.
  5. Znovu vyberte Další . Na kartě Revize a vytvoření vyberte Vytvořit.

Pokud chcete vytvořit certifikát v trezoru klíčů 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.

Požadavky pro firewall služby Key Vault

Pokud je ve vašem klíčovém trezoru povolená brána firewall služby Key Vault, je potřeba splňovat následující 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 Key Vault povolte možnost Povolit důvěryhodným službám Microsoftu obejít tuto bránu firewall.

  • 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 API Management ve virtuální síti.

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

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

Důležité

Pokud chcete do instance služby API Management přidat certifikát trezoru klíčů, 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, která se používá pro přístup k trezoru klíčů, neodstraňujte.

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

  1. Na webu Azure Portal přejděte do vaší instance 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.

  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 identitu přiřazenou systémem nebo existující spravovanou identitu přiřazenou uživatelem. Další informace najdete v tématu Použití spravovaných identit ve službě Azure API Management.

    Poznámka:

    Identita musí mít oprávnění k získání a zobrazení certifikátů z úložiště 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, který ukazuje, jak přidat certifikát 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 do vaší instance 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.

  5. V Certifikátu 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 certifikátu, který jste právě nahráli. Budete ho potřebovat ke konfiguraci 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 do vaší instance 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 tužky v části Back-end .

  5. V části Přihlašovací údaje brány vyberte Klientský certifikát a pak v seznamu klientských certifikátů 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 účinná okamžitě. Volání na operace API použije certifikát k ověření na backendovém serveru.

Návod

Pokud 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 a vaše instance služby API Management je v některé z klasických úrovní, musíte zakázat ověřování řetězu certifikátů, aby služba API Management mohla komunikovat s back-endovým systémem. V opačném případě se zobrazí kód chyby 500. Pokud chcete toto ověřování zakázat, 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 -ResourceGroupName '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

Certifikát odstraníte tak, že v nabídce se třemi tečkou (...) vyberete 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 ho nejdřív odebrat ze všech zásad, které jsou nakonfigurované tak, aby ho používaly.