Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Проверяет, использует ли приложение минимальные разрешения для вызова API. Использует сведения API из указанного экземпляра Центра API Azure.
Определение экземпляра подключаемого модуля
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
Пример конфигурации
{
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
Свойства конфигурации
| Свойство | Описание | По умолч. |
|---|---|---|
resourceGroupName |
Имя группы ресурсов, в которой находится Центр API Azure. | нет |
serviceName |
Имя экземпляра Центра API Azure, который должен использовать прокси-сервер разработки, чтобы проверить, зарегистрированы ли API- интерфейсы, используемые в приложении. | нет |
subscriptionId |
Идентификатор подписки Azure, в которой находится экземпляр Центра API Azure. | нет |
workspace |
Имя рабочей области Центра API Azure для использования. | default |
schemeName |
Имя определения схемы безопасности, используемого для определения минимальных разрешений. Если это не указано, подключаемый модуль считывает сведения из первой схемы oauth2 в спецификации | нет |
Параметры командной строки
нет
Замечания
Подключаемый ApiCenterMinimalPermissionsPlugin модуль проверяет, использует ли приложение минимальные разрешения для вызова API. Чтобы проверить разрешения, подключаемый модуль использует сведения об API, зарегистрированных в указанном экземпляре Центра API Azure.
Подключение к Центру API Azure
Чтобы подключиться к Центру API Azure, подключаемый модуль использует учетные данные Azure (в этом порядке):
- Среда
- Удостоверение рабочей нагрузки
- Управляемое удостоверение
- Визуальная студия
- Visual Studio Code
- Azure CLI (Интерфейс командной строки для Azure)
- Azure PowerShell
- Azure Developer CLI
Если подключаемый модуль не получает маркер доступа для доступа к Azure, отображается ошибка, а прокси-сервер разработки отключает его. Войдите в Azure с помощью любого из этих средств и перезапустите прокси-сервер разработки для использования подключаемого ApiCenterMinimalPermissionsPlugin модуля.
Если вы используете прокси-сервер разработки в конвейерах CI/CD, можно передать значения для subscriptionIdпеременных resourceGroupNameserviceNameсреды , а также workspaceName свойства. Чтобы использовать переменные среды, добавьте имя значения, @например:
{
"apiCenterMinimalPermissionsPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/apicenterminimalpermissionsplugin.schema.json",
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
В этом примере подключаемые ApiCenterMinimalPermissionsPlugin модули задают , subscriptionIdresourceGroupNameserviceNameи workspaceName свойства для значений AZURE_SUBSCRIPTION_IDпеременных , AZURE_RESOURCE_GROUP_NAMEAZURE_APIC_INSTANCE_NAMEи AZURE_APIC_WORKSPACE_NAME среды соответственно.
Определение разрешений API
Подключаемый ApiCenterMinimalPermissionsPlugin модуль поддерживает проверку разрешений OAuth для API, защищенных с помощью OAuth, зарегистрированных в Центре API Azure. Подключаемый модуль вычисляет минимальные разрешения, необходимые для вызова API, используемых в приложении, с помощью сведений из Центра API. Затем подключаемый модуль сравнивает разрешения, используемые в маркере веб-маркера JSON (JWT) с минимальными необходимыми областями, необходимыми для запросов, записанных прокси-сервером разработки.
Чтобы определить разрешения для API, включите их в определение OpenAPI API. В следующем примере показано, как определить разрешения для API в определении OpenAPI:
{
"openapi": "3.0.1",
"info": {
"title": "Northwind API",
"description": "Northwind API",
"version": "v1.0"
},
"servers": [
{
"url": "https://api.northwind.com"
}
],
"components": {
"securitySchemes": {
"OAuth2": {
"type": "oauth2",
"flows": {
"authorizationCode": {
"authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize",
"tokenUrl": "https://login.microsoftonline.com/common/oauth2/token",
"scopes": {
"customer.read": "Grants access to ready customer info",
"customer.readwrite": "Grants access to read and write customer info"
}
}
}
}
},
"schemas": {
"Customer": {
"type": "object",
// [...] trimmed for brevity
}
}
},
"paths": {
"/customers/{customers-id}": {
"description": "Provides operations to manage a customer",
"get": {
"summary": "Get customer by ID",
"operationId": "getCustomerById",
"security": [
{
"OAuth2": [
"customer.read"
]
},
{
"OAuth2": [
"customer.readwrite"
]
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json; charset=utf-8": {
"schema": {
"$ref": "#/components/schemas/Customer"
}
}
}
}
}
},
"patch": {
"summary": "Update customer by ID",
"operationId": "updateCustomerById",
"security": [
{
"OAuth2": [
"customer.readwrite"
]
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Customer"
}
}
}
},
"responses": {
"204": {
"description": "No Content"
}
}
},
"parameters": [
{
"name": "customers-id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
]
}
},
"x-ms-generated-by": {
"toolName": "Dev Proxy",
"toolVersion": "0.27.0"
}
}
Соответствующая часть — это securitySchemes раздел, в котором определяются области OAuth, которые использует API. Затем для каждой операции необходимо включить необходимые области в security раздел.