Role Based Access Control (RBAC) is een methode om toegang te beperken op basis van de rollen van gebruikers binnen een onderneming. Standaardrollen zijn beschikbaar en nieuwe rollen kunnen worden gemaakt door voorkeursrechten te selecteren en deze rollen aan gebruikersgroepen toe te wijzen. Door rollen aan gebruikersgroepen toe te wijzen, kunnen alle gebruikers in die gebruikersgroep de bewerkingen uitvoeren die aan de rol zijn gekoppeld.
In dit gedeelte wordt beschreven hoe een microservice zijn eigen set RBAC-machtigingen kan definiëren.
Statische machtigingen definiëren:
{
"service":"service-name",
"permissions": [
{
"group": "group-name",
"actions": [
{"name":"action-name","displayName":"Display name to be shown in roles page"}
]
}
]
}
Raadpleeg het volgende voorbeeld om machtigingen binnen een aanmeldingsgroep te maken, te beheren en te verwijderen.
Om rechten te registreren:
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();
Gebruikers kunnen geregistreerde machtigingen bekijken op de pagina's Rol maken en Rol bewerken.
Machtigingen die in de vorige sectie zijn gemaakt, kunnen standaard aan rollen worden toegewezen of door toewijzingen met rollen te definiëren.
Als u gedefinieerde machtigingen wilt toewijzen aan standaardrollen, maakt u een nieuw JSON-bestand in het pad microservice/src/config/device-role-permissions-mapping-spec.json.
In het onderstaande voorbeeld worden drie (3) machtigingen toegewezen aan de BPA Super Admin-rol, twee (2) aan de rol Tenant Admin en één (1) aan de rol Network Operator.
{
"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"}
]
}
]
}
Toewijzingen voor machtigingen bijwerken:
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');
}
}
| Revisie | Publicatiedatum | Opmerkingen |
|---|---|---|
1.0 |
23-Sep-2025
|
Eerste vrijgave |