Настройка диспетчера учетных данных — API GitHub

ПРИМЕНЯЕТСЯ КО ВСЕМ уровням управления API

В этой статье вы узнаете, как создать управляемое подключение в службе управления API и вызвать API GitHub, требующий маркера OAuth 2.0. В этом примере используется тип предоставления кода авторизации.

Вы узнаете, как:

  • Регистрация приложения в GitHub
  • Настройка поставщика учетных данных в службе управления API
  • Настройка подключения
  • Создание API в службе "Управление API" и настройка политики
  • Тестируйте ваш API GitHub в службе управления API

Предпосылки

Шаг 1. Регистрация приложения в GitHub

Создайте приложение OAuth GitHub для API и предоставьте ему соответствующие разрешения для вызываемого запроса.

  1. Войдите в GitHub.

  2. В профиле учетной записи перейдите в раздел "Параметры >> разработчика" OAuth Apps. Выберите новое приложение OAuth.

    Снимок экрана: регистрация нового приложения OAuth в GitHub.

    1. Введите имя приложения и URL-адрес домашней страницы приложения. В этом примере можно указать URL-адрес заполнителя, например http://localhost.
    2. При необходимости добавьте описание приложения.
    3. В поле URL-адрес обратного вызова авторизации (URL-адрес перенаправления) введите https://authorization-manager.consent.azure-apim.net/redirect/apim/<YOUR-APIM-SERVICENAME>, заменив имя экземпляра службы управления API, в котором вы настраиваете поставщика учетных данных.
    4. При необходимости выберите включить поток устройств (не требуется для этого примера).
  3. Выберите "Зарегистрировать приложение".

  4. На странице "Общие " скопируйте идентификатор клиента, который используется на шаге 2.

  5. Выберите "Создать новый секрет клиента". Скопируйте секрет, который не отображается снова. Секрет настраиваем на шаге 2.

    Снимок экрана: получение идентификатора клиента и секрета клиента для приложения в GitHub.

Шаг 2. Настройка поставщика учетных данных в службе управления API

  1. Войдите в портал Azure и перейдите к вашей службе управления API.

  2. В меню слева выберитеAPI>диспетчер учетных данных>+ Создать.

    Снимок экрана: создание учетных данных управления API на портале Azure.

  3. В поле "Создание поставщика учетных данных" введите следующие параметры:

    Settings Ценность
    Имя поставщика учетных данных Имя вашего выбора, например github-01
    Поставщик удостоверений Выбор GitHub
    Тип предоставления Выбор кода авторизации
    идентификатор клиента Вставка значения, скопированного ранее из регистрации приложения
    Секрет клиента Вставка значения, скопированного ранее из регистрации приложения
    Объем В этом примере задайте для области значение User
  4. Нажмите кнопку "Создать".

  5. При появлении запроса просмотрите отображаемый URL-адрес перенаправления OAuth и нажмите кнопку "Да ", чтобы подтвердить соответствие URL-адреса, введенного в регистрации приложения GitHub.

Шаг 3. Настройка подключения

На вкладке "Подключение" выполните действия для подключения к поставщику.

Замечание

При настройке подключения API Management по умолчанию устраивает политику доступа, которая позволяет доступ через системно назначенное управляемое удостоверение экземпляра. Этот доступ достаточный для этого примера. При необходимости можно добавить дополнительные политики доступа.

  1. Введите имя подключения, а затем нажмите кнопку "Сохранить".
  2. На шаге 2. Выполните вход в систему (для типа предоставления кода авторизации) нажмите кнопку «Войти». Выполните действия с поставщиком удостоверений, чтобы авторизовать доступ и вернуться к управлению API. После успешного входа состояние подключения изменяется на Подключено.
  3. На шаге 3: Определите, кто будет иметь доступ к этому подключению (политика доступа), указан участник управляемого удостоверения. Добавление других элементов является необязательным в зависимости от вашего сценария.
  4. Нажмите кнопку "Завершить".

Новое подключение отображается в списке подключений и отображает состояние "Подключено". Если вы хотите создать другое подключение для поставщика учетных данных, выполните описанные выше действия.

Подсказка

Используйте портал Azure для добавления, обновления или удаления подключений к поставщику учетных данных в любое время. Дополнительные сведения см. в разделе "Настройка нескольких подключений".

Шаг 4. Создание API в службе управления API и настройка политики

  1. Войдите в портал Azure и перейдите к вашей службе управления API.

  2. В меню слева выберите API>+>Добавить API.

  3. Выберите HTTP и введите следующие параметры, а затем нажмите кнопку "Создать".

    Setting Ценность
    Отображаемое имя githubuser
    URL-адрес веб-службы https://api.github.com
    Суффикс URL-адреса API githubuser
  4. Перейдите к новому API и выберите "Добавить операцию". Введите следующие параметры и нажмите кнопку "Сохранить".

    Setting Ценность
    Отображаемое имя getauthdata
    URL-адрес для GET /user

    Снимок экрана: добавление операции getauthdata в API на портале.

  5. Выполните описанные выше действия, чтобы добавить другую операцию со следующими параметрами.

    Setting Ценность
    Отображаемое имя getauthfollowers
    URL-адрес для GET /user/подписчики
  6. Выберите все операции. В разделе "Входящий процесс обработки " щелкните значок (</>) (редактор кода).

  7. Скопируйте и вставьте следующий код в редактор политик. Убедитесь, что значения provider-id и authorization-id в рамках политики get-authorization-context соответствуют именам поставщика учетных данных и подключения, которые вы настроили на предыдущих шагах. Нажмите кнопку "Сохранить".

    <policies>
        <inbound>
            <base />
            <get-authorization-context provider-id="github-01" authorization-id="first-connection" context-variable-name="auth-context" identity-type="managed" ignore-error="false" />
            <set-header name="Authorization" exists-action="override">
                <value>@("Bearer " + ((Authorization)context.Variables.GetValueOrDefault("auth-context"))?.AccessToken)</value>
            </set-header>
            <set-header name="User-Agent" exists-action="override">
                <value>API Management</value>
            </set-header>
        </inbound>
        <backend>
            <base />
        </backend>
        <outbound>
            <base />
        </outbound>
        <on-error>
            <base />
        </on-error>
    </policies>
    

Предыдущее определение политики состоит из трех частей:

  • Политика get-authorization-context получает токен авторизации, обращаясь к поставщику учетных данных и подключению, созданному ранее.
  • Первая политика set-header создает заголовок HTTP с полученным токеном авторизации.
  • Вторая политика set-header создает User-Agent заголовок (требование к API GitHub).

Шаг 5. Тестирование API

  1. На вкладке "Тест" выберите одну операцию, настроенную.

  2. Выберите Отправить.

    Снимок экрана успешного тестирования API в портале.

    Успешный ответ возвращает пользовательские данные из API GitHub.