Sdílet prostřednictvím


Přidání ověřování při 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:

    Ve výchozím nastavení ověřování Microsoft Entra, které vyberete 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.

  • Aktualizujte kód rozhraní API: Chraňte své rozhraní API vynucením ověřování certifikátu, základního ověřování nebo ověřování 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: 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 instanční objekt přidružený k identitě aplikace Microsoft Entra pro vaši aplikaci logiky.

  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ůj adresář 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. Na webu Azure Portal vyberte ID Microsoft Entra.

  2. Ověřte, že jste ve stejném adresáři jako webová aplikace nebo aplikace API.

    Tip

    Pokud chcete přepnout adresáře, zvolte svůj profil a vyberte jiný adresář. Nebo vyberte adresář Přehled>přepínače.

  3. V nabídce adresáře v části Spravovat vyberte Registrace aplikací> Nová registrace.

    V seznamu Všechny registrace se zobrazí všechny registrace aplikací ve vašem adresáři. Pokud chcete zobrazit jenom registrace aplikací, vyberte Vlastněné aplikace.

    Snímek obrazovky webu Azure Portal s vybranou instancí Microsoft Entra, podoknem Registrace aplikace a Vybranou možností Registrace nové aplikace

  4. Zadejte uživatelsky orientovaný název pro identitu aplikace logiky. Vyberte podporované typy účtů. U identifikátoru URI pro přesměrování vyberte web, zadejte jedinečnou adresu URL, kde se má vrátit odpověď na ověření, a vyberte Zaregistrovat.

    Snímek obrazovky znázorňující podokno Registrace aplikace s názvem identity aplikace a adresou URL pro odeslání odpovědi na ověření

    Seznam vlastněných aplikací teď obsahuje vytvořenou identitu aplikace. Pokud se tato identita nezobrazí, vyberte na panelu nástrojů možnost Aktualizovat.

    Snímek obrazovky znázorňující identitu aplikace logiky

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

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

  7. V podokně Přehled zkopírujte a uložte ID aplikace, které se použije jako ID klienta pro vaši aplikaci logiky v části 3.

    Snímek obrazovky s podtrženou ID aplikace (klienta)

  8. V navigační nabídce identit aplikace vyberte Certifikáty a tajné kódy.

  9. Na kartě Tajné kódy klienta vyberte Nový tajný klíč klienta.

  10. Jako popis zadejte název tajného kódu. V části Konec platnosti vyberte dobu trvání tajného klíče. 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

    V podokně Certifikáty a tajné kódy se teď v části Tajné kódy klienta zobrazí společně s hodnotou tajného kódu a ID tajného kódu.

    Snímek obrazovky zobrazují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

  11. 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 části Nastavení vyberte zprostředkovatele identity Přidat ověřování>.

  3. Po otevření podokna Přidat zprostředkovatele identity na kartě Základy v seznamu zprostředkovatele identity vyberte Microsoft, aby používal identity Microsoft Entra, a pak vyberte 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.

    Identita aplikace, kterou jste právě vytvořili pro webovou aplikaci nebo aplikaci API, se teď zobrazí v části Zprostředkovatel identity:

    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 aplikaci nebo aplikaci API na webu Azure Portal

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

  2. V části Zprostředkovatel identity vyhledejte identitu aplikace, kterou jste vytvořili dříve. Vyberte název vaší identity aplikace.

    Snímek obrazovky znázorňující nově vytvořenou identitu aplikace s otevřeným podoknem Přehled

  3. Po otevření podokna Přehled identity aplikace 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 znázorňující otevřené podokno Přehled identity aplikace s hodnotou ID aplikace (klienta) a podtrženou hodnotou 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/{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 z identity aplikace pro vaši webovou aplikaci nebo aplikaci API.
clientId Ano IDENTIFIKÁTOR GUID pro klienta požadující přístup, což je ID klienta z identity aplikace pro vaši aplikaci logiky.
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 ActiveDirectoryOAuthhodnota .

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.

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 ClientCertificatehodnota .
password No 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. Základní ověřování je běžný vzor a toto ověřování můžete použít v libovolném jazyce použitém k vytvoření webové aplikace nebo aplikace API.

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 Basichodnota .
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