Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Проверяет, использует ли приложение минимальные разрешения для вызова 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 |
Параметры командной строки
нет
Замечания
Подключаемый 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
переменных resourceGroupName
serviceName
среды , а также 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
модули задают , subscriptionId
resourceGroupName
serviceName
и workspaceName
свойства для значений AZURE_SUBSCRIPTION_ID
переменных , AZURE_RESOURCE_GROUP_NAME
AZURE_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
раздел.