إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تُبين هذه المقالة كيفية استخدام Node.js للحصول على قوائم التحكم في الوصول للأدلة والملفات وضبطها وتحديثها.
حزمة (Node Package Manager) | عينات | إعطاء التعليقات
المتطلبات الأساسية
- اشتراك في Azure - أنشئ اشتراكا مجانًا.
- حساب تخزين Azure الذي تم تمكين مساحة الاسم الهرمية (HNS). اتبع هذه الإرشادات لإنشاء واحدة.
- Node.js LTS
- إصدار Azure CLI
2.6.0أو أعلى. - أحد أذونات الأمان التالية:
- أساس أمان معرف Microsoft Entra تم توفيره تم تعيينه لدور "مالك بيانات كائن ثنائي كبير الحجم للتخزين"، تم تحديد نطاقه للحاوية الهدف أو حساب التخزين أو مجموعة الموارد الأصل أو الاشتراك.
- امتلاك مستخدم للحاوية أو الدليل المستهدف الذي تخطط لتطبيق إعدادات قائمة التحكم بالوصول عليه. لتعيين ACLs بشكل متكرر، يشمل ذلك جميع العناصر الفرعية في الحاوية أو الدليل الهدف.
- مفتاح حساب التخزين.
إعداد مشروعك
يرشدك هذا القسم خلال إعداد مشروع للعمل مع مكتبة عميل Azure Data Lake Storage ل JavaScript.
تثبيت الحزم
تثبيت الحزم لمكتبات عميل Azure Data Lake Storage وAzure Identity باستخدام npm install الأمر .
حزمة @azure/الهوية مطلوبة للاتصالات بدون كلمة مرور بخدمات Azure.
npm install @azure/storage-file-datalake
npm install @azure/identity
تحميل الوحدات النمطية
أضف التعليمات البرمجية التالية في أعلى الملف لتحميل الوحدات النمطية المطلوبة:
const {
AzureStorageDataLake,
DataLakeServiceClient,
StorageSharedKeyCredential
} = require("@azure/storage-file-datalake");
const { DefaultAzureCredential } = require('@azure/identity');
الاتصال بالحساب
لتشغيل أمثلة التعليمات البرمجية في هذه المقالة، تحتاج إلى إنشاء مثيل DataLakeServiceClient الذي يمثل حساب التخزين. يمكنك تخويل كائن العميل باستخدام بيانات اعتماد معرف Microsoft Entra أو باستخدام مفتاح حساب.
يمكنك استخدام مكتبة عميل هوية Azure ل JavaScript لمصادقة التطبيق الخاص بك باستخدام معرف Microsoft Entra.
إشعار
إذا كنت تستخدم معرف Microsoft Entra لتخويل الوصول، فتأكد من تعيين دور مالك بيانات Storage Blob لكيان الأمان الخاص بك. لمعرفة المزيد حول كيفية تطبيق أذونات ACL وتأثيرات تغييرها، راجع نموذج التحكم في الوصول في Azure Data Lake Storage.
أولا، سيتعين عليك تعيين أحد أدوار التحكم في الوصول المستندة إلى دور Azure (Azure RBAC) التالية إلى أساس الأمان الخاص بك:
| الدور | إمكانية إعداد قائمة التحكم بالوصول |
|---|---|
| مالك بيانات للبيانات الثنائية الكبيرة للتخزين | جميع الدلائل والملفات في الحساب. |
| المساهم في بيانات مخزن البيانات الثنائية الكبيرة | فقط الدلائل والملفات التي يملكها الأمان الأساسي. |
بعد ذلك، قم بإنشاء مثيل DataLakeServiceClient وتمرير مثيل جديد من فئة DefaultAzureCredential .
function GetDataLakeServiceClientAD(accountName) {
const dataLakeServiceClient = new DataLakeServiceClient(
`https://${accountName}.dfs.core.windows.net`,
new DefaultAzureCredential()
);
return dataLakeServiceClient;
}
لمعرفة المزيد حول استخدام DefaultAzureCredential لتخويل الوصول إلى البيانات، راجع نظرة عامة: مصادقة تطبيقات JavaScript إلى Azure باستخدام Azure SDK.
الحصول على دليل ACL وتعيينه
يحصل هذا المثال على ACL لدليل مسمى my-directory ثم يقوم بتعيينه. يمنح هذا المثال المستخدم المالك الأذونات للقراءة والكتابة والتنفيذ، ويعطي المجموعة المالكة الأذونات للقراءة والتنفيذ فقط، ويعطي جميع الآخرين حق الوصول للقراءة.
إشعار
إذا كان التطبيق الخاص بك يأذن بالوصول باستخدام معرف Microsoft Entra، فتأكد من تعيين دور Storage Blob Data Owner لكيان الأمان الذي يستخدمه تطبيقك لتخويل الوصول. لمعرفة المزيد حول كيفية تطبيق أذونات ACL وتأثيرات تغييرها، راجع التحكم في الوصول في Azure Data Lake Storage.
async function ManageDirectoryACLs(fileSystemClient) {
const directoryClient = fileSystemClient.getDirectoryClient("my-directory");
const permissions = await directoryClient.getAccessControl();
console.log(permissions.acl);
const acl = [
{
accessControlType: "user",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: true,
execute: true
}
},
{
accessControlType: "group",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: false,
execute: true
}
},
{
accessControlType: "other",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: true,
execute: false
}
}
];
await directoryClient.setAccessControl(acl);
}
يمكنك أيضًا الحصول على ACL الخاص بالدليل الجذري للحاوية وتعيينه. للحصول على الدليل الجذري، مرر سلسلة فارغة (/) إلى طريقة DataLakeFileSystemClient.getDirectoryClient .
الحصول على ملف ACL وتعيينه
يحصل هذا المثال على ACL لملف مسمى upload-file.txt ثم يقوم بتعيينه. يمنح هذا المثال المستخدم المالك الأذونات للقراءة والكتابة والتنفيذ، ويعطي المجموعة المالكة الأذونات للقراءة والتنفيذ فقط، ويعطي جميع الآخرين حق الوصول للقراءة.
إشعار
إذا كان التطبيق الخاص بك يأذن بالوصول باستخدام معرف Microsoft Entra، فتأكد من تعيين دور Storage Blob Data Owner لكيان الأمان الذي يستخدمه تطبيقك لتخويل الوصول. لمعرفة المزيد حول كيفية تطبيق أذونات ACL وتأثيرات تغييرها، راجع التحكم في الوصول في Azure Data Lake Storage.
async function ManageFileACLs(fileSystemClient) {
const fileClient = fileSystemClient.getFileClient("my-directory/uploaded-file.txt");
const permissions = await fileClient.getAccessControl();
console.log(permissions.acl);
const acl = [
{
accessControlType: "user",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: true,
execute: true
}
},
{
accessControlType: "group",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: false,
execute: true
}
},
{
accessControlType: "other",
entityId: "",
defaultScope: false,
permissions: {
read: true,
write: true,
execute: false
}
}
];
await fileClient.setAccessControl(acl);
}