- مقدمة
- كيفية الاستخدام
- التخصيص
- واجهات برمجة التطبيقات المدعومة
- كشف الهجوم
- إدارة المصادقة
- شهادة سمة العميل
- الوصول الأولي للعميل
- سياسة تسجيل العميل
- تعيينات دور العميل
- نطاقات العميل
- العملاء
- عنصر
- المجموعات
- موفرو الهوية
- مفتاح
- مخططو البروتوكول
- مدير العوالم
- مخطط الدور
- الأدوار
- الأدوار (حسب المعرف)
- تعيينات النطاق
- موفر تخزين المستخدم
- المستخدمين
- جذر
مقدمة
هذا هو عميل php للاتصال بواجهة برمجة التطبيقات الخاصة بمسؤول keycloak بدون أي صداع.
سمات:
- سهل الاستخدام
- ليست هناك حاجة للحصول على الرمز المميز أو إنشائه - حيث يتم التعامل معه بالفعل بواسطة العميل
- لا حاجة لتحديد أي عناوين URL بخلاف عنوان uri الأساسي
- لا يوجد تشفير/فك تشفير لبيانات json فقط كما تتوقع
يعمل مع Keycloak 7.0+ admin REST API.
https://www.keycloak.org/documentation -> "واجهة برمجة تطبيقات REST للإدارة"
كيفية الاستخدام
1. إنشاء عميل جديد
$ client = Keycloak Admin KeycloakClient:: factory ([
' realm ' => ' master ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
' client_id ' => ' admin-cli ' ,
' baseUri ' => ' http://127.0.0.1:8180 ' ,
]);
منذ الإصدار 0.30، إذا كان عنوان URL الأساسي لـ Keycloak الخاص بك يبدأ بـ auth/
، فأضفه إلى baseUri
(على سبيل المثال http://127.0.0.1:8180/auth/). عنوان URL الأساسي لإصدارات Keycloak من 7 إلى 16 لديه auth/
. في Keycloak 17+، يعتمد الأمر على إعداداتك.
2. استخدمه
$ client -> getUsers ();
//Result
// Array of users
/*
[
[
"id" => "39839a9b-de08-4d2c-b91a-a6ce2595b1f3",
"createdTimestamp" => 1571663375749,
"username" => "admin",
"enabled" => true,
"totp" => false,
"emailVerified" => false,
"disableableCredentialTypes" => [
"password",
],
"requiredActions" => [],
"notBefore" => 0,
"access" => [
"manageGroupMembership" => true,
"view" => true,
"mapRoles" => true,
"impersonate" => true,
"manage" => true,
],
],
]
*/
$ client -> createUser ([
' username ' => ' test ' ,
' email ' => ' [email protected] ' ,
' enabled ' => true ,
' credentials ' => [
[
' type ' => ' password ' ,
' value ' => ' 1234 ' ,
],
],
]);
التخصيص
بيانات الاعتماد المدعومة
من الممكن تغيير نوع بيانات الاعتماد المستخدمة للمصادقة عن طريق تغيير تكوين عميل keycloak.
حاليًا، يتم دعم بيانات الاعتماد التالية
- بيانات اعتماد كلمة المرور، المستخدمة بشكل افتراضي
- للمصادقة مع حساب المستخدم
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' password ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
]);
- بيانات اعتماد العميل
- للمصادقة مع حساب خدمة العملاء
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' client_credentials ' ,
' client_id ' => ' admin-cli ' ,
' client_secret ' => ' 84ab3d98-a0c3-44c7-b532-306f222ce1ff ' ,
]);
حقن الوسيطة
من الممكن إدخال البرنامج الوسيط لعميل Guzzle في تكوين عميل keycloak باستخدام الكلمة الأساسية middlewares
.
على سبيل المثال:
use GuzzleHttp Middleware ;
use Psr Http Message RequestInterface ;
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' middlewares ' => [
// throws exceptions when request fails
Middleware:: httpErrors (),
// other custom middlewares
Middleware:: mapRequest ( function ( RequestInterface $ request ) {
return $ request ;
}),
],
]);
تغيير كيفية حفظ الرمز المميز وتخزينه
بشكل افتراضي، يتم حفظ الرمز المميز في وقت التشغيل. وهذا يعني أنه لا يتم استخدام الرمز المميز السابق عند إنشاء عميل جديد.
يمكنك تخصيص كيفية تخزين الرمز المميز في تكوين العميل من خلال تنفيذ TokenStorage
الخاص بك، وهي واجهة تصف كيفية تخزين الرمز المميز واسترجاعه.
class CustomTokenStorage implements TokenStorage
{
public function getToken ()
{
// TODO
}
public function saveToken ( array $ token )
{
// TODO
}
}
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' token_storage ' => new CustomTokenStorage (),
]);
نقاط النهاية Keycloak المخصصة
من الممكن إدخال عمليات خدمة Guzzle في تكوين عميل keycloak باستخدام الكلمة الأساسية custom_operations
. بهذه الطريقة يمكنك توسيع نقاط النهاية المدعومة المضمنة باستخدام التخصيص.
$ client = KeycloakClient:: factory ([
...
' custom_operations ' => [
' getUsersByAttribute ' => [
' uri ' => ' /auth/realms/{realm}/userapi-rest/users/search-by-attr ' ,
' description ' => ' Get users by attribute Returns a list of users, filtered according to query parameters ' ,
' httpMethod ' => ' GET ' ,
' parameters ' => [
' realm ' => [
' location ' => ' uri ' ,
' description ' => ' The Realm name ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' attr ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
' value ' => [
' location ' => ' query ' ,
' type ' => ' string ' ,
' required ' => true ,
],
],
],
]
]);
واجهات برمجة التطبيقات المدعومة
كشف الهجوم
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
امسح أي فشل في تسجيل دخول المستخدم لجميع المستخدمين. يمكن أن يؤدي ذلك إلى تحرير المستخدمين المعطلين مؤقتًا | ClearAllLoginFailures | ✔️ |
احصل على حالة اسم المستخدم في اكتشاف القوة الغاشمة | getBruteForceUserStatus | ✔️ |
قم بمسح أي فشل في تسجيل دخول المستخدم للمستخدم، وهذا يمكن أن يؤدي إلى تحرير مستخدم معطل مؤقتًا | ClearUserLoginFailures | ✔️ |
إدارة المصادقة
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
الحصول على موفري المصادقات إرجاع قائمة موفري المصادقات. | getAuthenticatorProviders | ✔️ |
الحصول على موفري مصادقة العميل إرجاع قائمة بموفري مصادقة العميل. | getClientAuthenticatorProviders | ✔️ |
احصل على وصف تكوين موفر المصادقة | getAuthenticatorConfigInfo | ✔️ |
الحصول على تكوين المصادقة | getAuthenticatorConfig | ✔️ |
تحديث تكوين المصادقة | updateAuthenticatorConfig | ✔️ |
حذف تكوين المصادقة | deleteAuthenticatorConfig | ✔️ |
إضافة تنفيذ مصادقة جديدة | createAuthenticationExecution | ✔️ |
احصل على تنفيذ واحد | getAuthenticationExecution | ✔️ |
حذف التنفيذ | deleteAuthenticationExecution | ✔️ |
تحديث التنفيذ بالتكوين الجديد | updateAuthenticationExecution | ✔️ |
أولوية التنفيذ المنخفضة | انخفاض أولوية تنفيذ المصادقة | ✔️ |
رفع أولوية التنفيذ | رفعAuthenticationExecutionPriority | ✔️ |
إنشاء تدفق مصادقة جديد | createAuthenticationFlow | ✔️ |
الحصول على تدفقات المصادقة إرجاع قائمة بتدفقات المصادقة. | getAuthenticationFlows | ✔️ |
انسخ تدفق المصادقة الحالي تحت اسم جديد، ويتم تقديم الاسم الجديد كسمة "newName" لكائن JSON الذي تم تمريره | CopyAuthenticationFlow | ✔️ |
الحصول على عمليات تنفيذ المصادقة للتدفق | getAuthenticationFlowExecutions | ✔️ |
تحديث عمليات تنفيذ المصادقة للتدفق | updateAuthenticationFlowExecutions | ✔️ |
إضافة تنفيذ مصادقة جديد إلى التدفق | createAuthenticationFlowExecution | ✔️ |
أضف تدفقًا جديدًا مع التنفيذ الجديد إلى التدفق الحالي | addAuthenticationFlowExecution | ✔️ |
الحصول على تدفق المصادقة للمعرف | getAuthenticationFlow | ✔️ |
تحديث تدفق المصادقة للمعرف | updateAuthenticationFlow | ✔️ |
حذف تدفق المصادقة | deleteAuthenticationFlow | ✔️ |
الحصول على موفري إجراءات النموذج إرجاع قائمة بموفري إجراءات النموذج. | getFormActionProviders | ✔️ |
الحصول على موفري النماذج إرجاع قائمة بموفري النماذج. | getFormProviders | ✔️ |
احصل على أوصاف التكوين لجميع العملاء | getClientsConfigDescriptions | ✔️ |
تسجيل الإجراءات الجديدة المطلوبة | createRequiredAction | ✔️ |
الحصول على الإجراءات المطلوبة إرجاع قائمة بالإجراءات المطلوبة. | getRequiredActions | ✔️ |
احصل على الإجراء المطلوب للاسم المستعار | getAliasRequiredAction | ✔️ |
تحديث الإجراء المطلوب | updateRequiredAction | ✔️ |
حذف الإجراء المطلوب | deleteRequiredAction | ✔️ |
انخفاض أولوية الإجراء المطلوب | أولوية العمل المطلوبة أقل | ✔️ |
رفع أولوية الإجراء المطلوب | riseRequiredActionPriority | ✔️ |
الحصول على الإجراءات المطلوبة غير المسجلة إرجاع قائمة بالإجراءات المطلوبة غير المسجلة. | getUnregisteredRequiredActions | ✔️ |
شهادة سمة العميل
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
احصل على المعلومات الأساسية (جرب باستخدام attr = "jwt.credential") | getClientKeyInfo | ✔️ |
احصل على ملف تخزين المفاتيح للعميل، والذي يحتوي على مفتاح خاص وشهادة عامة (ملاحظة: اكتب محتوى الرد على الملف) | getClientKeyStore | ✔️ |
إنشاء شهادة جديدة بزوج مفاتيح جديد | createClientCertificate | ✔️ |
إنشاء زوج مفاتيح وشهادة جديدين، والحصول على ملف المفتاح الخاص. إنشاء زوج مفاتيح وشهادة وتقديم المفتاح الخاص بتنسيق مخزن مفاتيح محدد. | إنشاءDownloadClientCertificate | ✔️ |
تحميل الشهادة والمفتاح الخاص في نهاية المطاف | تحميلClientCertificateAndPrivateKey | ✔️ |
تحميل الشهادة فقط، وليس المفتاح الخاص | تحميلClientCertificateOnly | ✔️ |
الوصول الأولي للعميل
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
قم بإنشاء رمز وصول أولي جديد. | createClientInitialAccessToken | ✔️ |
الحصول على /{realm}/clients-initial-access | getClientInitialAccessTokens | ✔️ |
حذف /{realm}/clients-initial-access/{id} | deleteClientInitialAccessToken | ✔️ |
سياسة تسجيل العميل
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
المسار الأساسي لموفري الاسترداد مع ملء configProperties بشكل صحيح | getClientRegistrationPolicyProviders | ✔️ |
تعيينات دور العميل
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
أضف الأدوار على مستوى العميل إلى تعيين دور المجموعة | addGroupClientRoleMappings | ✔️ |
احصل على تعيينات الأدوار على مستوى العميل للمجموعة والتطبيق | getGroupClientRoleMappings | ✔️ |
حذف الأدوار على مستوى العميل من تعيين أدوار المجموعة | deleteGroupClientRoleMappings | ✔️ |
احصل على الأدوار المتاحة على مستوى العميل والتي يمكن تعيينها للمجموعة | getAvailableGroupClientRoleMappings | ✔️ |
احصل على تعيينات أدوار فعالة على مستوى العميل. يؤدي هذا إلى تكرار أي أدوار مركبة للمجموعات | getGroupClientRoleMappingsWithComposite | ✔️ |
أضف الأدوار على مستوى العميل إلى تعيين دور المستخدم | addUserClientRoleMappings | ✔️ |
احصل على تعيينات الأدوار على مستوى العميل للمستخدم والتطبيق | getUserClientRoleMappings | ✔️ |
حذف الأدوار على مستوى العميل من تعيين دور المستخدم | deleteUserClientRoleMappings | ✔️ |
احصل على الأدوار المتاحة على مستوى العميل والتي يمكن تعيينها للمستخدم | getAvailableUserClientRoleMappings | ✔️ |
احصل على تعيينات أدوار فعالة على مستوى العميل. يؤدي هذا إلى تكرار أي أدوار مركبة للمستخدمين | getUserClientRoleMappingsWithComposite | ✔️ |
نطاقات العميل
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء نطاق عميل جديد يجب أن يكون اسم نطاق العميل فريدًا! | createClientScope | ✔️ |
الحصول على نطاقات العميل التي تنتمي إلى المجال إرجاع قائمة بنطاقات العميل التي تنتمي إلى المجال | getClientScopes | ✔️ |
الحصول على تمثيل لنطاق العميل | getClientScope | ✔️ |
تحديث نطاق العميل | updateClientScope | ✔️ |
حذف نطاق العميل | deleteClientScope | ✔️ |
العملاء
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء عميل جديد يجب أن يكون معرف العميل الخاص بالعميل فريدًا! | createClient | ✔️ |
الحصول على عملاء ينتمون إلى المجال إرجاع قائمة العملاء الذين ينتمون إلى المجال | getClients | ✔️ |
الحصول على تمثيل العميل | getClient | ✔️ |
قم بتحديث العميل | updateClient | ✔️ |
حذف العميل | deleteClient | ✔️ |
توليد سر جديد للعميل | createClientSecret | ✔️ |
احصل على سر العميل | getClientSecret | ✔️ |
الحصول على نطاقات العميل الافتراضية. | getClientDefaultScopes | ✔️ |
قم بتعيين نطاق العميل كنطاق افتراضي | setClientScopeAsDefault | ✔️ |
إزالة نطاق العميل من النطاقات الافتراضية | RemoveClientScopeAsDefault | ✔️ |
قم بإنشاء JSON مع حمولة مثال لرمز الوصول | getClientExampleAccessToken | ✔️ |
قائمة إرجاع لجميع مخططي البروتوكولات، والتي سيتم استخدامها عند إنشاء الرموز المميزة الصادرة لعميل معين. | getClientProtocolMappers | ✔️ |
احصل على تخطيط نطاق فعال لجميع أدوار حاوية دور معينة، والتي يُسمح لهذا العميل فعليًا بالحصول عليها في AccessToken الصادر له. | getClientAllowedRoleMappingsInContainer | ✔️ |
احصل على الأدوار التي ليس لدى هذا العميل مجال لها ولا يمكنه الحصول عليها في AccessToken الصادر له. | getClientNotAllowedRoleMappingsInContainer | ✔️ |
يتطلب إنشاء تكوين محول العميل أحد هذه العناصر (keycloak-oidc-keycloak-json، keycloak-oidc-jboss-subsystem-cli، keycloak-oidc-jboss-subsystem، keycloak-saml، keycloak-saml-subsystem-cli، keycloak-saml -النظام الفرعي) | getClientInstallationConfiguration | ✔️ |
قم بإرجاع كائن يوضح ما إذا كان قد تم تهيئة أذونات تفويض العميل أم لا ومرجعًا | getClientAuthorizationPermissionsStatus | ✔️ |
تحديث تهيئة أذونات تفويض العميل والمرجع | updateClientAuthorizationPermissionsStatus | ✔️ |
تسجيل عقدة نظام المجموعة مع العميل تسجيل عقدة نظام المجموعة يدويًا لهذا العميل - عادةً لا تكون هناك حاجة للاتصال بهذا مباشرة حيث يجب على المحول التعامل مع ذلك عن طريق إرسال طلب التسجيل إلى Keycloak | RegisterClientClusterNode | ✔️ |
إلغاء تسجيل عقدة نظام المجموعة من العميل | unregisterClientClusterNode | ✔️ |
الحصول على عدد جلسات التطبيق دون اتصال بالإنترنت يُرجع عددًا من جلسات المستخدم غير المتصلة المرتبطة بهذا العميل { "count": number } | getClientOfflineSessionsCount | ✔️ |
الحصول على جلسات دون اتصال للعميل إرجاع قائمة بجلسات المستخدم دون اتصال المرتبطة بهذا العميل | getClientOfflineSessions | ✔️ |
احصل على نطاقات العميل الاختيارية. | getClientOptionalScopes | ✔️ |
تعيين نطاق اختياري للعميل | تعيينClientOptionalScope | ✔️ |
إزالة تعيين النطاق الاختياري للعميل | unsignClientOptionalScope | ✔️ |
ادفع سياسة الإلغاء الخاصة بالعميل إلى عنوان URL المسؤول الخاص به. إذا كان لدى العميل عنوان URL مسؤول، فادفع سياسة الإلغاء إليه. | PushClientRevocationPolicy | ✔️ |
قم بإنشاء رمز وصول جديد للتسجيل للعميل | createClientRegistrationToken | ✔️ |
الحصول على مستخدم مخصص لحساب الخدمة | getServiceAccountDedicatedUser | ✔️ |
الحصول على عدد جلسات التطبيق يُرجع عددًا من جلسات المستخدم المرتبطة بهذا العميل { "count": number } | getClientSessionsCount | ✔️ |
اختبار ما إذا كانت عقد المجموعة المسجلة متاحة. اختبارات التوفر عن طريق إرسال طلب "ping" إلى كافة عقد المجموعة. | testClientNodesAvailability | ✔️ |
الحصول على جلسات المستخدم للعميل إرجاع قائمة جلسات المستخدم المرتبطة بهذا العميل | getClientSessions | ✔️ |
عنصر
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء مكون جديد | createComponent | ✔️ |
الحصول على المكونات | getComponents | ✔️ |
الحصول على المكون | getComponent | ✔️ |
تحديث المكون | updateComponent | ✔️ |
حذف المكون | deleteComponent | ✔️ |
قائمة بأنواع المكونات الفرعية المتاحة للتكوين لمكون أصل معين. | getComponentSubTypes | ✔️ |
المجموعات
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء أو إضافة مجموعة مجال ذات مستوى أعلى تعيين أو إنشاء طفل. | createGroup | ✔️ |
الحصول على التسلسل الهرمي للمجموعة. | getGroups | ✔️ |
إرجاع أعداد المجموعات. | getGroupsCount | ✔️ |
احصل على المجموعة | getGroup | ✔️ |
الحصول على أطفال المجموعة (مجموعات فرعية) | getGroupChildren | ✔️ |
تحديث المجموعة، ويتجاهل المجموعات الفرعية. | updateGroup | ✔️ |
حذف المجموعة | RemoveGroup | ✔️ |
تعيين أو إنشاء طفل. | createChildGroup | ✔️ |
قم بإرجاع كائن يوضح ما إذا كان قد تم تهيئة أذونات تفويض العميل أم لا ومرجعًا | getGroupManagementPermissions | ✔️ |
كائن إرجاع يوضح ما إذا كان قد تم تهيئة أذونات تفويض العميل أم لا ومرجعًا | updateGroupManagementPermissions | ✔️ |
الحصول على المستخدمين يقوم بإرجاع قائمة المستخدمين، بعد تصفيتها وفقًا لمعلمات الاستعلام | getGroupMembers | ✔️ |
موفري الهوية
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
استيراد موفر الهوية من ملف JSON الذي تم تحميله | importIdentityProvider | ✔️ |
إنشاء موفر هوية جديد | createIdentityProvider | ✔️ |
احصل على موفري الهوية | getIdentityProviders | ✔️ |
الحصول على مزود الهوية | getIdentityProvider | ✔️ |
قم بتحديث موفر الهوية | updateIdentityProvider | ✔️ |
حذف موفر الهوية | deleteIdentityProvider | ✔️ |
تصدير تكوين الوسيط العام لموفر الهوية | exportIdentityProviderBrokerConfig | ✔️ |
قم بإرجاع كائن يوضح ما إذا كان قد تم تهيئة أذونات تفويض العميل أم لا ومرجعًا | getIdentityProviderManagementPermissions | ✔️ |
قم بإرجاع كائن يوضح ما إذا كان قد تم تهيئة أذونات تفويض العميل أم لا ومرجعًا | updateIdentityProviderManagementPermissions | ✔️ |
الحصول على أنواع مصمم الخرائط لموفر الهوية (يعطي Keycloak استثناءً للإبلاغ عنه) | getIdentityProviderMapperTypes | ✔️ |
إضافة مخطط إلى موفر الهوية | createIdentityProviderMapper | ✔️ |
احصل على مصممي الخرائط لموفر الهوية | getIdentityProviderMappers | ✔️ |
احصل على مخطط الخرائط حسب معرف موفر الهوية | getIdentityProviderMapper | ✔️ |
تحديث مخطط لموفر الهوية (لا يعمل لسبب ما يعطي استثناء Null Pointer) | updateIdentityProviderMapper | ✔️ |
حذف مخطط لموفر الهوية | deleteIdentityProviderMapper | ✔️ |
احصل على موفري الهوية | getIdentityProviderById | ✔️ |
مفتاح
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
الحصول على مفاتيح المجال | getRealmKeys | ✔️ |
مخططو البروتوكول
ملاحظة: يتم إرسال المعرفات كـclientScopeId أوclientId وmapperId، وكل شيء آخر هو تمامًا مثل وثائق keycloak
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء مصممي خرائط متعددين | createClientScopeProtocolMappers | ✔️ |
إنشاء مخطط | createClientScopeProtocolMapper | ✔️ |
احصل على مصممي الخرائط | getClientScopeProtocolMappers | ✔️ |
الحصول على مخطط بواسطة معرف | getClientScopeProtocolMapperById | ✔️ |
قم بتحديث مصمم الخرائط | updateClientScopeProtocolMapper | ✔️ |
احذف مصمم الخرائط | deleteClientScopeProtocolMapper | ✔️ |
احصل على مصممي الخرائط بالاسم لبروتوكول معين | getClientScopeProtocolMappersByProtocolName | ✔️ |
إنشاء مصممي خرائط متعددين | createClientProtocolMappers | ✔️ |
إنشاء مخطط | createClientProtocolMapper | ✔️ |
احصل على مصممي الخرائط | getClientProtocolMappers | ✔️ |
الحصول على مخطط بواسطة معرف | getClientProtocolMapperById | ✔️ |
قم بتحديث مصمم الخرائط | updateClientProtocolMapper | ✔️ |
احذف مصمم الخرائط | deleteClientProtocolMapper | ✔️ |
احصل على مصممي الخرائط بالاسم لبروتوكول معين | getClientProtocolMappersByProtocolName | ✔️ |
مدير العوالم
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
الحصول على عوالم يمكن الوصول إليها إرجاع قائمة بالعوالم التي يمكن الوصول إليها. تتم تصفية القائمة بناءً على المجالات المسموح للمتصل بمشاهدتها. | getRealms | ✔️ |
استيراد مجال يستورد نطاقًا من التمثيل الكامل لهذا المجال. | importRealm | ✔️ |
احصل على تمثيل المستوى الأعلى للمجال ولن يتضمن معلومات متداخلة مثل تمثيلات المستخدم والعميل. | getRealm | ✔️ |
قم بتحديث معلومات المستوى الأعلى للمجال سيتم تجاهل أي معلومات مستخدم أو أدوار أو عميل في التمثيل. | updateRealm | ✔️ |
حذف المجال | deleteRealm | ✔️ |
الحصول على أحداث الإدارة يقوم بإرجاع جميع أحداث الإدارة، أو يقوم بتصفية الأحداث بناءً على معلمات استعلام URL المدرجة هنا | getAdminEvents | ✔️ |
حذف جميع الأحداث الإدارية | this.deleteAdminEvents | ✔️ |
مسح ذاكرة التخزين المؤقت للمفاتيح العامة الخارجية (المفاتيح العامة للعملاء أو موفري الهوية) | ClearExternalPublicKeysCache | ✔️ |
مسح ذاكرة التخزين المؤقت للمجال | ClearRealmCache | ✔️ |
مسح ذاكرة التخزين المؤقت للمستخدم | ClearUserCache | ✔️ |
المسار الأساسي لاستيراد العملاء ضمن هذا المجال. | importClient | ✔️ |
الحصول على إحصائيات جلسة العميل إرجاع خريطة JSON. | getClientsSessionStats | ✔️ |
الحصول على /{realm}/credential-registrators | getCredentialRegistrators | ✔️ |
احصل على نطاقات العميل الافتراضية للمجال. | getDefaultClientScopes | ✔️ |
PUT /{realm}/default-default-client-scopes/{clientScopeId} | setScopeAsDefaultClientScope | ✔️ |
حذف /{realm}/default-default-client-scopes/{clientScopeId} | unsetScopeAsDefaultClientScope | ✔️ |
الحصول على التسلسل الهرمي للمجموعة. | getDefaultGroupHierarchy | ✔️ |
وضع /{realm}/default-groups/{groupId} | setGroupAsDefaultGroup | ✔️ |
حذف /{realm}/default-groups/{groupId} | unsetGroupAsDefaultGroup | ✔️ |
احصل على نطاقات العميل الاختيارية للمجال. | getOptionalClientScopes | ✔️ |
PUT /{realm}/default-Optional-client-scopes/{clientScopeId} | setScopeAsOptionalClientScope | ✔️ |
حذف /{realm}/default-Optional-client-scopes/{clientScopeId} | unsetScopeAsOptionalClientScope | ✔️ |
الحصول على الأحداث يقوم بإرجاع جميع الأحداث أو تصفيتها بناءً على معلمات استعلام URL المدرجة هنا | getAllEvents | ✔️ |
حذف كافة الأحداث | this.deleteAllEvents | ✔️ |
الحصول على تكوين موفر الأحداث إرجاع كائن JSON مع تكوين موفر الأحداث | getEventsConfig | ✔️ |
تحديث موفر الأحداث قم بتغيير موفر الأحداث و/أو تكوينه | updateEventsConfig | ✔️ |
الحصول على مجموعة المستخدمين حسب المسار | getGroupByPath | ✔️ |
الحصول على /{realm}/localization | getLocalizationLocales | ✔️ |
مشاركة /{realm}/localization/{locale} | updateLocalizationTexts | ✔️ |
الحصول على /{realm}/localization/{locale} | getLocalizationTexts | ✔️ |
حذف /{realm}/localization/{locale} | deleteLocalizationTexts | ✔️ |
الحصول على /{realm}/localization/{locale}/{key} | getLocalizationText | ✔️ |
ضع /{realm}/localization/{locale}/{key} | saveLocalizationText | ✔️ |
يزيل كافة جلسات المستخدم. (يطرح Keycloak استثناءً عند استدعاء هذا) | تسجيل الخروجAllUsers | |
تصدير جزئي للمجال الحالي إلى ملف JSON. | PartialExportRealm | ✔️ |
استيراد جزئي من ملف JSON إلى مجال موجود. | PartialImportRealm | ✔️ |
ادفع سياسة الإلغاء الخاصة بالمجال إلى أي عميل لديه عنوان url إداري مرتبط به. (يطرح Keycloak استثناءً عند استدعاء هذا) | PushRevocationPolicy | |
إزالة جلسة مستخدم محددة. | RevocUserSession | ✔️ |
اختبار اتصال LDAP | testLDAPConnection | ✔️ |
اختبار اتصال SMTP مع المستخدم الحالي الذي قام بتسجيل الدخول | testSMTPConnection | ✔️ |
الحصول على أذونات إدارة المستخدم | getUserManagementPermissions | ✔️ |
تحديث أذونات إدارة المستخدم | updateUserManagementPermissions | ✔️ |
مخطط الدور
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
احصل على تعيينات الأدوار | getGroupRoleMappings | ✔️ |
أضف تعيينات الأدوار على مستوى المجال إلى المجموعة | addGlobalRolesToGroup | ✔️ |
احصل على تعيينات الأدوار على مستوى المجال | getGroupRealmRoleMappings | ✔️ |
حذف تعيينات الأدوار على مستوى المجال | deleteGroupRealmRoleMappings | ✔️ |
احصل على الأدوار على مستوى المجال التي يمكن تعيينها | getAvailableGroupRealmRoleMappings | ✔️ |
احصل على تعيينات أدوار فعالة على مستوى المجال سيؤدي ذلك إلى تكرار جميع الأدوار المركبة للحصول على النتيجة. | getEffectiveGroupRealmRoleMappings | ✔️ |
احصل على تعيينات الأدوار | getUserRoleMappings | ✔️ |
إضافة تعيينات الأدوار على مستوى المجال للمستخدم | addGlobalRolesToUser | ✔️ |
احصل على تعيينات الأدوار على مستوى المجال | getUserRealmRoleMappings | ✔️ |
حذف تعيينات الأدوار على مستوى المجال | حذفUserRealmRoleMappings | ✔️ |
احصل على الأدوار على مستوى المجال التي يمكن تعيينها | getAvailableUserRealmRoleMappings | ✔️ |
احصل على تعيينات أدوار فعالة على مستوى المجال سيؤدي ذلك إلى تكرار جميع الأدوار المركبة للحصول على النتيجة. | getEffectiveUserRealmRoleMappings | ✔️ |
الأدوار
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء دور جديد للمجال أو العميل (خاص بالعميل) | createClientRole | ✔️ |
الحصول على جميع الأدوار الخاصة بالمجال أو العميل (خاص بالعميل) | getClientRoles | ✔️ |
الحصول على دور بالاسم (خاص بالعميل) | getClientRole | ✔️ |
تحديث الدور بالاسم (خاص بالعميل) | updateClientRole | ✔️ |
حذف دور بالاسم (خاص بالعميل) | deleteClientRole | ✔️ |
إضافة مركب إلى الدور (خاص بالعميل) | addCompositeRoleToClientRole | ✔️ |
احصل على مكونات الدور (خاص بالعميل) | getClientRoleCompositeRoles | ✔️ |
إزالة الأدوار من مركب الدور (خاص بالعميل) | deleteCompositeRoleFromClientRole | ✔️ |
أدوار على مستوى التطبيق للتطبيق المحدد لمركب الدور (خاص بالعميل) | getClientRoleCompositeRolesForClient | ✔️ |
احصل على أدوار على مستوى المجال لمركب الدور (خاص بالعميل) | getClientRoleCompositeRolesForRealm | ✔️ |
إرجاع قائمة المجموعات التي لها اسم الدور المحدد (خاص بالعميل) | getClientRoleGroups | ✔️ |
كائن إرجاع يوضح ما إذا كان قد تم تهيئة أذونات مصادقة الدور أم لا ومرجع (خاص بالعميل) | getClientRoleManagementPermissions | ✔️ |
كائن تحديث يوضح ما إذا كان قد تم تهيئة أذونات مصادقة الدور أم لا ومرجع (خاص بالعميل) | updateClientRoleManagementPermissions | ✔️ |
إرجاع قائمة المستخدمين الذين لديهم اسم الدور المحدد (خاص بالعميل) | getClientRoleUsers | ✔️ |
قم بإنشاء دور جديد للمجال أو العميل | createRealmRole | ✔️ |
الحصول على جميع الأدوار للمجال أو العميل | getRealmRoles | ✔️ |
الحصول على دور بالاسم | getRealmRole | ✔️ |
قم بتحديث الدور بالاسم | updateRealmRole | ✔️ |
حذف الدور بالاسم | deleteRealmRole | ✔️ |
أضف مركبًا إلى الدور | addCompositeRoleToRealmRole | ✔️ |
الحصول على مركبات الدور | getRealmRoleCompositeRoles | ✔️ |
قم بإزالة الأدوار من مركب الدور | deleteCompositeRoleFromRealmRole | ✔️ |
أدوار على مستوى التطبيق للتطبيق المحدد لمركب الدور | getRealmRoleCompositeRolesForClient | ✔️ |
احصل على أدوار على مستوى المجال لمركب الدور | getRealmRoleCompositeRolesForRealm | ✔️ |
إرجاع قائمة المجموعات التي لها اسم الدور المحدد | getRealmRoleGroups | ✔️ |
قم بإرجاع كائن يوضح ما إذا كانت أذونات مصادقة الدور قد تمت تهيئةها أم لا ومرجعًا | getRealmRoleManagementPermissions | ✔️ |
قم بتحديث الكائن الذي يوضح ما إذا كانت أذونات مصادقة الدور قد تمت تهيئةها أم لا ومرجعًا | updateRealmRoleManagementPermissions | ✔️ |
إرجاع قائمة المستخدمين الذين لديهم اسم الدور المحدد | getRealmRoleUsers | ✔️ |
الأدوار (حسب المعرف)
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
احصل على تمثيل دور محدد | getRealmRoleById | ✔️ |
قم بتحديث الدور | updateRealmRoleById | ✔️ |
احذف الدور | deleteRealmRoleById | ✔️ |
اجعل الدور دورًا مركبًا من خلال ربط بعض الأدوار الفرعية | addCompositeRoleToRealmRoleByRoleId | ✔️ |
الحصول على أبناء الدور يُرجع مجموعة من أبناء الدور بشرط أن يكون الدور مركبًا. | getRealmRoleCompositeRolesByRoleId | ✔️ |
إزالة مجموعة من الأدوار من مركب الدور | deleteCompositeRoleFromRealmRoleByRoleId | ✔️ |
احصل على الأدوار على مستوى العميل للعميل الموجودة في الدور المركب | getRealmRoleCompositeRolesForClientByRoleId | ✔️ |
احصل على الأدوار على مستوى المجال الموجودة في تركيبة الدور | getRealmRoleCompositeRolesForRealmByRoleId | ✔️ |
قم بإرجاع كائن يوضح ما إذا كانت أذونات مصادقة الدور قد تمت تهيئةها أم لا ومرجعًا | getRealmRoleManagementPermissionsByRoleId | ✔️ |
قم بإرجاع كائن يوضح ما إذا كانت أذونات مصادقة الدور قد تمت تهيئةها أم لا ومرجعًا | updateRealmRoleManagementPermissionsByRoleId | ✔️ |
تعيينات النطاق
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
الحصول على كافة تعيينات النطاق للعميل | | |
أضف الأدوار على مستوى العميل إلى نطاق العميل | | |
الحصول على الأدوار المرتبطة بنطاق العميل وإرجاع الأدوار للعميل. | | |
قم بإزالة الأدوار على مستوى العميل من نطاق العميل. | | |
الأدوار المتاحة على مستوى العميل تُرجع أدوار العميل التي يمكن ربطها بنطاق العميل | | |
الحصول على أدوار العميل الفعالة إرجاع أدوار العميل المرتبطة بنطاق العميل. | | |
أضف مجموعة من الأدوار على مستوى المجال إلى نطاق العميل | | |
احصل على الأدوار على مستوى المجال المرتبطة بنطاق العميل | | |
إزالة مجموعة من الأدوار على مستوى المجال من نطاق العميل | | |
احصل على الأدوار على مستوى المجال المتاحة لإرفاقها بنطاق هذا العميل | | |
احصل على أدوار فعالة على مستوى المجال مرتبطة بنطاق العميل. ما يفعله هذا هو تكرار أي أدوار مركبة مرتبطة بنطاق العميل وإضافة الأدوار إلى هذه القوائم. | | |
الحصول على كافة تعيينات النطاق للعميل | | |
أضف الأدوار على مستوى العميل إلى نطاق العميل | | |
الحصول على الأدوار المرتبطة بنطاق العميل وإرجاع الأدوار للعميل. | | |
قم بإزالة الأدوار على مستوى العميل من نطاق العميل. | | |
الأدوار المتاحة على مستوى العميل تُرجع أدوار العميل التي يمكن ربطها بنطاق العميل | | |
الحصول على أدوار العميل الفعالة إرجاع أدوار العميل المرتبطة بنطاق العميل. | | |
أضف مجموعة من الأدوار على مستوى المجال إلى نطاق العميل | | |
احصل على الأدوار على مستوى المجال المرتبطة بنطاق العميل | | |
إزالة مجموعة من الأدوار على مستوى المجال من نطاق العميل | | |
احصل على الأدوار على مستوى المجال المتاحة لإرفاقها بنطاق هذا العميل | | |
احصل على أدوار فعالة على مستوى المجال مرتبطة بنطاق العميل. ما يفعله هذا هو تكرار أي أدوار مركبة مرتبطة بنطاق العميل وإضافة الأدوار إلى هذه القوائم. | | |
موفر تخزين المستخدم
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
تحتاج إلى ذلك حتى تتمكن وحدة تحكم المشرف من عرض اسم الموفر البسيط عند عرض تفاصيل العميل KEYCLOAK-4328 | | |
تحتاج إلى ذلك حتى تتمكن وحدة تحكم المشرف من عرض اسم الموفر البسيط عند عرض تفاصيل المستخدم KEYCLOAK-4328 | | |
إزالة المستخدمين المستوردين | | |
تشغيل مزامنة المستخدمين يمكن أن يكون الإجراء "triggerFullSync" أو "triggerChangedUsersSync" | | |
قم بإلغاء ربط المستخدمين المستوردين من موفر التخزين | | |
مزامنة المشغل لبيانات مصمم الخرائط المتعلقة باتجاه مخطط ldap (الأدوار، المجموعات، ...) هي "fedToKeycloak" أو "keycloakToFed" | | |
المستخدمين
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
إنشاء مستخدم جديد يجب أن يكون اسم المستخدم فريدًا. | createUser | ✔️ |
الحصول على المستخدمين يُرجع قائمة بالمستخدمين، بعد تصفيتهم وفقًا لمعلمات الاستعلام | getUsers | ✔️ |
احصل على /{realm}/users/count | getUserCount | ✔️ |
الحصول على تمثيل للمستخدم | getUser | ️️️✔️ |
قم بتحديث المستخدم | updateUser | ️️️✔️ |
حذف المستخدم | حذف المستخدم | ️️️✔️ |
الحصول على الموافقات الممنوحة من قبل المستخدم | | ️✔️ |
إبطال الموافقة والرموز غير المتصلة بالإنترنت لعميل معين من المستخدم | | |
تعطيل كافة بيانات الاعتماد لمستخدم من نوع معين | | |
إرسال بريد إلكتروني لتحديث الحساب إلى المستخدم يحتوي البريد الإلكتروني على رابط يمكن للمستخدم النقر عليه لتنفيذ مجموعة من الإجراءات المطلوبة. | تنفيذ الإجراءاتالبريد الإلكتروني | ✔️ |
احصل على تسجيلات الدخول الاجتماعية المرتبطة بالمستخدم | | ✔️ |
إضافة موفر تسجيل الدخول الاجتماعي للمستخدم | | ✔️ |
قم بإزالة موفر تسجيل الدخول الاجتماعي من المستخدم | | ✔️ |
احصل على /{realm}/users/{id}/groups | getUserGroups | ✔️ |
الحصول على /{realm}/users/{id}/groups/count | getUserGroupsCount | ✔️ |
ضع /{realm}/users/{id}/groups/{groupId} | addUserToGroup | ✔️ |
حذف /{realm}/users/{id}/groups/{groupId} | deleteUserFromGroup | ✔️ |
انتحال شخصية المستخدم | impersonateUser | ✔️ |
قم بإزالة جميع جلسات المستخدم المرتبطة بالمستخدم، وأرسل أيضًا إشعارًا إلى جميع العملاء الذين لديهم عنوان URL مسؤول لإبطال الجلسات لمستخدم معين. | تسجيل الخروجUser | ✔️ |
احصل على جلسات غير متصلة بالإنترنت مرتبطة بالمستخدم والعميل | | |
إزالة TOTP من المستخدم | | |
إعداد كلمة مرور جديدة للمستخدم. | إعادة تعيين كلمة المرور | ✔️ |
إرسال بريد إلكتروني للتحقق من البريد الإلكتروني إلى المستخدم يحتوي البريد الإلكتروني على رابط يمكن للمستخدم النقر عليه للتحقق من عنوان بريده الإلكتروني. | إرسال التحقق من البريد الإلكتروني | ✔️ |
الحصول على الجلسات المرتبطة بالمستخدم | getUserSessions | ✔️ |
الحصول على بيانات الاعتماد المرتبطة بالمستخدم | getUserCredentials | ✔️ |
حذف بيانات الاعتماد المرتبطة بالمستخدم | deleteUserCredential | ✔️ |
جذر
واجهة برمجة التطبيقات | اسم الوظيفة | المدعومة |
---|
احصل على السمات ومقدمي الخدمات الاجتماعية وموفري المصادقة ومستمعي الأحداث المتوفرة على هذا الخادم | | |
الاختبار المبدئي لـ CORS | | |