ITSkillsCenter
الأعمال الرقمية

SSO Authentik مع Mattermost والامتثال RGPD/ARTCI: درس 2026

3 min de lecture

📍 المقالة الرئيسية للمجموعة: Mattermost 2026: الدليل الكامل.

شركة من 30 شخصاً تستخدم بالفعل Authentik لـ SSO في Vaultwarden وForgejo وOutline وPlausible. ربط Mattermost يكمل النظام البيئي: تسجيل دخول واحد للجميع. مكافأة: audit logs منظمة لامتثال ARTCI/CDP/NESA. هذا الدرس يفصل التكوين الكامل، المُختبَر عند عدة شركات فرنكوفونية.

المتطلبات

Mattermost Team Edition في الإنتاج (راجع درس التثبيت). Authentik في الإنتاج (راجع درس Authentik). المستوى المتوقع: متقدم. الوقت المقدر: 45 إلى 60 دقيقة.

قيود Mattermost Team Edition

مهم: Mattermost Team Edition (مفتوح المصدر) يدعم GitLab OAuth و Google OAuth. SAML SSO و OpenID Connect يتطلبان Mattermost Enterprise (10 USD/مستخدم/شهر). الحل البديل لـ Team Edition: استخدم وضع GitLab OAuth الذي يشير إلى Authentik (Authentik يحاكي GitLab OAuth عبر OIDC). هذه الطريقة تعمل بشكل ممتاز ولا تكلف شيئاً، لكنها تتطلب تكويناً دقيقاً للأنواع.

الخطوة 1 — Provider OIDC Authentik (وضع متوافق مع GitLab)

Authentik admin → Providers → Create → OAuth2/OpenID Provider. هذا التكوين يوجه Mattermost لتلقي معلومات المستخدم بالتنسيق المتوقع من GitLab.

Name: mattermost-provider
Authentication flow: default-authentication-flow
Authorization flow: default-provider-authorization-explicit-consent
Client type: confidential
Redirect URIs: https://chat.votre-entreprise.com/signup/gitlab/complete
Scopes: openid email profile
Subject mode: based on user's email

سجل client_id و client_secret المُولَّدين. ستحتاجهما في الخطوة 3.

الخطوة 2 — Application Authentik

Applications → Create. الـ Application هي الواجهة بين المستخدم وProvider. Slug «mattermost» مهم لأنه يُستخدم في URL discovery.

Name: Mattermost
Slug: mattermost
Provider: mattermost-provider
Launch URL: https://chat.votre-entreprise.com

الخطوة 3 — تكوين Mattermost (وضع GitLab OAuth)

System Console → Authentication → GitLab. هذا الجزء يخبر Mattermost كيف يتحدث مع Authentik. كل URL هنا يجب أن يطابق بالضبط نقاط النهاية التي يكشفها Provider Authentik.

Enable GitLab OAuth: True
Application ID: client_id Authentik
Application Secret: client_secret Authentik
GitLab Site URL: https://auth.votre-entreprise.com
User API URL: https://auth.votre-entreprise.com/application/o/userinfo/
Authorize Endpoint: https://auth.votre-entreprise.com/application/o/authorize/
Token Endpoint: https://auth.votre-entreprise.com/application/o/token/

الخطوة 4 — تكييف Authentik للاستجابة كـ GitLab

Mattermost ينتظر تنسيق GitLab user JSON. Authentik يحتاج Property Mapping مخصص. هذا التكييف يحول البيانات من تنسيق Authentik القياسي إلى تنسيق GitLab المتوقع. بدون هذه الخطوة، Mattermost لن يفهم استجابة Authentik وسيرفض المصادقة.

Authentik admin → Customisation → Property Mappings → Create OAuth2/OpenID Property Mapping:

Name: gitlab-compat
Scope name: openid
Expression:
return {
    "id": user.pk,
    "email": user.email,
    "username": user.username,
    "name": user.name,
}

اربط هذا الـ mapping بـ Provider Mattermost. بدون هذا الربط، التكييف لا يطبق.

الخطوة 5 — اختبار

وضع incognito → https://chat.votre-entreprise.com. زر «Sign in with GitLab» يظهر. اضغط عليه. إعادة توجيه إلى auth.votre-entreprise.com. أدخل login + MFA Authentik. شاشة consent. عودة تلقائية إلى Mattermost، متصل بنجاح. هذا التدفق يحدث في 3-5 ثوانٍ، تجربة مستخدم سلسة بقدر Slack أو Microsoft Teams.

الخطوة 6 — تقييد عبر مجموعة Authentik

Authentik → Application Mattermost → Policy bindings → Group: chat-users (الموظفون). فقط أعضاء هذه المجموعة يمكنهم فتح Mattermost. هذا يسمح بالتحكم الدقيق في الوصول: المستشارون الخارجيون أو الموردون لا يحصلون على وصول تلقائياً، حتى لو كان لديهم حساب Authentik لخدمات أخرى.

الخطوة 7 — تعطيل login email/password

بمجرد اختبار SSO ومضمون لـ 3-5 مستخدمين روَّاد: System Console → Authentication → Email → Enable Sign Up With Email: OFF. كل المستخدمين يُجبَرون على SSO Authentik. الأمن مُعزَّز — لا توجد نقطة ثانية للهجوم (email/password) لأن المصادقة تمر دائماً عبر Authentik مع MFA إجباري.

امتثال ARTCI / CDP / NESA

الخطوة 8 — تفعيل audit logs

System Console → Logging → Enable File Logging: ON. التنسيق: JSON. Path: /var/log/mattermost/audit.log. السجلات تشمل: login، logout، message_post، message_edit، message_delete، channel_create، channel_join، file_upload. هذه الأحداث ضرورية للـ audit التنظيمي.

الخطوة 9 — استيعاب Loki

Promtail يجمع /var/log/mattermost/audit.log ويرسل إلى Loki. dashboard Grafana مخصص للتصور. هذه البنية المركزية تسمح بالاحتفاظ بالسجلات لفترات طويلة (سنة أو أكثر) دون إغراق خادم Mattermost.

# Promtail config
scrape_configs:
  - job_name: mattermost
    static_configs:
      - targets: [localhost]
        labels:
          job: mattermost-audit
          __path__: /var/log/mattermost/audit.log

الخطوة 10 — احتفاظ سنة كحد أدنى

Loki retention: سنة لـ audit logs. التكلفة: ~ 5 جيجابايت تخزين / 30 شخصاً / سنة، ضئيلة. هذه السنة من السجلات تستجيب لمتطلبات معظم المنظمين الإفريقيين. ARTCI الإيفواري وCDP السنغالي وCDP المغربي يطلبون عموماً سنة كحد أدنى من السجلات للتدقيق السنوي.

الخطوة 11 — تصدير للتدقيق السنوي

قبل التدقيق السنوي، حضر استعلام LogQL:

{job="mattermost-audit"} | json | event_type="login" | __error__=""

تصدير CSV عبر Grafana Explore. سلِّمه إلى المُدقِّق ARTCI/CDP عند الطلب. هذه العملية تستغرق 30 دقيقة فقط، مقابل أسابيع من البحث اليدوي في السجلات إذا كانت موزعة.

الأخطاء الشائعة

الخطأ السبب الحل
«GitLab user not found» Property Mapping مفقود كوّن mapping gitlab-compat
حلقة إعادة توجيه Cookie domain التحقق من base domain مشترك
Email غير مُملوء مسبقاً Scope email مفقود أضف scope email Provider Authentik
السجلات غير مُولَّدة Logging معطل System Console enable logging
Loki لا يستلم Promtail سيئ التكوين التحقق من path access
Disk ممتلئ لا logrotate كوِّن logrotate أسبوعياً

التكيف مع السياق المغاربي وغرب إفريقيا

ثلاث توضيحات. Mattermost Enterprise vs Team Edition. لـ < 50 مستخدم، Team Edition + GitLab OAuth Authentik كافٍ. لـ > 50 مستخدم + SAML إجباري، Enterprise. الفرق في التكلفة كبير: Team Edition مجاني، Enterprise 6,000 USD سنوياً لـ 50 مستخدم. تدقيق ARTCI. ARTCI تطلب عموماً سنة من السجلات تتضمن من اتصل ومتى. Loki retention سنة + تصدير CSV يستجيب. هذا يبسط بشكل كبير عملية التدقيق السنوي. سرية ملفات العملاء. قنوات خاصة Mattermost + 2FA Authentik = أمن مكافئ لمحامي/طبيب. السرية المهنية محفوظة بشكل قانوني في كل لحظة.

دروس الإخوة في المجموعة

الأسئلة المتكررة

SAML ممكن في Team Edition؟ لا. الحل البديل GitLab OAuth عبر Authentik يعمل في 95% من الحالات.

الانتقال إلى Enterprise؟ ممكن لاحقاً. البيانات محفوظة.

Multi-IdP؟ Mattermost يدعم IdP واحداً في كل مرة.

Audit retention 5 سنوات؟ Loki أو Postgres archive cold storage. ~ 25 جيجابايت لـ 5 سنوات.

التوافق HIPAA؟ Mattermost Enterprise يشمل ميزات HIPAA-compliant.

للاستزادة

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité