ApiCenterMinimalPermissionsPlugin
앱이 최소 사용 권한을 사용하여 API를 호출하는지 확인합니다. 지정된 Azure API Center 인스턴스의 API 정보를 사용합니다.
플러그 인 인스턴스 정의
{
"name": "ApiCenterMinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "apiCenterMinimalPermissionsPlugin"
}
구성 예
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "cdae2297-7aa6-4195-bbb1-dcd89153cc72",
"resourceGroupName": "resource-group-name",
"serviceName": "apic-instance",
"workspaceName": "default"
}
}
구성 속성
속성 | 설명 | 기본값 |
---|---|---|
resourceGroupName |
Azure API 센터가 있는 리소스 그룹의 이름입니다. | None |
serviceName |
개발자 프록시가 앱에서 사용되는 API가 등록되어 있는지 확인하는 데 사용해야 하는 Azure API 센터 인스턴스의 이름입니다. | None |
subscriptionId |
Azure API Center 인스턴스가 있는 Azure 구독의 ID입니다. | None |
workspace |
사용할 Azure API Center 작업 영역의 이름입니다. | default |
명령줄 옵션
None
설명
플러그 인은 ApiCenterMinimalPermissionsPlugin
앱이 최소 사용 권한을 사용하여 API를 호출하는지 확인합니다. 사용 권한을 확인하기 위해 플러그 인은 지정된 Azure API 센터 인스턴스에 등록된 API에 대한 정보를 사용합니다.
Azure API 센터에 연결
Azure API Center에 연결하기 위해 플러그 인은 Azure 자격 증명(이 순서대로)을 사용합니다.
- 환경
- 워크로드 ID
- 관리 ID
- Visual Studio
- Visual Studio Code
- Azure CLI
- Azure PowerShell
- Azure Developer CLI
플러그 인이 Azure에 액세스하기 위한 액세스 토큰을 가져오지 못하면 오류가 표시되고 개발자 프록시가 이를 사용하지 않도록 설정합니다. 이러한 도구 중 하나를 사용하여 Azure에 로그인하고 개발자 프록시를 다시 시작하여 플러그 인을 ApiCenterMinimalPermissionsPlugin
사용합니다.
CI/CD 파이프라인에서 개발 프록시를 사용하는 경우 , resourceGroupName
및 serviceName
workspaceName
속성에 subscriptionId
대한 값을 환경 변수로 전달할 수 있습니다. 환경 변수를 사용하려면 값 @
의 이름 앞에 다음을 추가합니다. 예를 들면 다음과 같습니다.
{
"apiCenterMinimalPermissionsPlugin": {
"subscriptionId": "@AZURE_SUBSCRIPTION_ID",
"resourceGroupName": "@AZURE_RESOURCE_GROUP_NAME",
"serviceName": "@AZURE_APIC_INSTANCE_NAME",
"workspaceName": "@AZURE_APIC_WORKSPACE_NAME"
}
}
이 예제 ApiCenterMinimalPermissionsPlugin
에서 플러그 인은 각각 , resourceGroupName
, serviceName
및 workspaceName
환경 변수의 AZURE_APIC_INSTANCE_NAME
AZURE_SUBSCRIPTION_ID
AZURE_RESOURCE_GROUP_NAME
값으로 , 및 AZURE_APIC_WORKSPACE_NAME
속성을 설정합니다.subscriptionId
API 권한 정의
플러그 인은 ApiCenterMinimalPermissionsPlugin
Azure API 센터에 등록된 OAuth로 보호되는 API에 대한 OAuth 권한 확인을 지원합니다. 플러그 인은 API 센터의 정보를 사용하여 앱에서 사용되는 API를 호출하는 데 필요한 최소한의 권한을 계산합니다. 그런 다음 플러그 인은 JWT(JSON 웹 토큰) 토큰에 사용된 사용 권한을 개발자 프록시가 기록한 요청에 필요한 최소 필수 범위와 비교합니다.
API에 대한 권한을 정의하려면 API의 OpenAPI 정의에 해당 권한을 포함합니다. 다음 예제에서는 OpenAPI 정의에서 API에 대한 권한을 정의하는 방법을 보여 줍니다.
{
"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.19.0"
}
}
관련 부분은 securitySchemes
API에서 사용하는 OAuth 범위를 정의하는 섹션입니다. 그런 다음 각 작업에 필요한 범위를 섹션에 security
포함합니다.
자세한 정보
Dev Proxy