Konfigurace správce přihlašovacích údajů – uživatelem delegovaný přístup k back-endovému rozhraní API

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

Tento článek vás provede postupem vysoké úrovně konfigurace a používání spravovaného připojení , které uděluje uživatelům nebo skupinám Microsoftu delegovaná oprávnění k back-endovému rozhraní API OAuth 2.0. V případě scénářů, kdy klientská aplikace (nebo robot) potřebuje přístup k back-endovým online prostředkům zabezpečeným jménem ověřeného uživatele (například kontrola e-mailů nebo zadání objednávky), postupujte podle těchto kroků.

Přehled scénáře

Poznámka:

Tento scénář platí jenom pro zprostředkovatele přihlašovacích údajů nakonfigurované s typem udělení autorizačního kódu .

V tomto scénáři nakonfigurujete spravované připojení , které klientské aplikaci (nebo robotovi) umožní přístup k back-endovému rozhraní API jménem uživatele nebo skupiny Microsoft Entra. Můžete mít například statickou webovou aplikaci, která přistupuje k back-endovému rozhraní GITHub API a ke které chcete získat přístup k datům specifickým pro přihlášeného uživatele. Následující diagram znázorňuje scénář.

Diagram znázorňující tok procesu pro uživatelsky delegovaná oprávnění

  • Uživatel musí aplikaci autorizovat pro přístup k zabezpečeným prostředkům svým jménem a k autorizaci aplikace musí uživatel ověřit svou identitu.
  • Aby aplikace prováděla operace jménem uživatele, volá externí back-endovou službu, jako je Microsoft Graph nebo GitHub.
  • Každá externí služba má způsob zabezpečení těchto volání – například pomocí tokenu uživatele, který uživatele jednoznačně identifikuje.
  • Aby bylo možné zabezpečit volání externí služby, musí aplikace požádat uživatele, aby se přihlásil, aby mohl získat token uživatele.
  • V rámci konfigurace je zprostředkovatel přihlašovacích údajů zaregistrovaný pomocí správce přihlašovacích údajů v instanci služby API Management. Obsahuje informace o zprostředkovateli identity, který se má použít, spolu s platným ID klienta OAuth a tajným kódem, obory OAuth pro povolení a další metadata připojení vyžadovaná tímto zprostředkovatelem identity.
  • Vytvoří se také připojení, které slouží k usnadnění přihlášení uživatele a získání tokenu uživatele, aby bylo možné ho spravovat.

Požadavky

  • Přístup k tenantovi Microsoft Entra, kde máte oprávnění k vytvoření registrace aplikace a udělení souhlasu správce pro oprávnění aplikace. Další informace

    Pokud chcete vytvořit vlastního tenanta pro vývojáře, můžete se zaregistrovat do programu Microsoft 365 Developer Program.

  • Oprávnění delegovat jednomu nebo více uživatelům nebo skupinám v tenantovi

  • Spuštěná instance služby API Management. Pokud potřebujete, vytvořte instanci služby Azure API Management.

  • Rozhraní API OAuth 2.0 back-endu, ke kterému chcete přistupovat jménem uživatele nebo skupiny.

Krok 1: Zřízení instančního objektu roviny dat služby Azure API Management

Abyste uživatelům nebo skupinám udělili potřebná delegovaná oprávnění, musíte zřídit instanční objekt roviny dat služby Azure API Management. Pomocí následujících kroků zřiďte instanční objekt pomocí Azure PowerShellu.

  1. Přihlaste se k Azure PowerShellu.

  2. Pokud modul AzureAD ještě není nainstalovaný, nainstalujte ho pomocí následujícího příkazu:

    Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -Force
    
  3. Připojení do tenanta pomocí následujícího příkazu:

    Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"
    
  4. Pokud se zobrazí výzva, přihlaste se pomocí přihlašovacích údajů účtu správce vašeho tenanta.

  5. Pomocí následujícího příkazu zřiďte instanční objekt roviny dat služby Azure API Management:

    New-AzureADServicePrincipal -AppId c8623e40-e6ab-4d2b-b123-2ca193542c65 -DisplayName "Azure API Management Data Plane"
    

Krok 2: Vytvoření registrace aplikace Microsoft Entra

Vytvořte aplikaci Microsoft Entra ID pro delegování uživatele a udělte jí příslušná oprávnění ke čtení připojení ve službě API Management.

  1. Přihlaste se k webu Azure Portal pomocí účtu s dostatečnými oprávněními v tenantovi.
  2. V části Služby Azure vyhledejte ID Microsoft Entra.
  3. V nabídce vlevo vyberte Registrace aplikací a pak vyberte + Nová registrace.
  4. Na stránce Registrace aplikace zadejte nastavení registrace aplikace:
    1. Do pole Název zadejte smysluplný název, který se zobrazí uživatelům aplikace, například UserPermissions.
    2. V části Podporované typy účtů vyberte možnost, která vyhovuje vašemu scénáři, například Účty v tomto organizačním adresáři (jenom jeden tenant).
    3. Nastavte identifikátor URI přesměrování na web a zadejte https://www.postman-echo.com/get.
  5. V nabídce vlevo vyberte oprávnění rozhraní API a pak vyberte + Přidat oprávnění.
    1. Vyberte rozhraní API, která moje organizace používá, zadejte kartu Rovina dat služby Azure API Management a vyberte ji.
    2. V části Oprávnění vyberte Authorizations.Read a pak vyberte Přidat oprávnění.
  6. V nabídce vlevo vyberte Přehled. Na stránce Přehled najděte hodnotu ID aplikace (klienta) a poznamenejte si ji pro použití v pozdějším kroku.
  7. V nabídce vlevo vyberte Certifikáty a tajné kódy a pak vyberte + Nový tajný klíč klienta.
    1. Zadejte popis.
    2. Vyberte možnost Vypršení platnosti.
    3. Vyberte Přidat.
    4. Před opuštěním stránky zkopírujte hodnotu tajného klíče klienta. Budete je potřebovat později.

Krok 3: Konfigurace zprostředkovatele přihlašovacích údajů ve službě API Management

  1. Přihlaste se k portálu a přejděte do instance služby API Management.
  2. V nabídce vlevo vyberte Správce přihlašovacích údajů a pak vyberte + Vytvořit.
    Snímek obrazovky s vytvářením přihlašovacích údajů rozhraní API na portálu
  3. Na stránce Vytvořit zprostředkovatele přihlašovacích údajů zadejte nastavení pro zprostředkovatele přihlašovacích údajů pro vaše rozhraní API. V tomto scénáři musíte v typu Udělení vybrat autorizační kód. Další informace najdete v tématu Konfigurace zprostředkovatelů přihlašovacích údajů ve Správci přihlašovacích údajů.
  4. Vyberte Vytvořit.
  5. Po zobrazení výzvy zkontrolujte adresu URL přesměrování OAuth, která se zobrazí, a výběrem možnosti Ano potvrďte, že odpovídá adrese URL, kterou jste zadali v registraci aplikace.

Krok 4: Konfigurace připojení

Po vytvoření zprostředkovatele přihlašovacích údajů můžete přidat připojení k zprostředkovateli. Na kartě Připojení ion proveďte kroky pro připojení:

  1. Zadejte název Připojení ion a pak vyberte Uložit.
  2. V části Krok 2: Přihlaste se ke svému připojení, vyberte odkaz pro přihlášení k poskytovateli přihlašovacích údajů. Proveďte tam kroky pro autorizaci přístupu a vraťte se do služby API Management.
  3. V kroku 3: Určete, kdo bude mít přístup k tomuto připojení (zásady přístupu) a vyberte + Přidat. V závislosti na scénáři delegování vyberte Uživatelé nebo skupina.
  4. V okně Vybrat položku proveďte výběry v následujícím pořadí:
    1. Nejprve vyhledejte jednoho nebo více uživatelů (nebo skupin), které chcete přidat a zaškrtnout políčko výběru.
    2. Potom v zobrazeném seznamu vyhledejte registraci aplikace, kterou jste vytvořili v předchozí části.
    3. Pak klikněte na Vybrat.
  5. Zvolte Dokončit.

Nové připojení se zobrazí v seznamu připojení a zobrazuje stav Připojení. Pokud chcete pro zprostředkovatele přihlašovacích údajů vytvořit další připojení, proveďte předchozí kroky.

Tip

Pomocí portálu můžete kdykoli přidat, aktualizovat nebo odstranit připojení k poskytovateli přihlašovacích údajů. Další informace najdete v tématu Konfigurace více připojení.

Krok 5: Získání přístupového tokenu Microsoft Entra ID

Pokud chcete povolit uživatelem delegovaný přístup k back-endovému rozhraní API, musí být v zásadách k dispozici přístupový token delegovaného uživatele nebo skupiny za get-authorization-context běhu. Obvykle se to provádí programově v klientské aplikaci pomocí knihovny Microsoft Authentication Library (MSAL). Tato část obsahuje ruční kroky k vytvoření přístupového tokenu pro testování.

  1. Do prohlížeče vložte následující adresu URL a nahraďte je hodnotami <tenant-id><client-id> z registrace aplikace Microsoft Entra:

    https://login.microsoftonline.com/<tenant-id>/oauth2/authorize?client_id=<client-id>&response_type=code&redirect_uri=https://www.postman-echo.com/get&response_mode=query&resource=https://azure-api.net/authorization-manager&state=1234`
    
  2. Po zobrazení výzvy se přihlaste. V textu odpovědi zkopírujte hodnotu zadaného kódu (příklad: "0.AXYAh2yl…").

  3. Odešlete následující POST požadavek do koncového bodu tokenu, kde nahradíte <tenant-id> ID vašeho tenanta, včetně označené hlavičky a parametrů textu z registrace aplikace a kódu, který jste zkopírovali v předchozím kroku.

    POST https://login.microsoftonline.com/<tenant-id>/oauth2/token HTTP/1.1
    

    Záhlaví

    Content-Type: application/x-www-form-urlencoded

    Text

    grant_type: "authorization_code"
    client_id: <client-id>
    client_secret: <client-secret>
    redirect_uri: <redirect-url> 
    code: <code>   ## The code you copied in the previous step
    
  4. V textu odpovědi zkopírujte hodnotu access_token , která je zadaná (například: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjZqQmZ1...). Tuto hodnotu předáte v konfiguraci zásad v dalším kroku.

Krok 6: Konfigurace zásad kontextu get-authorization pro back-endové rozhraní API

Nakonfigurujte zásady kontextu get-authorization pro back-endové rozhraní API, ke kterému chcete přistupovat jménem uživatele nebo skupiny. Pro účely testování můžete zásadu nakonfigurovat pomocí přístupového tokenu Microsoft Entra ID pro uživatele, kterého jste získali v předchozí části.

  1. Přihlaste se k portálu a přejděte do instance služby API Management.

  2. V nabídce vlevo vyberte rozhraní API a pak vyberte back-endové rozhraní API OAuth 2.0.

  3. Vyberte Všechny operace. V části Zpracování příchozích dat vyberte ikonu (</>) (editor kódu).

  4. Nakonfigurujte zásadu get-authorization-context v oddílu inbound a nastavte identity-type na jwt:

    <policies>
        <inbound>
            [...]
            <get-authorization-context provider-id="<credential-provider-id>" authorization-id="<connection-id>" context-variable-name="auth-context" identity-type="jwt" identity="<access-token>" ignore-error="false" />
            [...]
        </inbound> 
    </policies>
    

V předchozí definici zásady nahraďte:

  • <credential-provider-id> a <connection-id> s názvy zprostředkovatele přihlašovacích údajů a připojení, v uvedeném pořadí, které jste nakonfigurovali v předchozím kroku.

  • <access-token> s přístupovým tokenem Microsoft Entra ID, který jste vygenerovali v předchozím kroku.

Krok 7: Testování rozhraní API

  1. Na kartě Test vyberte jednu operaci, kterou jste nakonfigurovali.

  2. Vyberte Odeslat.

    Úspěšná odpověď vrátí uživatelská data z back-endového rozhraní API.