MinimalPermissionsPlugin
Vérifie si l’application utilise des autorisations minimales pour appeler des API. Utilise des informations d’API à partir du dossier local spécifié.
Définition de l’instance de plug-in
{
"name": "MinimalPermissionsPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "minimalPermissionsPlugin"
}
Exemple de configuration
{
"minimalPermissionsPlugin": {
"apiSpecsFolderPath": "./api-specs"
}
}
Propriétés de configuration
Propriété | Description | Default |
---|---|---|
apiSpecsFolderPath |
Chemin d’accès relatif ou absolu au dossier avec des spécifications d’API | Aucun(e) |
Options de ligne de commande
Aucun(e)
Notes
Le MinimalPermissionsPlugin
plug-in vérifie si l’application utilise des autorisations minimales pour appeler des API. Pour vérifier les autorisations, le plug-in utilise des informations sur les API situées dans le dossier local spécifié.
Définir des autorisations d’API
Le MinimalPermissionsPlugin
plug-in prend en charge la vérification des autorisations OAuth pour les API sécurisées avec OAuth. Le plug-in calcule les autorisations minimales requises pour appeler les API utilisées dans l’application à l’aide des informations des spécifications d’API fournies. Ensuite, le plug-in compare les autorisations utilisées dans le jeton JWT (JSON Web Token) par rapport aux étendues minimales requises pour les demandes enregistrées par le proxy de développement.
Pour définir des autorisations pour vos API, incluez-les dans la définition OpenAPI de votre API. L’exemple suivant montre comment définir des autorisations pour une API dans une définition 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.22.0"
}
}
La partie pertinente est la securitySchemes
section dans laquelle vous définissez les étendues OAuth utilisées par l’API. Ensuite, pour chaque opération, vous incluez les étendues requises dans la security
section.