Udostępnij za pośrednictwem


Konfigurowanie menedżera poświadczeń — dostęp delegowany przez użytkownika do interfejsu API zaplecza

DOTYCZY: Wszystkie warstwy usługi API Management

Ten artykuł przeprowadzi Cię przez ogólne kroki konfigurowania i używania połączenia zarządzanego, które przyznaje użytkownikom lub grupom firmy Microsoft delegowane uprawnienia do interfejsu API OAuth 2.0 zaplecza. Wykonaj następujące kroki w przypadku scenariuszy, w których aplikacja kliencka (lub bot) musi uzyskać dostęp do zabezpieczonych zasobów online zaplecza w imieniu uwierzytelnionego użytkownika (na przykład sprawdzania wiadomości e-mail lub składania zamówienia).

Omówienie scenariusza

Uwaga

Ten scenariusz dotyczy tylko dostawców poświadczeń skonfigurowanych z typem udzielania kodu autoryzacji.

W tym scenariuszu skonfigurujesz połączenie zarządzane, które umożliwia aplikacji klienckiej (lub botowi) dostęp do interfejsu API zaplecza w imieniu użytkownika lub grupy firmy Microsoft Entra. Na przykład możesz mieć statyczną aplikację internetową, która uzyskuje dostęp do interfejsu API usługi GitHub zaplecza i która ma uzyskiwać dostęp do danych specyficznych dla zalogowanego użytkownika. Na poniższym diagramie przedstawiono scenariusz.

Diagram przedstawiający przepływ procesów dla uprawnień delegowanych przez użytkownika.

  • Użytkownik musi autoryzować aplikację do uzyskiwania dostępu do zabezpieczonych zasobów w ich imieniu oraz autoryzować aplikację, użytkownik musi uwierzytelnić swoją tożsamość
  • Aby wykonywać operacje w imieniu użytkownika, aplikacja wywołuje zewnętrzną usługę zaplecza, taką jak Microsoft Graph lub GitHub
  • Każda usługa zewnętrzna ma sposób zabezpieczania tych wywołań — na przykład przy użyciu tokenu użytkownika, który jednoznacznie identyfikuje użytkownika
  • Aby zabezpieczyć wywołanie usługi zewnętrznej, aplikacja musi poprosić użytkownika o zalogowanie się, aby mógł uzyskać token użytkownika
  • W ramach konfiguracji dostawca poświadczeń jest rejestrowany przy użyciu menedżera poświadczeń w wystąpieniu usługi API Management. Zawiera informacje o dostawcy tożsamości do użycia wraz z prawidłowym identyfikatorem klienta OAuth i wpisem tajnym, zakresami protokołu OAuth umożliwiającymi włączenie i innymi metadanymi połączenia wymaganymi przez tego dostawcę tożsamości.
  • Ponadto jest tworzone połączenie i używane do logowania użytkownika i uzyskiwania tokenu użytkownika, aby można było nim zarządzać

Wymagania wstępne

  • Dostęp do dzierżawy firmy Microsoft Entra, w której masz uprawnienia do tworzenia rejestracji aplikacji i udzielania zgody administratora na uprawnienia aplikacji. Dowiedz się więcej

    Jeśli chcesz utworzyć własną dzierżawę deweloperów, możesz zarejestrować się w programie deweloperów platformy Microsoft 365.

  • Co najmniej jeden użytkownik lub grupy w dzierżawie do delegowania uprawnień.

  • Uruchomione wystąpienie usługi API Management. Jeśli chcesz, utwórz wystąpienie usługi Azure API Management.

  • Interfejs API OAuth 2.0 zaplecza, do którego chcesz uzyskać dostęp w imieniu użytkownika lub grupy.

Krok 1. Aprowizuj jednostkę usługi Płaszczyzna danych usługi Azure API Management

Aby przyznać użytkownikom lub grupom niezbędne uprawnienia delegowane, należy aprowizować jednostkę usługi Płaszczyzna danych usługi Azure API Management. Wykonaj poniższe kroki, aby aprowizować jednostkę usługi przy użyciu programu Azure PowerShell.

  1. Zaloguj się do programu Azure PowerShell.

  2. Jeśli moduł AzureAD nie został jeszcze zainstalowany, zainstaluj go za pomocą następującego polecenia:

    Install-Module -Name AzureAD -Scope CurrentUser -Repository PSGallery -Force
    
  3. Połączenie do dzierżawy za pomocą następującego polecenia:

    Connect-AzureAD -TenantId "<YOUR_TENANT_ID>"
    
  4. Jeśli zostanie wyświetlony monit, zaloguj się przy użyciu poświadczeń konta administratora dzierżawy.

  5. Aprowizuj jednostkę usługi Płaszczyzna danych usługi Azure API Management za pomocą następującego polecenia:

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

Krok 2. Tworzenie rejestracji aplikacji Firmy Microsoft Entra

Utwórz aplikację Microsoft Entra ID na potrzeby delegowania użytkowników i nadaj jej odpowiednie uprawnienia do odczytu połączenia w usłudze API Management.

  1. Zaloguj się do witryny Azure Portal przy użyciu konta z wystarczającymi uprawnieniami w dzierżawie.
  2. W obszarze Usługi platformy Azure wyszukaj ciąg Microsoft Entra ID.
  3. W menu po lewej stronie wybierz pozycję Rejestracje aplikacji, a następnie wybierz pozycję + Nowa rejestracja.
  4. Na stronie Rejestrowanie aplikacji wprowadź ustawienia rejestracji aplikacji:
    1. W polu Nazwa wprowadź zrozumiałą nazwę, która będzie wyświetlana użytkownikom aplikacji, na przykład UserPermissions.
    2. W obszarze Obsługiwane typy kont wybierz opcję, która odpowiada Twojemu scenariuszowi, na przykład Konta w tym katalogu organizacyjnym (tylko jedna dzierżawa).
    3. Ustaw identyfikator URI przekierowania na Sieć Web, a następnie wprowadź wartość https://www.postman-echo.com/get.
  5. W menu po lewej stronie wybierz pozycję Uprawnienia interfejsu API, a następnie wybierz pozycję + Dodaj uprawnienie.
    1. Wybierz kartę Interfejsy API używane przez moją organizację, wpisz Płaszczyznę danych usługi Azure API Management i wybierz ją.
    2. W obszarze Uprawnienia wybierz pozycję Authorizations.Read, a następnie wybierz pozycję Dodaj uprawnienia.
  6. W menu po lewej stronie wybierz pozycję Przegląd. Na stronie Przegląd znajdź wartość Identyfikator aplikacji (klienta) i zapisz ją do użycia w późniejszym kroku.
  7. W menu po lewej stronie wybierz pozycję Certyfikaty i wpisy tajne, a następnie wybierz pozycję + Nowy klucz tajny klienta.
    1. Wprowadź opis.
    2. Wybierz opcję Wygasa.
    3. Wybierz Dodaj.
    4. Skopiuj wartość wpisu tajnego klienta przed opuszczeniem strony. Będą one potrzebne w kolejnym kroku.

Krok 3. Konfigurowanie dostawcy poświadczeń w usłudze API Management

  1. Zaloguj się do portalu i przejdź do wystąpienia usługi API Management.
  2. W menu po lewej stronie wybierz pozycję Menedżer poświadczeń, a następnie wybierz pozycję + Utwórz.
    Zrzut ekranu przedstawiający tworzenie poświadczeń interfejsu API w portalu.
  3. Na stronie Tworzenie dostawcy poświadczeń wprowadź ustawienia dostawcy poświadczeń dla interfejsu API. W tym scenariuszu w obszarze Typ udzielania należy wybrać pozycję Kod autoryzacji. Aby uzyskać więcej informacji, zobacz Konfigurowanie dostawców poświadczeń w menedżerze poświadczeń.
  4. Wybierz pozycję Utwórz.
  5. Po wyświetleniu monitu przejrzyj wyświetlany adres URL przekierowania OAuth i wybierz pozycję Tak , aby potwierdzić, że jest on zgodny z adresem URL wprowadzonym w rejestracji aplikacji.

Krok 4. Konfigurowanie połączenia

Po utworzeniu dostawcy poświadczeń można dodać połączenie z dostawcą. Na karcie Połączenie ion wykonaj kroki dotyczące połączenia:

  1. Wprowadź nazwę Połączenie ion, a następnie wybierz pozycję Zapisz.
  2. W obszarze Krok 2. Zaloguj się do połączenia, wybierz link, aby zalogować się do dostawcy poświadczeń. Wykonaj kroki, aby autoryzować dostęp i wrócić do usługi API Management.
  3. W obszarze Krok 3. Określ, kto będzie miał dostęp do tego połączenia (zasady dostępu), wybierz pozycję + Dodaj. W zależności od scenariusza delegowania wybierz pozycję Użytkownicy lub Grupa.
  4. W oknie Wybieranie elementu wybierz opcje w następującej kolejności:
    1. Najpierw wyszukaj co najmniej jednego użytkownika (lub grupy), aby dodać i zaznaczyć pole wyboru.
    2. Następnie na wyświetlonej liście wyszukaj rejestrację aplikacji utworzoną w poprzedniej sekcji.
    3. Następnie kliknij pozycję Wybierz.
  5. Wybierz pozycję Ukończono.

Nowe połączenie zostanie wyświetlone na liście połączeń i zostanie wyświetlony stan Połączenie. Jeśli chcesz utworzyć inne połączenie dla dostawcy poświadczeń, wykonaj powyższe kroki.

Napiwek

Użyj portalu, aby w dowolnym momencie dodawać, aktualizować lub usuwać połączenia z dostawcą poświadczeń. Aby uzyskać więcej informacji, zobacz Konfigurowanie wielu połączeń.

Krok 5. Uzyskiwanie tokenu dostępu identyfikatora entra firmy Microsoft

Aby umożliwić użytkownikowi delegowany dostęp do interfejsu API zaplecza, w zasadach należy podać token dostępu dla delegowanego użytkownika lub grupy.get-authorization-context Zazwyczaj odbywa się to programowo w aplikacji klienckiej przy użyciu biblioteki Microsoft Authentication Library (MSAL). Ta sekcja zawiera instrukcje ręczne tworzenia tokenu dostępu na potrzeby testowania.

  1. Wklej następujący adres URL w przeglądarce, zastępując wartości i <tenant-id> <client-id> wartościami z rejestracji aplikacji 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 wyświetleniu monitu zaloguj się. W treści odpowiedzi skopiuj wartość podanego kodu (na przykład: "0.AXYAh2yl…").

  3. Wyślij następujące POST żądanie do punktu końcowego tokenu, zastępując <tenant-id> element identyfikatorem dzierżawy i zawierającym wskazany nagłówek oraz parametry treści z rejestracji aplikacji oraz kod skopiowany w poprzednim kroku.

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

    Nagłówek

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

    Treść

    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. W treści odpowiedzi skopiuj wartość access_token podaną (na przykład: eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6IjZqQmZ1...). Ta wartość zostanie przekazana w konfiguracji zasad w następnym kroku.

Krok 6. Konfigurowanie zasad get-authorization-context dla interfejsu API zaplecza

Skonfiguruj zasady get-authorization-context dla interfejsu API zaplecza, do którego chcesz uzyskać dostęp w imieniu użytkownika lub grupy. W celach testowych można skonfigurować zasady przy użyciu tokenu dostępu Microsoft Entra ID dla użytkownika uzyskanego w poprzedniej sekcji.

  1. Zaloguj się do portalu i przejdź do wystąpienia usługi API Management.

  2. W menu po lewej stronie wybierz pozycję Interfejsy API, a następnie wybierz interfejs API zaplecza OAuth 2.0.

  3. Wybierz opcję Wszystkie operacje. W sekcji Przetwarzanie przychodzące wybierz ikonę (</>) (edytor kodu).

  4. get-authorization-context Skonfiguruj zasady w inbound sekcji , ustawiając wartość identity-type :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>
    

W poprzedniej definicji zasad zastąp:

  • <credential-provider-id> i <connection-id> z nazwami dostawcy poświadczeń i połączenia, odpowiednio, skonfigurowane w poprzednim kroku.

  • <access-token> za pomocą tokenu dostępu Microsoft Entra ID wygenerowanego w poprzednim kroku.

Krok 7. Testowanie interfejsu API

  1. Na karcie Test wybierz jedną skonfigurowaną operację.

  2. Wybierz Wyślij.

    Pomyślna odpowiedź zwraca dane użytkownika z interfejsu API zaplecza.