Rollenbasierte Zugriffskontrolle (RBAC) ist eine Methode zur Einschränkung des Zugriffs basierend auf den Rollen der Benutzer in einem Unternehmen. Es sind Standardrollen verfügbar, und neue Rollen können erstellt werden, indem bevorzugte Berechtigungen ausgewählt und diese Rollen Benutzergruppen zugeordnet werden. Durch das Zuordnen von Rollen zu Benutzergruppen können alle Benutzer in dieser Benutzergruppe die mit der Rolle verknüpften Vorgänge ausführen.
In diesem Abschnitt wird beschrieben, wie ein Mikrodienst seine eigenen RBAC-Berechtigungen definieren kann.
So definieren Sie statische Berechtigungen:
{
"service":"service-name",
"permissions": [
{
"group": "group-name",
"actions": [
{"name":"action-name","displayName":"Display name to be shown in roles page"}
]
}
]
}
Im folgenden Beispiel können Sie Berechtigungen in einer Anmeldungsgruppe erstellen, verwalten und entfernen.
Berechtigungen registrieren:
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();
Benutzer können die registrierten Berechtigungen auf den Seiten Rolle erstellen und Rolle bearbeiten anzeigen.
Berechtigungen, die im vorherigen Abschnitt erstellt wurden, können Rollen standardmäßig oder durch Definieren der Zuordnung zu Rollen zugeordnet werden.
Um definierte Berechtigungen Standardrollen zuzuordnen, erstellen Sie eine neue JSON-Datei im Pfad microservice/src/config/device-role-permissions-mapping-spec.json.
Im folgenden Beispiel sind der Rolle "BPA-Superadministrator" drei (3) Berechtigungen zugeordnet, der Rolle "Tenant-Administrator" zwei (2) und der Rolle "Netzwerkbetreiber" eine (1).
{
"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"}
]
}
]
}
So aktualisieren Sie die Berechtigungszuordnung:
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');
}
}
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
1.0 |
23-Sep-2025
|
Erstveröffentlichung |