Le contrôle d'accès basé sur les rôles (RBAC) est une méthode de restriction d'accès basée sur les rôles des utilisateurs au sein d'une entreprise. Les rôles par défaut sont disponibles et vous pouvez en créer de nouveaux en sélectionnant les autorisations souhaitées et en mappant ces rôles aux groupes d'utilisateurs. Le mappage des rôles aux groupes d'utilisateurs permet à tous les utilisateurs de ce groupe d'effectuer les opérations associées au rôle.
Cette section décrit comment un microservice peut définir son propre ensemble d'autorisations RBAC.
Pour définir des autorisations statiques :
{
"service":"service-name",
"permissions": [
{
"group": "group-name",
"actions": [
{"name":"action-name","displayName":"Display name to be shown in roles page"}
]
}
]
}
Reportez-vous à l'exemple suivant pour créer, afficher, gérer et supprimer des autorisations au sein d'un groupe d'informations d'identification.
Pour enregistrer des autorisations :
const { rbacHelper, rbacSpecProcessorHelper } = require('@cisco-bpa-platform/mw-util-common-app');
let resources = require('./config/asset-manager-permissions-spec');
let rbacSpecProcessorObj = rbacSpecProcessorHelper.getRbacSpecProcessorUtil();
rbacSpecProcessorObj.setSpec(resources);
await rbacSpecProcessorObj.process();
Les utilisateurs peuvent afficher les autorisations enregistrées dans les pages Créer un rôle et Modifier le rôle.
Les autorisations créées dans la section précédente peuvent être mappées à des rôles par défaut ou en définissant un mappage avec des rôles.
Pour mapper les autorisations définies sur les rôles par défaut, créez un fichier JSON dans le chemin d'accès microservice/src/config/device-role-permissions-mapping-spec.json.
Dans l'exemple ci-dessous, trois (3) autorisations sont mappées au rôle BPA Super Admin, deux (2) sont mappées au rôle Admin du service partagé et une (1) est mappée au rôle Opérateur réseau.
{
"service": "AssetManagerService",
"roles": [
{
"name": "BPA Super Admin",
"permissions": [
{"name":"view","displayName":"View Asset Credentials","group": "credential"},
{"name":"remove","displayName":"Remove Asset Credentials","group": "credential"},
{"name":"manage","displayName":"Manage Asset Credentials Add, Update and Delete Asset Credentials","group": "credential"}
]
},
{
"name": "Tenant Admin",
"permissions": [
{"name":"view","displayName":"View Asset Credentials","group": "credential"},
{"name":"remove","displayName":"Remove Asset Credentials","group": "credential"}
]
},
{
"name": "Network Operator",
"permissions": [
{"name":"view","displayName”:"View Asset Credentials","group": "credential"}
]
}
]
}
Pour mettre à jour le mappage des autorisations :
const { rbacHelper, rbacPermissionMappingHelper } = require('@cisco-bpa-platform/mw-util-common-app');
let rbacUtilObj = rbacHelper.getRbacUtilObj();
let registryDetails = await rbacUtilObj getRegistryByName({}, 'device-role-permissions-mapping-spec');
if (Array.isArray(registryDetails) && registryDetails.length === 0) {
let rbacPermissionMappingSpecProcessorObj = rbacPermissionMappingHelper.getRbacSpecProcessorUtil() ;
let rolePermissions = require('./config/device-role-permissions-mapping-spec');
rbacPermissionMappingSpecProcessorObj.setSpec(rolePermissions);
await rbacPermissionMappingSpecProcessorObj.process();
let rbacUtilObjRegister = rbacHelper.getRbacUtilObj();
await rbacUtilObjRegister addRegistry({}, 'device-role-permissions-mapping-spec');
}
async function permissionsSpecProcessor() {
let resources = require('./config/device-permissions-spec');
let rbacSpecProcessorObj = rbacSpecProcessorHelper.getRbacSpecProcessorlltil();
rbacSpecProcessorObj.setSpec(resources);
await rbacSpecProcessorObj.process();
let rbacUtilObj = rbacHelper.getRbacUtilObj();
let registryDetails = await rbacUtilObj.getRegistryByName({} 'device-role-permissions-mapping-spec');
if (Array.isArray(registryDetails) && registryDetails.length === 0) {
let rbacPermissionMappingSpecProcessorObj = rbacPermissionMappingHelper.getRbacSpecProcessorUtil();
let rolePermissions = require('./config/device-role-permissions-mapping-spec');
rbacPermissionMappingSpecProcessorObj.setSpec(rolePermissions);
await rbacPermissionMappingSpecProcessorObj.process();
let rbacUtilObjRegister = rbacHelper.getRbacUtilObj();
await rbacUtilObjRegister.addRegistry({}, 'device-role-permissions-mapping-spec');
}
}
| Révision | Date de publication | Commentaires |
|---|---|---|
1.0 |
23-Sep-2025
|
Première publication |