Sdílet prostřednictvím


Přidání ověřování Microsoft Entra pro volání vlastních rozhraní API z Azure Logic Apps

Pokud chcete zlepšit zabezpečení volání vašich rozhraní API, můžete nastavit ověřování Microsoft Entra prostřednictvím webu Azure Portal, abyste nemuseli aktualizovat kód. Nebo můžete vyžádat a vynutit ověřování prostřednictvím kódu API.

Ověřování můžete přidat následujícími způsoby:

  • Žádné změny kódu: Chraňte své rozhraní API pomocí ID Microsoft Entra prostřednictvím webu Azure Portal, takže nemusíte aktualizovat kód ani znovu nasadit rozhraní API.

    Poznámka:

    Ověřování Microsoft Entra, které vyberete na portálu Azure, ve výchozím nastavení nenabízí jemně odstupňovanou autorizaci. Toto ověřování například uzamkne vaše rozhraní API jenom na konkrétního tenanta, ne na konkrétního uživatele nebo aplikaci.

  • Aktualizujte kód rozhraní API: Chraňte své rozhraní API vynucováním ověřování certifikátu nebo ověřováním Microsoft Entra prostřednictvím kódu.

Ověřování volání do rozhraní API beze změny kódu

Tady jsou obecné kroky pro tuto metodu:

  1. Vytvořte dvě identity aplikací Microsoft Entra (registrace aplikace): jednu pro prostředek aplikace logiky a jednu pro vaši webovou aplikaci (nebo aplikaci API).

  2. K ověření volání rozhraní API použijte přihlašovací údaje (ID klienta a tajný klíč) pro služebního principála přidruženého k identitě aplikace Microsoft Entra pro vaši logickou aplikaci.

  3. Do definice pracovního postupu aplikace logiky zahrňte ID aplikací.

Část 1: Vytvoření identity aplikace Microsoft Entra pro aplikaci logiky

Prostředek vaší aplikace logiky používá tuto identitu aplikace Microsoft Entra k ověření vůči ID Microsoft Entra. Tuto identitu musíte pro svého tenanta nastavit jenom jednou. Můžete například použít stejnou identitu pro všechny aplikace logiky, i když pro každou aplikaci logiky můžete vytvořit jedinečné identity. Tyto identity můžete nastavit na webu Azure Portal nebo použít PowerShell.

  1. Ve vyhledávacím poli webu Azure Portal vyhledejte a vyberte ID Microsoft Entra.

  2. Ověřte, že jste v rámci stejného tenantu jako vaše webová aplikace nebo aplikace API.

    Tip

    Pokud chcete přepnout tenanty, otevřete v záhlaví Azure svůj profil a vyberte Přepnout adresář.

  3. V nabídce prostředků tenanta v části Spravovat vyberte Registrace aplikací.

    Na stránce Registrace aplikací se zobrazí všechny registrace aplikací ve vašem tenantovi. Pokud chcete zobrazit jenom registrace aplikací, vyberte Vlastněné aplikace.

  4. Na panelu nástrojů vyberte Nová registrace.

    Snímek obrazovky s webem Azure Portal s tenantem Microsoft Entra, podoknem Registrace aplikací a vybraným příkazem pro novou registraci

  5. Na stránce Registrace aplikace postupujte takto:

    1. Jako Název zadejte uživatelsky příjemný název pro identitu aplikace logiky.

    2. V části Podporované typy účtů vyberte možnost, která nejlépe popisuje typy účtů, které můžou používat identitu aplikace nebo získat přístup k vašemu rozhraní API.

    3. Pod Identifikátor URI přesměrování vyberte Web jako platformu. Vedle této možnosti zadejte jedinečnou adresu URL, kam má být vrácena odpověď na ověření.

      Snímek obrazovky s podoknem pro registraci aplikace s názvem identity aplikace a adresou URL pro odeslání odpovědi na ověření

    4. Až budete hotovi, vyberte Zaregistrovat.

    Na kartě Vlastněné aplikace se teď zobrazuje vytvořená identita aplikace. Pokud se tato identita nezobrazí, vyberte na panelu nástrojů možnost Aktualizovat.

    Snímek obrazovky znázorňující identitu aplikace pro vaši logickou aplikaci.

  6. V seznamu registrací aplikací vyberte novou identitu aplikace.

  7. V navigační nabídce identit aplikace vyberte Přehled.

  8. Na stránce Přehled zkopírujte a uložte ID aplikace (klienta), které se použije jako ID klienta pro vaši aplikaci logiky v části 3.

    Snímek obrazovky se zvýrazněným ID aplikace (klienta)

  9. V nabídce Identita aplikace v části Spravovat vyberte Certifikáty a tajné kódy.

  10. Na stránce Tajné kódy klienta vyberte Nový tajný klíč klienta.

  11. V podokně Přidat tajný klíč klienta zadejte jako popis název tajného kódu. Pro vypršení platnosti vyberte dobu trvání tajného kódu. Až budete hotovi, vyberte Přidat.

    Tajný klíč, který vytvoříte, funguje jako "tajný kód" nebo heslo identity aplikace logiky.

    Snímek obrazovky znázorňující vytvoření tajného kódu pro identitu aplikace

    Na stránce Certifikáty a tajné kódy se teď na kartě Tajné kódy klienta zobrazí společně s hodnotou tajného kódu a ID tajného kódu.

    Snímek obrazovky znázorňující hodnotu tajného kódu a ID tajného kódu s vybraným tlačítkem Kopírovat pro hodnotu tajného kódu

  12. Zkopírujte hodnotu tajného kódu pro pozdější použití. Při konfiguraci aplikace logiky v části 3 zadáte tuto hodnotu jako "tajný kód" nebo heslo.

Část 2: Vytvoření identity aplikace Microsoft Entra pro webovou aplikaci nebo aplikaci API

Pokud už je vaše webová aplikace nebo aplikace API nasazená, můžete zapnout ověřování a vytvořit identitu aplikace na webu Azure Portal. Jinak můžete zapnout ověřování při nasazování pomocí šablony Azure Resource Manageru.

Vytvoření identity aplikace pro nasazenou webovou aplikaci nebo aplikaci API na webu Azure Portal

  1. Na webu Azure Portal vyhledejte a vyberte webovou aplikaci nebo aplikaci API.

  2. V sekci Nastavení vyberte Ověřování>Přidat zprostředkovatele identity.

  3. Po otevření podokna Přidat zprostředkovatele identity na kartě Základy, v seznamu zprostředkovatelů identity vyberte Microsoft pro použití identit Microsoft Entra, a pak klikněte na Přidat.

  4. Teď vytvořte identitu aplikace pro webovou aplikaci nebo aplikaci API následujícím způsobem:

    1. Jako typ registrace aplikace vyberte Vytvořit novou registraci aplikace.

    2. Jako Název zadejte název vaší identity aplikace.

    3. U podporovaných typů účtů vyberte typy účtů vhodné pro váš scénář.

    4. Chcete-li omezit přístup, vyberte Vyžadovat ověření.

    5. V případě neověřených požadavků vyberte možnost na základě vašeho scénáře.

    6. Až budete hotovi, vyberte Přidat.

    V části Zprostředkovatel identity se teď zobrazí nová identita aplikace pro vaši webovou aplikaci nebo aplikaci API:

    Snímek obrazovky znázorňující nově vytvořenou identitu aplikace pro webovou aplikaci nebo aplikaci API

    Tip

    Pokud se identita aplikace nezobrazí, vyberte na panelu nástrojů možnost Aktualizovat.

Teď musíte najít ID aplikace (klienta) a ID tenanta pro identitu aplikace, kterou jste právě vytvořili pro webovou aplikaci nebo aplikaci API. Tyto ID použijete v části 3. Pokračujte v následujících krocích pro Azure Portal.

Vyhledání ID klienta a ID tenanta identity aplikace pro webovou nebo API aplikaci v Azure Portal

  1. V nabídce webové aplikace v části Spravovat vyberte Ověřování.

  2. V části Zprostředkovatel identity vyhledejte dříve vytvořenou identitu aplikace. Vyberte název identity aplikace.

    Snímek obrazovky znázorňující otevřenou stránku Ověřování pro nově vytvořenou identitu aplikace

  3. Na stránce Přehled vyhledejte hodnoty ID aplikace (klienta) a ID adresáře (tenanta). Zkopírujte a uložte hodnoty pro použití v části 3.

    Snímek obrazovky s otevřenou stránkou Přehled pro identitu aplikace webové aplikace a vybrané hodnoty PRO ID aplikace (klienta) a ID adresáře (tenanta).

    V případě potřeby můžete také použít identifikátor GUID ID tenanta ve webové aplikaci nebo šabloně nasazení aplikace API. Tento identifikátor GUID je GUID vašeho konkrétního tenanta ("ID tenanta") a měl by se zobrazit v této adrese URL: https://sts.windows.net/<tenant-GUID>

Nastavení ověřování při nasazení pomocí šablony Azure Resource Manageru

Pokud používáte šablonu Azure Resource Manageru (šablonu ARM), musíte pro svou webovou aplikaci nebo aplikaci API vytvořit identitu aplikace Microsoft Entra, která se liší od identity aplikace logiky. Pokud chcete vytvořit identitu aplikace a pak najít ID klienta a ID tenanta, postupujte podle předchozích kroků v části 2 pro Azure Portal. V šabloně nasazení aplikace a také pro část 3 použijete ID klienta i ID tenanta.

Důležité

Když pro webovou aplikaci nebo aplikaci API vytvoříte identitu aplikace Microsoft Entra, musíte použít Azure Portal, nikoli PowerShell. Rutina PowerShellu nenastavuje požadovaná oprávnění pro přihlášení uživatelů k webu.

Po získání ID klienta a ID tenanta zahrňte tato ID jako podsourc vaší webové aplikace nebo aplikace API do šablony nasazení:

"resources": [
   {
      "apiVersion": "2015-08-01",
      "name": "web",
      "type": "config",
      "dependsOn": ["[concat('Microsoft.Web/sites/','parameters('webAppName'))]"],
      "properties": {
         "siteAuthEnabled": true,
         "siteAuthSettings": {
            "clientId": "<client-ID>",
            "issuer": "https://sts.windows.net/<tenant-ID>/"
         }
      }
   }
]

Pokud chcete automaticky nasadit prázdnou webovou aplikaci a aplikaci logiky společně s ověřováním Microsoft Entra, zobrazte úplnou šablonu tady nebo vyberte následující tlačítko Nasadit do Azure :

Nasazení do Azure

Část 3: Naplnění části Autorizace v aplikaci logiky

Předchozí šablona už má tuto autorizační část nastavenou, ale pokud přímo vytváříte definici aplikace logiky, musíte zahrnout celý oddíl autorizace.

  1. Otevřete definici aplikace logiky v zobrazení kódu.

  2. Přejděte k definici akce HTTP , vyhledejte oddíl Autorizace a uveďte následující vlastnosti:

{
   "tenant": "<tenant-ID>",
   "audience": "<client-ID-from-Part-2-web-app-or-API app>",
   "clientId": "<client-ID-from-Part-1-logic-app>",
   "secret": "<secret-from-Part-1-logic-app>",
   "type": "ActiveDirectoryOAuth"
}
Vlastnost Požadováno Popis
tenant Ano Identifikátor GUID pro tenanta Microsoft Entra.
audience Ano Identifikátor GUID cílového prostředku, ke kterému chcete získat přístup, což je ID klienta v rámci identity aplikace pro vaši webovou aplikaci nebo API aplikaci.
clientId Ano Identifikátor GUID klienta, který požaduje přístup, což je ID klienta z identity aplikace ve vaší logické aplikaci.
secret Ano Tajný klíč nebo heslo z identity aplikace pro klienta, který požaduje přístupový token.
type Ano Typ ověřování. Pro ověřování ActiveDirectoryOAuth je hodnota ActiveDirectoryOAuth.

Příklad:

{
   "actions": {
      "HTTP": {
         "inputs": {
            "method": "POST",
            "uri": "https://your-api-azurewebsites.net/api/your-method",
            "authentication": {
               "tenant": "tenant-ID",
               "audience": "client-ID-from-azure-ad-app-for-web-app-or-api-app",
               "clientId": "client-ID-from-azure-ad-app-for-logic-app",
               "secret": "key-from-azure-ad-app-for-logic-app",
               "type": "ActiveDirectoryOAuth"
            }
         }
      }
   }
}

Zabezpečená volání rozhraní API prostřednictvím kódu

Ověření certifikátu

Pokud chcete ověřit příchozí požadavky z pracovního postupu aplikace logiky do webové aplikace nebo aplikace API, můžete použít klientské certifikáty. Pokud chcete nastavit kód, zjistěte , jak nakonfigurovat vzájemné ověřování TLS.

Důležité

Vždy zabezpečte a chraňte citlivá a osobní data, jako jsou přihlašovací údaje, tajné kódy, přístupové klíče, připojovací řetězce, certifikáty, kryptografické otisky a podobné informace s nejvyšší dostupnou nebo podporovanou úrovní zabezpečení.

Ujistěte se, že tyto informace bezpečně ukládáte pomocí ID Microsoft Entra a služby Azure Key Vault. Nezakódujte tyto informace, sdílejte s ostatními uživateli ani neukládejte v prostém textu, kam mají ostatní přístup. Nastavte plán pro obměna nebo odvolání tajných kódů v případě ohrožení zabezpečení. Další informace najdete v následujících zdrojích informací:

V části Autorizace uveďte následující vlastnosti:

{
   "type": "ClientCertificate",
   "password": "<password>",
   "pfx": "<long-pfx-key>"
}
Vlastnost Požadováno Popis
type Ano Typ ověřování. V případě klientských certifikátů TLS/SSL musí být hodnota ClientCertificate.
password Ne Heslo pro přístup k klientskému certifikátu (soubor PFX).
pfx Ano Obsah klientského certifikátu s kódováním base64 (soubor PFX).

Základní ověřování

Pokud chcete ověřit příchozí požadavky z vaší aplikace logiky do webové aplikace nebo aplikace API, můžete použít základní ověřování, jako je uživatelské jméno a heslo. I když je základní ověřování běžným vzorem a toto ověřování můžete použít v jakémkoli jazyce používaném k vytvoření webové aplikace nebo aplikace API, vždy používejte nejlepší dostupnou nebo podporovanou úroveň ověřování.

Výstraha

Microsoft radí proti používání následujících toků k ověřování a autorizaci:

  • Přihlašovací údaje vlastníka zdroje (ROPC) pro OAuth 2.0

    Tento tok umožňuje přihlásit se k aplikaci pomocí hesla. Tok není kompatibilní s vícefaktorovým ověřováním (MFA), vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která v jiných tocích neexistují. Tento tok použijte jenom v případě, že nejsou podporované nebo dostupné jiné bezpečnější toky.

    Další informace najdete v tématu Přihlašovací údaje vlastníka prostředku Oauth 2.0.

  • Implicitní tok udělení pro OAuth 2.0

    Tento tok založený na tokenech je určený pro tradiční webové aplikace, kde má server bezpečnější kontrolu nad zpracováním POST dat a často se používá s tokem autorizačního kódu. Vzhledem k tomu, jak tento tok zpracovává a vrací tokeny ID nebo přístupové tokeny, tok vyžaduje velmi vysoký stupeň důvěryhodnosti v aplikaci a nese rizika, která v jiných tocích neexistují. Tento tok použijte jenom v případě, že nejsou podporované nebo dostupné jiné bezpečnější toky.

    Další informace najdete v tématu OAuth 2.0 implicitní tok oprávnění.

V části Autorizace uveďte následující vlastnosti:

{
   "type": "Basic",
   "username": "<username>",
   "password": "<password>"
}
Vlastnost Požadováno Popis
type Ano Typ ověřování, který chcete použít. Pro základní ověřování musí být hodnota **Basic**.
username Ano Uživatelské jméno, které chcete použít k ověřování.
password Ano Heslo, které chcete použít k ověřování.

Ověřování Microsoft Entra prostřednictvím kódu

Ve výchozím nastavení ověřování Microsoft Entra, které zapnete na webu Azure Portal, neposkytuje jemně odstupňovanou autorizaci. Toto ověřování například uzamkne vaše rozhraní API jenom na konkrétního tenanta, ne na konkrétního uživatele nebo aplikaci.

Pokud chcete omezit přístup rozhraní API k aplikaci logiky prostřednictvím kódu, extrahujte hlavičku s webovým tokenem JSON (JWT). Zkontrolujte identitu volajícího a odmítněte žádosti, které se neshodují.

Další kroky