مع توسع المؤسسات القائمة على البيانات، تصبح الحاجة إلى تحكم دقيق وآمن في الوصول منصات التصور حاسمة. Apache Superset هو منصة قوية وعصرية لاستكشاف البيانات والتصوير، ولكن بشكل افتراضي، يعامل جميع المستخدمين بأدوار RBAC القياسية. للبيئات متعددة المستأجرين—مثل مزودي خدمات SaaS الذين يخدمون عملاء مختلفين أو الشركات ذات الفرق الإقليمية المميزة—تحتاج إلى أكثر من مجرد أذونات "يمكن عرض" أو "يمكن تحرير". تحتاج إلى الأمان على مستوى الصفوف (RLS) مع إدارة الهوية الآمنة عبر تسجيل الدخول الموحّد (SSO).
يقود هذا الدليل المطورين من المستوى المتوسط إلى المتقدم من خلال التنفيذ العملي لهذه الميزات لضمان عزل البيانات والمصادقة المركزية.
فهم البنية المعمارية
نموذج الأمان في Superset مبني حول الأدوار والصلاحيات. يسمح لك RLS بتقييد الصفوف من البيانات التي يمكن للمستخدم رؤيتها ضمن مجموعة بيانات محددة. يدمج SSO بين Superset ومزود الهوية المؤسسي الخاص بك (مثل Keycloak أو Okta أو Azure AD) لإدارة المصادقة خارجيًا، مما يقلل من انتشار كلمات المرور ويحسن وضع الأمان.
إعداد تسجيل الدخول الموحّد (SSO)
يدعم Superset بروتوكولات SSO مختلفة، حيث يُعد OpenID Connect (OIDC) الأكثر شيوعًا. لتنفيذ SSO، يجب عليك تكوين ملف superset_config.py. فيما يلي مثال عملي باستخدام مزود OIDC.
# superset_config.py
AUTH_TYPE = "oid"
OAUTH_REMOTE_APP = {
"client_id": "your-client-id",
"client_secret": "your-client-secret",
"auth_uri": "https://your-idp.example.com/auth",
"token_uri": "https://your-idp.example.com/token",
"api_base_url": "https://your-idp.example.com/",
"userinfo_uri": "https://your-idp.example.com/userinfo",
"request_token_params": {},
"access_token_params": {},
"authorize_params": {"scope": "openid profile email"},
"client_kwargs": {"verify_ssl": True},
}
# Map external groups to Superset roles
OAUTH_TO_ROLE = {
"admin-group": "Admin",
"analyst-group": "Alpha", # 'Alpha' is a role you create in Superset
"viewer-group": "Public",
}
بعد ضبط هذا الإعداد، أعد تشغيل مثيل Superset الخاص بك. سيتم الآن تحويل المستخدمين إلى IdP الخاص بك لتسجيل الدخول، وستُسنَد أدوار Superset الخاصة بهم تلقائيًا بناءً على عضويتهم في المجموعة داخل IdP.
تطبيق الأمان على مستوى الصفوف (RLS)
RLS هو جوهر عزل البيانات متعددة المستأجرين. يسمح لك بتعريف فلاتر SQL تُطبق على الاستعلامات بناءً على سمات المستخدم. في Superset، تُعرَّف قواعد RLS في واجهة المستخدم، لكنها يمكن أيضًا إدارتها برمجيًا لضمان الاتساق في خطوط CI/CD.
لنفترض أن لدينا جدول sales به عمود region. نريد أن يرى دور alpha البيانات من منطقة 'US' فقط.
1. انتقل إلى قواعد البيانات > تحديد قاعدة البيانات > الأمان على مستوى الصفوف.
2. أنشئ قاعدة جديدة بالإعدادات التالية:
- الدور: اختر
Alpha. - مجموعة البيانات: اختر مجموعة بيانات
salesالخاصة بك. - تعبير SQL للفلتر:
region = 'US'
لـ RLS الديناميكي المحدد للمستخدم (على سبيل المثال، يمكن للمستخدمين رؤية بيانات قسمهم فقط)، يمكنك الاستفادة من قوالب Jinja2 في تعبير الفلتر للوصول إلى سمات المستخدم المنقولة من مزود SSO الخاص بك أو الترويسات المخصصة.
# Example Dynamic RLS Filter
# Assumes 'department' is extracted from the user's JWT or profile
{{ current_user.attributes.get('department', 'unknown') }}
أفضل الممارسات للبيئات متعددة المستأجرين
- فصل الأدوار: أنشئ أدوار Superset مميزة لكل مستأجر أو قسم (على سبيل المثال،
Tenant_A_Verified،Tenant_B_Verified). لا تعتمد على دور "مستخدم" عام واحد. - اختبار RLS على نطاق واسع: تحقق دائمًا من قواعد RLS في بيئة تجريبية. قد يؤدي الفلتر غير المهيأ بشكل صحيح إلى تسرب البيانات أو لوحات معلومات فارغة.
- استخدام خرائط مجموعات SSO: أتمتة إسناد الأدوار عبر خرائط مجموعات SSO لتجنب أخطاء الإدارة اليدوية عند توظيف مستخدمين جدد.
- سجلات التدقيق: فعّل تسجيل تدقيق Superset لتتبع من قام بالوصول إلى أي مجموعات بيانات، مما يساعد في الامتثال والتحقيقات الأمنية.
خاتمة
تطبيق الأمان على مستوى الصفوف وتسجيل الدخول الموحّد في Apache Superset يحوله من أداة BI بسيطة إلى منصة تحليلات قوية على مستوى المؤسسات. من خلال فصل المصادقة إلى IdP خارجي وتطبيق تصفية البيانات الدقيقة على مستوى قاعدة البيانات، تضمن أن يرى كل مستخدم فقط البيانات المصرح له بعرضها. لا يعزز هذا النهج الأمان فحسب، بل يبسط أيضًا إدارة المستخدمين في البيئات المعقدة متعددة المستأجرين.
ابدأ بإعداد تكامل SSO الخاص بك، ثم أضف قواعد RLS لمجموعات البيانات الأكثر حساسية. مع وضع هذه الركيزتين، يكون مثيل Superset الخاص بك جاهزًا للتوسع بأمان مع مؤسستك.