Плагин Аутентификации

Имитирует проверку подлинности и авторизацию с помощью ключей API или OAuth2.

Снимок экрана: командная строка с имитацией проверки подлинности с помощью прокси-сервера разработки с помощью ключа API в функции Azure, работающей локально.

Пример конфигурации: ключ API

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "AuthPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "auth"
    }
  ],
  "auth": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/authplugin.schema.json",
    "type": "apiKey",
    "apiKey": {
      "parameters": [
        {
          "in": "header",
          "name": "x-api-key"
        },
        {
          "in": "query",
          "name": "code"
        }
      ],
      "allowedKeys": [
        "1234"
      ]
    }
  }
}

На следующей схеме показано, как прокси-сервер разработки обрабатывает запрос с помощью этой конфигурации:

Схема последовательности проверки ключа API для прокси-сервера разработки перед перенаправлением запроса в API или возвратом 401 несанкционированного доступа.

Пример конфигурации: OAuth2

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "AuthPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "auth"
    }
  ],
  "auth": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/authplugin.schema.json",
    "type": "oauth2",
    "oauth2": {
      "metadataUrl": "https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration",
      "allowedApplications": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "allowedAudiences": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "allowedPrincipals": [
        "00000000-0000-0000-0000-000000000000"
      ],
      "allowedTenants":[
        "00000000-0000-0000-0000-000000000000"
      ],
      "issuer": "https://login.microsoftonline.com/ffffffff-eeee-dddd-cccc-bbbbbbbbbbb0/v2.0",
      "scopes": [
        "Posts.Read"
      ],
      "validateLifetime": true,
      "validateSigningKey": true
    }
  }
}

На следующей схеме показано, как прокси-сервер разработки обрабатывает запрос с помощью этой конфигурации:

Схема последовательности проверки маркера носителя при проверке маркера носителя перед перенаправлением запроса в API или возвратом 401 несанкционированного доступа.

Схема последовательности с тремя участниками: Client, Dev Proxy и API. Клиент отправляет запрос с маркером носителя в заголовке авторизации в прокси-сервер разработки. Затем прокси-сервер разработки выполняет ряд проверок маркера: проверяет подпись маркера с помощью ключей подписи из метаданныхUrl, проверяет время существования токена, проверяет, соответствует ли издатель токена (iss), проверяет, находится ли аудитория (aud) в разрешенныхAudiences, проверяет, находится ли клиент (tid) в разрешенныхTenants, проверяет, находится ли приложение (appid или azp) в разрешенных приложениях, проверяет, включен ли субъект (oid) в разрешенныхPrincipals, и проверяет, включены ли области маркеров (scp). Если маркер действителен и его утверждения соответствуют конфигурации, прокси-сервер разработки перенаправит запрос в API, API возвращает ответ на прокси разработки, а прокси-сервер разработки возвращает ответ клиенту. Если маркер отсутствует или недопустим, прокси-сервер разработки возвращает 401 несанкционированный клиенту без вызова API.

Свойства конфигурации

Свойство Описание: Обязательное поле
type Тип проверки подлинности и авторизации, которые следует использовать прокси-сервер разработки. Допустимые значения: apiKey, oauth2 Да
apiKey Настройка проверки подлинности и авторизации ключа API. Да, когда type есть apiKey
oauth2 Конфигурация для проверки подлинности и авторизации OAuth2. Да, когда type есть oauth2

Свойства конфигурации ключа API

Свойство Описание: Обязательное поле
allowedKeys Список разрешенных ключей API. Да
parameters Список параметров, содержащих ключ API. Да

Свойства конфигурации параметров

Свойство Описание: Обязательное поле
in Где ожидается найти параметр. Допустимые значения: header, querycookie Да
name Имя параметра. Да

Свойства конфигурации OAuth2

Свойство Описание: Обязательное поле
metadataUrl URL-адрес документа метаданных OpenID Connect. Да
allowedApplications Список разрешенных идентификаторов приложений. Оставьте пустым, чтобы не проверить приложение (appid или azp утверждение), для которого выдан маркер. нет
allowedAudiences Список разрешенных аудиторий. Оставьте пустым, чтобы не проверить аудиторию (aud утверждение), для которой выдан маркер. нет
allowedPrincipals Список разрешенных субъектов. Оставьте пустым, чтобы не проверить субъект (oid утверждение), для которого выдан маркер. нет
allowedTenants Список разрешенных клиентов. Оставьте пустым, чтобы не проверить клиент (tid утверждение), для которого выдан маркер. нет
issuer Разрешенный издатель маркеров. Оставьте пустым, чтобы не проверить издателя маркера. нет
roles Список разрешенных ролей. Оставьте пустым, чтобы не проверить роли (roles утверждение) на маркере. нет
scopes Список разрешенных областей. Оставьте пустым, чтобы не проверить области (scp утверждение) на маркере. нет
validateLifetime Установите для false отключения проверки времени существования маркера. Значение по умолчанию: true. нет
validateSigningKey Установите для false отключения проверки подписи токена. По умолчанию true нет

Параметры командной строки

Нет