التحكم في الوصول المستند إلى الأدوار (RBAC) هو طريقة لتقييد الوصول بناء على أدوار المستخدمين داخل مؤسسة. تتوفر الأدوار الافتراضية، ويمكن إنشاء أدوار جديدة عن طريق تحديد الأذونات المفضلة وتخطيط هذه الأدوار إلى مجموعات المستخدمين. يسمح تعيين الأدوار لمجموعات المستخدمين لكافة المستخدمين في مجموعة المستخدمين هذه بتنفيذ العمليات المقترنة بالدور.
يصف هذا القسم كيف يمكن لخدمة microService تعريف مجموعتها الخاصة من أذونات RBAC.
لتعريف الأذون الثابتة:
{
"service":"service-name",
"permissions": [
{
"group": "group-name",
"actions": [
{"name":"action-name","displayName":"Display name to be shown in roles page"}
]
}
]
}
ارجع إلى المثال التالي لإنشاء أذونات عرض وإدارة وإزالتها داخل مجموعة بيانات اعتماد.
لتسجيل الأذونات:
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();
يمكن للمستخدمين عرض الأذونات المسجلة في صفحات إنشاء الدور وتحرير الدور.
يمكن تعيين الأذونات التي تم إنشاؤها في المقطع السابق إلى أدوار بشكل افتراضي أو عن طريق تعريف تعيين بأدوار.
لتعيين الأذونات المعرفة للأدوار الافتراضية، قم بإنشاء ملف JSON جديد في المسار microservice/src/config/device-role-permissions-mapping-spec.json.
في المثال التالي، تم تعيين ثلاثة (3) أذونات لدور مسؤول BPA الرئيسي، وتم تعيين (2) لدور مسؤول المستأجر، وتم تعيين (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"}
]
}
]
}
لتحديث تعيين الأذونات:
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');
}
}
| المراجعة | تاريخ النشر | التعليقات |
|---|---|---|
1.0 |
23-Sep-2025
|
الإصدار الأولي |