📍 المقالة الرئيسية للمجموعة: 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.
للاستزادة
- 🔝 العودة للمرجع: الدليل الكامل Mattermost 2026
- وثائق SSO: docs.mattermost.com/onboard/sso-gitlab