Integrations & Extensibility
ميثاق يتكامل مع منظومة تطبيقتك المؤسسية عبر معايير مفتوحة — OIDC, SAML, LDAP, SCIM, REST API.
يمكنك استخدام Google كـ Identity Provider إضافي — المستخدمون يسجلون دخولهم بحساب Google المؤسسي.
import أو override# 1. اذهب إلى: https://console.cloud.google.com/apis/credentials
# 2. أنشئ OAuth 2.0 Client ID
# Application type: Web application
# Authorized redirect URI:
# https://your-methaq-server/realms/{realm}/broker/google/endpoint
# 3. سجّل القيم:
Client ID: 123456789-xxxxxxxxxxxxxxxx.apps.googleusercontent.com
Client Secret: GOCSPX-xxxxxxxxxxxxxxxxxxxxxx# Default Roles — تُعطى لكل مستخدم يسجل دخوله بـ Google
- 默认 роль: "google-user"
# For Role mapping via Google groups:
# Identity Provider → Google → YAML config:
{
"groupsClaim": "groups",
"groupsJsonPath": "groups",
"syncMode": "INHERIT"
}
# مثال: Google group "admins" → ميثاق role "admin"تكامل عميق مع Microsoft ecosystem — Azure AD, Microsoft 365, Teams, SharePoint.
Methaq SSOhttps://your-methaq-server/realms/{realm}/broker/azure/endpointopenid, profile, email# Identity Provider → Microsoft
Import URL:
https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration
Client ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Client Secret: ******************** (client secret value)
# Scopes المطلوبة
Scopes: openid profile email
# Sync Mode
Sync Mode: INHERITللتطبيقات التي تدعم تسجيل الدخول بحساب GitHub — شائع في أدوات المطورين.
https://your-methaq-server/realms/{realm}/broker/github/endpoint# في ميثاق:
Client ID: Iv1.xxxxxxxxxxxxxxxx
Client Secret: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# Scopes:
Scopes: read:user user:email
# GitHub لا يوفر groups — جميع المستخدمينgets نفس default roleAdmin REST API يتيح programmatic control الكامل — إدارة المستخدمين، الأدوار، العملاء، والمجموعات.
# Bearer Token — استخدم access token من OIDC
curl -X GET "https://your-methaq-server/admin/realms/methaq/users" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI..." -H "Content-Type: application/json"
# أو Client Credentials (machine-to-machine)
curl -X POST "https://your-methaq-server/realms/master/protocol/openid-connect/token" -d "grant_type=client_credentials" -d "client_id=admin-cli" -d "client_secret=YOUR_CLIENT_SECRET"| Method | Endpoint | الوصف |
|---|---|---|
| GET | /admin/realms/{realm}/users | قائمة المستخدمين |
| POST | /admin/realms/{realm}/users | إنشاء مستخدم |
| GET | /admin/realms/{realm}/users/{id} | مستخدم واحد |
| PUT | /admin/realms/{realm}/users/{id} | تعديل مستخدم |
| DELETE | /admin/realms/{realm}/users/{id} | حذف مستخدم |
| GET | /admin/realms/{realm}/roles | قائمة الأدوار |
| POST | /admin/realms/{realm}/users/{id}/role-mappings | تعيين أدوار |
| GET | /admin/realms/{realm}/clients | قائمة العملاء |
ميثاق يدعم webhooks لإرسال إشعارات فورية عند حدوث أحداث محددة — التكامل مع Slack, Teams, PagerDuty, أو أي نظام مخصص.
تم إنشاء مستخدم جديد
تم تحديث بيانات مستخدم
تم حذف مستخدم
تسجيل دخول ناجح
محاولة تسجيل دخول فاشلة
تم تعيين دور جديد لمستخدم
# Admin Console → Realm Settings → Webhooks
# أو REST API:
POST /admin/realms/{realm}/webhooks
Content-Type: application/json
{
"name": "slack-alerts",
"url": "https://hooks.slack.com/services/xxx/yyy/zzz",
"events": ["login.failure", "user.deleted", "role.assigned"],
"headers": {
"Authorization": "Bearer xxxxx"
},
"format": "json",
"active": true
}{
"event": "login.failure",
"realm": "methaq",
"timestamp": "2026-04-24T10:30:00.000Z",
"data": {
"user": "johndoe",
"ipAddress": "198.51.100.14",
"attemptCount": 3,
"reason": "invalid_user_credentials"
}
}System for Cross-domain Identity Management (SCIM) يتيح provisioning التلقائي للمستخدمين من مزود هوية خارجي (مثل Azure AD أو Okta) إلى ميثاق.
# Admin Console → Realm Settings → Keys
# Enable "X509 Certificate Authentification" for SCIM client
# أنشئ عميل SCIM:
# Clients → Create client
# Client ID: scim-api
# Client Protocol: openid-connect
# Enable "Service Accounts" ON
# من Credentials: Register SCIM Auth MethodBase URL: https://your-methaq-server/scim/v2/{realm}
GET /Users # قائمة المستخدمين
POST /Users # إنشاء مستخدم
GET /Users/{id} # مستخدم واحد
PUT /Users/{id} # تحديث كامل
PATCH /Users/{id} # تحديث جزئي
DELETE /Users/{id} # حذف مستخدم
GET /Groups # قائمة المجموعات
POST /Groups # إنشاء مجموعة{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"userName": "johndoe@company.com",
"name": {
"givenName": "John",
"familyName": "Doe"
},
"emails": [{ "value": "johndoe@company.com", "primary": true }],
"active": true,
"groups": [
{ "value": "engineers", "display": "Engineering Team" }
],
"externalId": "azure-ad-object-id"
}