- Einführung
- Wie zu verwenden
- Anpassung
- Unterstützte APIs
- Angriffserkennung
- Authentifizierungsverwaltung
- Client-Attributzertifikat
- Erster Zugriff des Kunden
- Richtlinien zur Kundenregistrierung
- Client-Rollenzuordnungen
- Client-Bereiche
- Kunden
- Komponente
- Gruppen
- Identitätsanbieter
- Schlüssel
- Protokoll-Mapper
- Realms-Administrator
- Rollenzuordnung
- Rollen
- Rollen (nach ID)
- Bereichszuordnungen
- Benutzerspeicheranbieter
- Benutzer
- Wurzel
Einführung
Dies ist ein PHP-Client, mit dem Sie problemlos eine Verbindung zu den Keycloak-Administrator-Rest-APIs herstellen können.
Merkmale:
- Einfach zu bedienen
- Es ist nicht erforderlich, ein Token abzurufen oder zu generieren – es wird bereits vom Client verwaltet
- Es ist nicht erforderlich, andere URLs als die Basis-URI anzugeben
- Keine Kodierung/Dekodierung für JSON, nur Daten wie erwartet
Funktioniert mit der Admin-REST-API von Keycloak 7.0+.
https://www.keycloak.org/documentation -> „Administration REST API“
Wie zu verwenden
1. Neuen Kunden erstellen
$ client = Keycloak Admin KeycloakClient:: factory ([
' realm ' => ' master ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
' client_id ' => ' admin-cli ' ,
' baseUri ' => ' http://127.0.0.1:8180 ' ,
]);
Wenn Ihre Keycloak-Basis-URL seit Version 0.30 mit auth/
beginnt, fügen Sie sie zu baseUri
hinzu (z. B. http://127.0.0.1:8180/auth/). Die Basis-URL für die Keycloak-Versionen 7 bis 16 verfügt systematisch auth/
. Bei Keycloak 17+ hängt es von Ihren Einstellungen ab.
2. Benutze es
$ 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 ' ,
],
],
]);
Anpassung
Unterstützte Anmeldeinformationen
Es ist möglich, den Typ der zur Authentifizierung verwendeten Anmeldeinformationen zu ändern, indem Sie die Konfiguration des Keycloak-Clients ändern.
Derzeit werden die folgenden Anmeldeinformationen unterstützt
- Passwort-Anmeldeinformationen, standardmäßig verwendet
- um sich mit einem Benutzerkonto zu authentifizieren
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' password ' ,
' username ' => ' admin ' ,
' password ' => ' 1234 ' ,
]);
- Anmeldeinformationen des Kunden
- zur Authentifizierung mit einem Client-Dienstkonto
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' grant_type ' => ' client_credentials ' ,
' client_id ' => ' admin-cli ' ,
' client_secret ' => ' 84ab3d98-a0c3-44c7-b532-306f222ce1ff ' ,
]);
Injizieren von Middleware
Mit dem Schlüsselwort middlewares
ist es möglich, die Guzzle-Client-Middleware in die Keycloak-Client-Konfiguration einzufügen.
Zum Beispiel:
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 ;
}),
],
]);
Ändern, wie das Token gespeichert und gespeichert wird
Standardmäßig wird das Token zur Laufzeit gespeichert. Das bedeutet, dass beim Anlegen eines neuen Mandanten der bisherige Token nicht verwendet wird.
Sie können anpassen, wie das Token in der Clientkonfiguration gespeichert wird, indem Sie Ihr eigenes TokenStorage
implementieren, eine Schnittstelle, die beschreibt, wie das Token gespeichert und abgerufen wird.
class CustomTokenStorage implements TokenStorage
{
public function getToken ()
{
// TODO
}
public function saveToken ( array $ token )
{
// TODO
}
}
$ client = Keycloak Admin KeycloakClient:: factory ([
...
' token_storage ' => new CustomTokenStorage (),
]);
Benutzerdefinierte Keycloak-Endpunkte
Es ist möglich, Guzzle Service Operations mit dem Schlüsselwort custom_operations
in die Keycloak-Clientkonfiguration einzufügen. Auf diese Weise können Sie die integrierten unterstützten Endpunkte um benutzerdefinierte erweitern.
$ 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 ,
],
],
],
]
]);
Unterstützte APIs
Angriffserkennung
API | Funktionsname | Unterstützt |
---|
Beheben Sie alle Benutzeranmeldefehler für alle Benutzer. Dadurch können vorübergehend deaktivierte Benutzer freigegeben werden | clearAllLoginFailures | ✔️ |
Rufen Sie den Status eines Benutzernamens bei der Brute-Force-Erkennung ab | getBruteForceUserStatus | ✔️ |
Beheben Sie alle Benutzeranmeldefehler für den Benutzer. Dadurch können vorübergehend deaktivierte Benutzer freigegeben werden | clearUserLoginFailures | ✔️ |
Authentifizierungsverwaltung
API | Funktionsname | Unterstützt |
---|
Authentifikatoranbieter abrufen Gibt eine Liste der Authentifikatoranbieter zurück. | getAuthenticatorProviders | ✔️ |
Client-Authentifikator-Anbieter abrufen Gibt eine Liste der Client-Authentifikator-Anbieter zurück. | getClientAuthenticatorProviders | ✔️ |
Rufen Sie die Konfigurationsbeschreibung des Authentifikatoranbieters ab | getAuthenticatorConfigInfo | ✔️ |
Rufen Sie die Authentifikatorkonfiguration ab | getAuthenticatorConfig | ✔️ |
Aktualisieren Sie die Authentifikatorkonfiguration | updateAuthenticatorConfig | ✔️ |
Authentifikatorkonfiguration löschen | deleteAuthenticatorConfig | ✔️ |
Neue Authentifizierungsausführung hinzufügen | createAuthenticationExecution | ✔️ |
Holen Sie sich eine Einzelausführung | getAuthenticationExecution | ✔️ |
Ausführung löschen | deleteAuthenticationExecution | ✔️ |
Ausführung mit neuer Konfiguration aktualisieren | updateAuthenticationExecution | ✔️ |
Niedrigere Ausführungspriorität | LowerAuthenticationExecutionPriority | ✔️ |
Erhöhen Sie die Priorität der Ausführung | raiseAuthenticationExecutionPriority | ✔️ |
Erstellen Sie einen neuen Authentifizierungsfluss | createAuthenticationFlow | ✔️ |
Authentifizierungsflüsse abrufen Gibt eine Liste der Authentifizierungsflüsse zurück. | getAuthenticationFlows | ✔️ |
Kopieren Sie den vorhandenen Authentifizierungsfluss unter einem neuen Namen. Der neue Name wird als „newName“-Attribut des übergebenen JSON-Objekts angegeben | copyAuthenticationFlow | ✔️ |
Rufen Sie Authentifizierungsausführungen für einen Flow ab | getAuthenticationFlowExecutions | ✔️ |
Authentifizierungsausführungen für einen Flow aktualisieren | updateAuthenticationFlowExecutions | ✔️ |
Fügen Sie einem Flow eine neue Authentifizierungsausführung hinzu | createAuthenticationFlowExecution | ✔️ |
Fügen Sie einen neuen Flow mit neuer Ausführung zum vorhandenen Flow hinzu | addAuthenticationFlowExecution | ✔️ |
Rufen Sie den Authentifizierungsfluss für die ID ab | getAuthenticationFlow | ✔️ |
Authentifizierungsablauf für ID aktualisieren | updateAuthenticationFlow | ✔️ |
Löschen Sie einen Authentifizierungsfluss | deleteAuthenticationFlow | ✔️ |
Formularaktionsanbieter abrufen Gibt eine Liste von Formularaktionsanbietern zurück. | getFormActionProviders | ✔️ |
Formularanbieter abrufen Gibt eine Liste von Formularanbietern zurück. | getFormProviders | ✔️ |
Rufen Sie Konfigurationsbeschreibungen für alle Clients ab | getClientsConfigDescriptions | ✔️ |
Registrieren Sie eine neue erforderliche Aktion | createRequiredAction | ✔️ |
Erforderliche Aktionen abrufen Gibt eine Liste der erforderlichen Aktionen zurück. | getRequiredActions | ✔️ |
Rufen Sie die erforderliche Aktion für den Alias ab | getAliasRequiredAction | ✔️ |
Erforderliche Aktion aktualisieren | updateRequiredAction | ✔️ |
Erforderliche Aktion löschen | deleteRequiredAction | ✔️ |
Niedrigere Priorität der erforderlichen Aktion | LowerRequiredActionPriority | ✔️ |
Erhöhen Sie die Priorität der erforderlichen Aktion | raiseRequiredActionPriority | ✔️ |
Nicht registrierte erforderliche Aktionen abrufen Gibt eine Liste nicht registrierter erforderlicher Aktionen zurück. | getUnregisteredRequiredActions | ✔️ |
Client-Attributzertifikat
API | Funktionsname | Unterstützt |
---|
Schlüsselinformationen abrufen (versuchen Sie es mit attr = „jwt.credential“) | getClientKeyInfo | ✔️ |
Holen Sie sich eine Keystore-Datei für den Client, die den privaten Schlüssel und das öffentliche Zertifikat enthält (Hinweis: Antwortinhalt in eine Datei schreiben) | getClientKeyStore | ✔️ |
Erzeugen Sie ein neues Zertifikat mit neuem Schlüsselpaar | generierenClientCertificate | ✔️ |
Ein neues Schlüsselpaar und ein neues Zertifikat generieren und die private Schlüsseldatei abrufen. Erstellt ein Schlüsselpaar und ein neues Zertifikat und stellt den privaten Schlüssel in einem angegebenen Keystore-Format bereit. | generierenDownloadClientCertificate | ✔️ |
Laden Sie das Zertifikat und ggf. den privaten Schlüssel hoch | uploadClientCertificateAndPrivateKey | ✔️ |
Laden Sie nur das Zertifikat hoch, keinen privaten Schlüssel | uploadClientCertificateOnly | ✔️ |
Erster Zugriff des Kunden
API | Funktionsname | Unterstützt |
---|
Erstellen Sie ein neues Erstzugriffstoken. | createClientInitialAccessToken | ✔️ |
GET /{realm}/clients-initial-access | getClientInitialAccessTokens | ✔️ |
DELETE /{realm}/clients-initial-access/{id} | deleteClientInitialAccessToken | ✔️ |
Richtlinien zur Kundenregistrierung
API | Funktionsname | Unterstützt |
---|
Basispfad für Abrufanbieter mit ordnungsgemäß ausgefüllten configProperties | getClientRegistrationPolicyProviders | ✔️ |
Client-Rollenzuordnungen
API | Funktionsname | Unterstützt |
---|
Fügen Sie Rollen auf Clientebene zur Gruppenrollenzuordnung hinzu | addGroupClientRoleMappings | ✔️ |
Rufen Sie Rollenzuordnungen auf Clientebene für die Gruppe und die App ab | getGroupClientRoleMappings | ✔️ |
Löschen Sie Rollen auf Clientebene aus der Gruppenrollenzuordnung | deleteGroupClientRoleMappings | ✔️ |
Rufen Sie verfügbare Rollen auf Clientebene ab, die der Gruppe zugeordnet werden können | getAvailableGroupClientRoleMappings | ✔️ |
Erhalten Sie effektive Rollenzuordnungen auf Clientebene. Dadurch werden alle zusammengesetzten Rollen für Gruppen rekursiv | getGroupClientRoleMappingsWithComposite | ✔️ |
Fügen Sie der Benutzerrollenzuordnung Rollen auf Clientebene hinzu | addUserClientRoleMappings | ✔️ |
Rufen Sie Rollenzuordnungen auf Clientebene für den Benutzer und die App ab | getUserClientRoleMappings | ✔️ |
Löschen Sie Rollen auf Clientebene aus der Benutzerrollenzuordnung | deleteUserClientRoleMappings | ✔️ |
Rufen Sie verfügbare Rollen auf Clientebene ab, die dem Benutzer zugeordnet werden können | getAvailableUserClientRoleMappings | ✔️ |
Erhalten Sie effektive Rollenzuordnungen auf Clientebene. Dadurch werden alle zusammengesetzten Rollen für Benutzer rekursiv | getUserClientRoleMappingsWithComposite | ✔️ |
Client-Bereiche
API | Funktionsname | Unterstützt |
---|
Erstellen Sie einen neuen Clientbereich. Der Name des Clientbereichs muss eindeutig sein! | createClientScope | ✔️ |
Client-Bereiche abrufen, die zum Bereich gehören. Gibt eine Liste der Client-Bereiche zurück, die zum Bereich gehören | getClientScopes | ✔️ |
Erhalten Sie eine Darstellung des Clientbereichs | getClientScope | ✔️ |
Aktualisieren Sie den Clientbereich | updateClientScope | ✔️ |
Löschen Sie den Clientbereich | deleteClientScope | ✔️ |
Kunden
API | Funktionsname | Unterstützt |
---|
Erstellen Sie einen neuen Kunden. Die client_id des Kunden muss eindeutig sein! | createClient | ✔️ |
Clients abrufen, die zum Bereich gehören. Gibt eine Liste der Clients zurück, die zum Bereich gehören | getClients | ✔️ |
Erhalten Sie eine Vertretung des Kunden | getClient | ✔️ |
Aktualisieren Sie den Client | updateClient | ✔️ |
Löschen Sie den Client | deleteClient | ✔️ |
Generieren Sie ein neues Geheimnis für den Client | genericClientSecret | ✔️ |
Holen Sie sich das Client-Geheimnis | getClientSecret | ✔️ |
Rufen Sie Standard-Clientbereiche ab. | getClientDefaultScopes | ✔️ |
Legen Sie den Clientbereich als Standardbereich fest | setClientScopeAsDefault | ✔️ |
Entfernen Sie den Clientbereich aus den Standardbereichen | RemoveClientScopeAsDefault | ✔️ |
Erstellen Sie JSON mit der Nutzlast eines Beispielzugriffstokens | getClientExampleAccessToken | ✔️ |
Gibt eine Liste aller Protokoll-Mapper zurück, die beim Generieren von für einen bestimmten Client ausgegebenen Token verwendet werden. | getClientProtocolMappers | ✔️ |
Erhalten Sie eine effektive Bereichszuordnung aller Rollen eines bestimmten Rollencontainers, die dieser Client de facto im für ihn ausgestellten AccessToken haben darf. | getClientAllowedRoleMappingsInContainer | ✔️ |
Holen Sie sich Rollen, für die dieser Client keinen Spielraum hat und die er nicht im für ihn ausgestellten AccessToken haben kann. | getClientNotAllowedRoleMappingsInContainer | ✔️ |
Für die Generierung der Client-Adapterkonfiguration ist eine davon erforderlich (keycloak-oidc-keycloak-json, keycloak-oidc-jboss-subsystem-cli, keycloak-oidc-jboss-subsystem, keycloak-saml, keycloak-saml-subsystem-cli, keycloak-saml -Teilsystem) | getClientInstallationConfiguration | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Client-Autorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | getClientAuthorizationPermissionsStatus | ✔️ |
Aktualisieren Sie die Initialisierung der Client-Autorisierungsberechtigungen und eine Referenz | updateClientAuthorizationPermissionsStatus | ✔️ |
Registrieren Sie einen Cluster-Knoten beim Client. Registrieren Sie den Cluster-Knoten manuell bei diesem Client. Normalerweise ist es nicht erforderlich, dies direkt aufzurufen, da der Adapter dies tun sollte, indem er eine Registrierungsanfrage an Keycloak sendet | registerClientClusterNode | ✔️ |
Heben Sie die Registrierung eines Clusterknotens beim Client auf | unregisterClientClusterNode | ✔️ |
Anzahl der Offline-Sitzungen der Anwendung abrufen Gibt die Anzahl der Offline-Benutzersitzungen zurück, die diesem Client zugeordnet sind { "count": number } | getClientOfflineSessionsCount | ✔️ |
Offline-Sitzungen für Client abrufen Gibt eine Liste der mit diesem Client verknüpften Offline-Benutzersitzungen zurück | getClientOfflineSessions | ✔️ |
Erhalten Sie optionale Clientbereiche. | getClientOptionalScopes | ✔️ |
Weisen Sie dem Client einen optionalen Bereich zu | zuweisenClientOptionalScope | ✔️ |
Entfernen Sie die optionale Bereichszuweisung des Clients | unassignClientOptionalScope | ✔️ |
Übertragen Sie die Widerrufsrichtlinie des Clients an seine Administrator-URL. Wenn der Client über eine Administrator-URL verfügt, übertragen Sie die Widerrufsrichtlinie an diese. | pushClientRevocationPolicy | ✔️ |
Generieren Sie ein neues Registrierungszugriffstoken für den Client | generierenClientRegistrationToken | ✔️ |
Besorgen Sie sich einen Benutzer, der dem Dienstkonto zugewiesen ist | getServiceAccountDedicatedUser | ✔️ |
Anzahl der Anwendungssitzungen abrufen Gibt eine Anzahl von Benutzersitzungen zurück, die diesem Client zugeordnet sind { "count": number } | getClientSessionsCount | ✔️ |
Testen Sie, ob registrierte Clusterknoten verfügbar sind. Testen Sie die Verfügbarkeit, indem Sie eine „Ping“-Anfrage an alle Clusterknoten senden. | testClientNodesAvailability | ✔️ |
Benutzersitzungen für Client abrufen Gibt eine Liste der Benutzersitzungen zurück, die diesem Client zugeordnet sind | getClientSessions | ✔️ |
Komponente
API | Funktionsname | Unterstützt |
---|
Neue Komponente erstellen | createComponent | ✔️ |
Holen Sie sich Komponenten | getComponents | ✔️ |
Komponente abrufen | getComponent | ✔️ |
Komponente aktualisieren | updateComponent | ✔️ |
Komponente löschen | deleteComponent | ✔️ |
Liste der Unterkomponententypen, die für eine bestimmte übergeordnete Komponente konfiguriert werden können. | getComponentSubTypes | ✔️ |
Gruppen
API | Funktionsname | Unterstützt |
---|
Erstellen oder fügen Sie ein Top-Level-Realm-Gruppenset hinzu oder erstellen Sie ein untergeordnetes Element. | Gruppe erstellen | ✔️ |
Gruppenhierarchie abrufen. | getGroups | ✔️ |
Gibt die Gruppenanzahl zurück. | getGroupsCount | ✔️ |
Gruppe abrufen | getGroup | ✔️ |
Gruppenkinder (Untergruppen) abrufen | getGroupChildren | ✔️ |
Gruppe aktualisieren, Untergruppen ignorieren. | updateGroup | ✔️ |
Gruppe löschen | Gruppe entfernen | ✔️ |
Kind festlegen oder erstellen. | createChildGroup | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Client-Autorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | getGroupManagementPermissions | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Client-Autorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | updateGroupManagementPermissions | ✔️ |
Benutzer abrufen Gibt eine Liste von Benutzern zurück, gefiltert nach Abfrageparametern | getGroupMembers | ✔️ |
Identitätsanbieter
API | Funktionsname | Unterstützt |
---|
Identitätsanbieter aus hochgeladener JSON-Datei importieren | importIdentityProvider | ✔️ |
Erstellen Sie einen neuen Identitätsanbieter | createIdentityProvider | ✔️ |
Holen Sie sich Identitätsanbieter | getIdentityProviders | ✔️ |
Holen Sie sich den Identitätsanbieter | getIdentityProvider | ✔️ |
Aktualisieren Sie den Identitätsanbieter | updateIdentityProvider | ✔️ |
Löschen Sie den Identitätsanbieter | deleteIdentityProvider | ✔️ |
Exportieren Sie die Konfiguration des öffentlichen Brokers für den Identitätsanbieter | exportIdentityProviderBrokerConfig | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Client-Autorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | getIdentityProviderManagementPermissions | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Client-Autorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | updateIdentityProviderManagementPermissions | ✔️ |
Mapper-Typen für Identitätsanbieter abrufen (Keycloak gibt eine Ausnahmemeldung aus) | getIdentityProviderMapperTypes | ✔️ |
Fügen Sie dem Identitätsanbieter einen Mapper hinzu | createIdentityProviderMapper | ✔️ |
Holen Sie sich Mapper für Identitätsanbieter | getIdentityProviderMappers | ✔️ |
Rufen Sie den Mapper anhand der ID für den Identitätsanbieter ab | getIdentityProviderMapper | ✔️ |
Aktualisieren Sie einen Mapper für den Identitätsanbieter (funktioniert aus irgendeinem Grund nicht und führt zu einer Nullzeiger-Ausnahme). | updateIdentityProviderMapper | ✔️ |
Löschen Sie einen Mapper für den Identitätsanbieter | deleteIdentityProviderMapper | ✔️ |
Holen Sie sich Identitätsanbieter | getIdentityProviderById | ✔️ |
Schlüssel
API | Funktionsname | Unterstützt |
---|
Holen Sie sich Realm-Schlüssel | getRealmKeys | ✔️ |
Protokoll-Mapper
Hinweis: IDs werden als clientScopeId oder clientId und mapperId gesendet, alles andere entspricht der Keycloak-Dokumentation
API | Funktionsname | Unterstützt |
---|
Erstellen Sie mehrere Mapper | createClientScopeProtocolMappers | ✔️ |
Erstellen Sie einen Mapper | createClientScopeProtocolMapper | ✔️ |
Holen Sie sich Mapper | getClientScopeProtocolMappers | ✔️ |
Mapper anhand der ID abrufen | getClientScopeProtocolMapperById | ✔️ |
Aktualisieren Sie den Mapper | updateClientScopeProtocolMapper | ✔️ |
Löschen Sie den Mapper | deleteClientScopeProtocolMapper | ✔️ |
Rufen Sie Mapper nach Namen für ein bestimmtes Protokoll ab | getClientScopeProtocolMappersByProtocolName | ✔️ |
Erstellen Sie mehrere Mapper | createClientProtocolMappers | ✔️ |
Erstellen Sie einen Mapper | createClientProtocolMapper | ✔️ |
Holen Sie sich Mapper | getClientProtocolMappers | ✔️ |
Mapper anhand der ID abrufen | getClientProtocolMapperById | ✔️ |
Aktualisieren Sie den Mapper | updateClientProtocolMapper | ✔️ |
Löschen Sie den Mapper | deleteClientProtocolMapper | ✔️ |
Rufen Sie Mapper nach Namen für ein bestimmtes Protokoll ab | getClientProtocolMappersByProtocolName | ✔️ |
Realms-Administrator
API | Funktionsname | Unterstützt |
---|
Zugängliche Bereiche abrufen Gibt eine Liste der zugänglichen Bereiche zurück. Die Liste wird basierend darauf gefiltert, welche Bereiche der Anrufer anzeigen darf. | getRealms | ✔️ |
Einen Bereich importieren Importiert einen Bereich aus einer vollständigen Darstellung dieses Bereichs. | importRealm | ✔️ |
Rufen Sie die Darstellung der obersten Ebene des Bereichs ab. Sie enthält keine verschachtelten Informationen wie Benutzer- und Clientdarstellungen. | getRealm | ✔️ |
Aktualisieren Sie die Informationen der obersten Ebene des Bereichs. Alle Benutzer-, Rollen- oder Clientinformationen in der Darstellung werden ignoriert. | updateRealm | ✔️ |
Löschen Sie den Bereich | deleteRealm | ✔️ |
Admin-Ereignisse abrufen Gibt alle Admin-Ereignisse zurück oder filtert Ereignisse basierend auf den hier aufgeführten URL-Abfrageparametern | getAdminEvents | ✔️ |
Löschen Sie alle Admin-Ereignisse | deleteAdminEvents | ✔️ |
Cache externer öffentlicher Schlüssel löschen (öffentliche Schlüssel von Clients oder Identitätsanbietern) | clearExternalPublicKeysCache | ✔️ |
Realm-Cache leeren | clearRealmCache | ✔️ |
Benutzercache löschen | clearUserCache | ✔️ |
Basispfad zum Importieren von Clients in diesem Bereich. | importClient | ✔️ |
Client-Sitzungsstatistiken abrufen. Gibt eine JSON-Karte zurück. | getClientsSessionStats | ✔️ |
GET /{realm}/credential-registrators | getCredentialRegistrators | ✔️ |
Rufen Sie die Standard-Clientbereiche des Bereichs ab. | getDefaultClientScopes | ✔️ |
PUT /{realm}/default-default-client-scopes/{clientScopeId} | setScopeAsDefaultClientScope | ✔️ |
DELETE /{realm}/default-default-client-scopes/{clientScopeId} | unsetScopeAsDefaultClientScope | ✔️ |
Gruppenhierarchie abrufen. | getDefaultGroupHierarchy | ✔️ |
PUT /{realm}/default-groups/{groupId} | setGroupAsDefaultGroup | ✔️ |
DELETE /{realm}/default-groups/{groupId} | unsetGroupAsDefaultGroup | ✔️ |
Rufen Sie optionale Clientbereiche für den Bereich ab. | getOptionalClientScopes | ✔️ |
PUT /{realm}/default-optional-client-scopes/{clientScopeId} | setScopeAsOptionalClientScope | ✔️ |
DELETE /{realm}/default-optional-client-scopes/{clientScopeId} | unsetScopeAsOptionalClientScope | ✔️ |
Ereignisse abrufen Gibt alle Ereignisse zurück oder filtert sie basierend auf den hier aufgeführten URL-Abfrageparametern | getAllEvents | ✔️ |
Alle Ereignisse löschen | deleteAllEvents | ✔️ |
Rufen Sie die Konfiguration des Ereignisanbieters ab. Gibt ein JSON-Objekt mit der Konfiguration des Ereignisanbieters zurück | getEventsConfig | ✔️ |
Aktualisieren Sie den Ereignisanbieter. Ändern Sie den Ereignisanbieter und/oder seine Konfiguration | updateEventsConfig | ✔️ |
Rufen Sie die Benutzergruppe nach Pfad ab | getGroupByPath | ✔️ |
GET /{realm}/localization | getLocalizationLocales | ✔️ |
POST /{realm}/localization/{locale} | updateLocalizationTexts | ✔️ |
GET /{realm}/localization/{locale} | getLocalizationTexts | ✔️ |
LÖSCHEN /{realm}/localization/{locale} | deleteLocalizationTexts | ✔️ |
GET /{realm}/localization/{locale}/{key} | getLocalizationText | ✔️ |
PUT /{realm}/localization/{locale}/{key} | saveLocalizationText | ✔️ |
Entfernt alle Benutzersitzungen. (Keycloak löst eine Ausnahme aus, wenn diese aufgerufen wird) | logoutAllUsers | |
Teilweiser Export des vorhandenen Realms in eine JSON-Datei. | partialExportRealm | ✔️ |
Teilweiser Import aus einer JSON-Datei in einen vorhandenen Bereich. | partielleImportRealm | ✔️ |
Übertragen Sie die Widerrufsrichtlinie des Bereichs an jeden Client, dem eine Administrator-URL zugeordnet ist. (Keycloak löst eine Ausnahme aus, wenn diese aufgerufen wird) | pushRevocationPolicy | |
Entfernen Sie eine bestimmte Benutzersitzung. | revokeUserSession | ✔️ |
Testen Sie die LDAP-Verbindung | testLDAPConnection | ✔️ |
Testen Sie die SMTP-Verbindung mit dem aktuell angemeldeten Benutzer | testSMTPConnection | ✔️ |
Erhalten Sie Benutzerverwaltungsberechtigungen | getUserManagementPermissions | ✔️ |
Aktualisieren Sie die Benutzerverwaltungsberechtigungen | updateUserManagementPermissions | ✔️ |
Rollenzuordnung
API | Funktionsname | Unterstützt |
---|
Rufen Sie Rollenzuordnungen ab | getGroupRoleMappings | ✔️ |
Fügen Sie der Gruppe Rollenzuordnungen auf Bereichsebene hinzu | addGlobalRolesToGroup | ✔️ |
Rufen Sie Rollenzuordnungen auf Bereichsebene ab | getGroupRealmRoleMappings | ✔️ |
Rollenzuordnungen auf Bereichsebene löschen | deleteGroupRealmRoleMappings | ✔️ |
Erhalten Sie Rollen auf Bereichsebene, die zugeordnet werden können | getAvailableGroupRealmRoleMappings | ✔️ |
Erhalten Sie effektive Rollenzuordnungen auf Bereichsebene. Dadurch werden alle zusammengesetzten Rollen rekursiv ermittelt, um das Ergebnis zu erhalten. | getEffectiveGroupRealmRoleMappings | ✔️ |
Rufen Sie Rollenzuordnungen ab | getUserRoleMappings | ✔️ |
Fügen Sie dem Benutzer Rollenzuordnungen auf Bereichsebene hinzu | addGlobalRolesToUser | ✔️ |
Rufen Sie Rollenzuordnungen auf Bereichsebene ab | getUserRealmRoleMappings | ✔️ |
Rollenzuordnungen auf Bereichsebene löschen | deleteUserRealmRoleMappings | ✔️ |
Erhalten Sie Rollen auf Bereichsebene, die zugeordnet werden können | getAvailableUserRealmRoleMappings | ✔️ |
Erhalten Sie effektive Rollenzuordnungen auf Bereichsebene. Dadurch werden alle zusammengesetzten Rollen rekursiv ermittelt, um das Ergebnis zu erhalten. | getEffectiveUserRealmRoleMappings | ✔️ |
Rollen
API | Funktionsname | Unterstützt |
---|
Erstellen Sie eine neue Rolle für den Bereich oder den Kunden (kundenspezifisch). | createClientRole | ✔️ |
Alle Rollen für den Realm oder Client abrufen (Client-spezifisch) | getClientRoles | ✔️ |
Erhalten Sie eine Rolle nach Namen (kundenspezifisch) | getClientRole | ✔️ |
Aktualisieren Sie eine Rolle nach Namen (kundenspezifisch) | updateClientRole | ✔️ |
Eine Rolle nach Namen löschen (kundenspezifisch) | deleteClientRole | ✔️ |
Fügen Sie der Rolle ein Komposit hinzu (kundenspezifisch) | addCompositeRoleToClientRole | ✔️ |
Zusammengesetzte Rollen abrufen (kundenspezifisch) | getClientRoleCompositeRoles | ✔️ |
Rollen aus dem Rollenverbund entfernen (kundenspezifisch) | deleteCompositeRoleFromClientRole | ✔️ |
Rollen auf App-Ebene für die angegebene App für die zusammengesetzte Rolle (kundenspezifisch) | getClientRoleCompositeRolesForClient | ✔️ |
Abrufen von Rollen auf Bereichsebene des Rollenverbunds (kundenspezifisch) | getClientRoleCompositeRolesForRealm | ✔️ |
Gibt eine Liste der Gruppen zurück, die den angegebenen Rollennamen haben (kundenspezifisch) | getClientRoleGroups | ✔️ |
Rückgabeobjekt, das angibt, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz (kundenspezifisch) | getClientRoleManagementPermissions | ✔️ |
Aktualisieren Sie das Objekt und geben Sie an, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie einen Verweis (kundenspezifisch). | updateClientRoleManagementPermissions | ✔️ |
Gibt eine Liste der Benutzer zurück, die den angegebenen Rollennamen haben (kundenspezifisch) | getClientRoleUsers | ✔️ |
Erstellen Sie eine neue Rolle für den Bereich oder Client | createRealmRole | ✔️ |
Rufen Sie alle Rollen für den Bereich oder Client ab | getRealmRoles | ✔️ |
Holen Sie sich eine Rolle nach Namen | getRealmRole | ✔️ |
Aktualisieren Sie eine Rolle nach Namen | updateRealmRole | ✔️ |
Löschen Sie eine Rolle nach Namen | deleteRealmRole | ✔️ |
Fügen Sie der Rolle einen Verbund hinzu | addCompositeRoleToRealmRole | ✔️ |
Rufen Sie Zusammensetzungen der Rolle ab | getRealmRoleCompositeRoles | ✔️ |
Entfernen Sie Rollen aus dem Rollenverbund | deleteCompositeRoleFromRealmRole | ✔️ |
Eine Rolle auf App-Ebene für die angegebene App für die zusammengesetzte Rolle | getRealmRoleCompositeRolesForClient | ✔️ |
Rufen Sie Rollen auf Bereichsebene des Rollenverbunds ab | getRealmRoleCompositeRolesForRealm | ✔️ |
Gibt eine Liste der Gruppen zurück, die den angegebenen Rollennamen haben | getRealmRoleGroups | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | getRealmRoleManagementPermissions | ✔️ |
Aktualisieren Sie das Objekt und geben Sie an, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie einen Verweis | updateRealmRoleManagementPermissions | ✔️ |
Gibt eine Liste der Benutzer zurück, die den angegebenen Rollennamen haben | getRealmRoleUsers | ✔️ |
Rollen (nach ID)
API | Funktionsname | Unterstützt |
---|
Rufen Sie die Darstellung einer bestimmten Rolle ab | getRealmRoleById | ✔️ |
Aktualisieren Sie die Rolle | updateRealmRoleById | ✔️ |
Löschen Sie die Rolle | deleteRealmRoleById | ✔️ |
Machen Sie die Rolle zu einer zusammengesetzten Rolle, indem Sie einige untergeordnete Rollen zuordnen | addCompositeRoleToRealmRoleByRoleId | ✔️ |
Untergeordnete Elemente der Rolle abrufen Gibt eine Reihe von untergeordneten Elementen einer Rolle zurück, sofern es sich bei der Rolle um eine zusammengesetzte Rolle handelt. | getRealmRoleCompositeRolesByRoleId | ✔️ |
Entfernen Sie eine Reihe von Rollen aus dem Rollenverbund | deleteCompositeRoleFromRealmRoleByRoleId | ✔️ |
Rufen Sie Rollen auf Clientebene für den Client ab, die im Verbund der Rolle enthalten sind | getRealmRoleCompositeRolesForClientByRoleId | ✔️ |
Rufen Sie Rollen auf Bereichsebene ab, die im Verbund der Rolle enthalten sind | getRealmRoleCompositeRolesForRealmByRoleId | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | getRealmRoleManagementPermissionsByRoleId | ✔️ |
Gibt ein Objekt zurück, das angibt, ob die Rollenautorisierungsberechtigungen initialisiert wurden oder nicht, sowie eine Referenz | updateRealmRoleManagementPermissionsByRoleId | ✔️ |
Bereichszuordnungen
API | Funktionsname | Unterstützt |
---|
Rufen Sie alle Bereichszuordnungen für den Client ab | | |
Fügen Sie Rollen auf Clientebene zum Bereich des Clients hinzu | | |
Rufen Sie die Rollen ab, die dem Bereich eines Clients zugeordnet sind. Gibt Rollen für den Client zurück. | | |
Entfernen Sie Rollen auf Clientebene aus dem Bereich des Clients. | | |
Die verfügbaren Rollen auf Clientebene. Gibt die Rollen für den Client zurück, die dem Bereich des Clients zugeordnet werden können | | |
Effektive Clientrollen abrufen Gibt die Rollen für den Client zurück, die dem Bereich des Clients zugeordnet sind. | | |
Fügen Sie dem Bereich des Clients eine Reihe von Rollen auf Bereichsebene hinzu | | |
Rufen Sie Rollen auf Bereichsebene ab, die dem Bereich des Clients zugeordnet sind | | |
Entfernen Sie eine Reihe von Rollen auf Bereichsebene aus dem Bereich des Clients | | |
Rufen Sie Rollen auf Bereichsebene ab, die zum Anhängen an den Bereich dieses Clients verfügbar sind | | |
Erhalten Sie wirksame Rollen auf Bereichsebene, die dem Bereich des Clients zugeordnet sind. Dadurch werden alle zusammengesetzten Rollen rekursiviert, die dem Bereich des Clients zugeordnet sind, und die Rollen werden zu diesen Listen hinzugefügt. | | |
Rufen Sie alle Bereichszuordnungen für den Client ab | | |
Fügen Sie Rollen auf Clientebene zum Bereich des Clients hinzu | | |
Rufen Sie die Rollen ab, die dem Bereich eines Clients zugeordnet sind. Gibt Rollen für den Client zurück. | | |
Entfernen Sie Rollen auf Clientebene aus dem Bereich des Clients. | | |
Die verfügbaren Rollen auf Clientebene. Gibt die Rollen für den Client zurück, die dem Bereich des Clients zugeordnet werden können | | |
Effektive Clientrollen abrufen Gibt die Rollen für den Client zurück, die dem Bereich des Clients zugeordnet sind. | | |
Fügen Sie dem Bereich des Clients eine Reihe von Rollen auf Bereichsebene hinzu | | |
Rufen Sie Rollen auf Bereichsebene ab, die dem Bereich des Clients zugeordnet sind | | |
Entfernen Sie eine Reihe von Rollen auf Bereichsebene aus dem Bereich des Clients | | |
Rufen Sie Rollen auf Bereichsebene ab, die zum Anhängen an den Bereich dieses Clients verfügbar sind | | |
Erhalten Sie wirksame Rollen auf Bereichsebene, die dem Bereich des Clients zugeordnet sind. Dadurch werden alle zusammengesetzten Rollen rekursiviert, die dem Bereich des Clients zugeordnet sind, und die Rollen werden zu diesen Listen hinzugefügt. | | |
Benutzerspeicheranbieter
API | Funktionsname | Unterstützt |
---|
Dies ist erforderlich, damit die Admin-Konsole beim Anzeigen der Clientdetails den einfachen Namen des Anbieters anzeigt. KEYCLOAK-4328 | | |
Dies ist erforderlich, damit die Admin-Konsole beim Anzeigen der Benutzerdetails den einfachen Namen des Anbieters anzeigt: KEYCLOAK-4328 | | |
Importierte Benutzer entfernen | | |
Synchronisierung von Benutzern auslösen. Die Aktion kann „triggerFullSync“ oder „triggerChangedUsersSync“ sein. | | |
Trennen Sie die Verknüpfung importierter Benutzer von einem Speicheranbieter | | |
Trigger-Synchronisierung von Mapper-Daten im Zusammenhang mit dem LDAP-Mapper (Rollen, Gruppen usw.) Richtung ist „fedToKeycloak“ oder „keycloakToFed“ | | |
Benutzer
API | Funktionsname | Unterstützt |
---|
Erstellen Sie einen neuen Benutzer. Der Benutzername muss eindeutig sein. | createUser | ✔️ |
Benutzer abrufen Gibt eine Liste von Benutzern zurück, gefiltert nach Abfrageparametern | getUsers | ✔️ |
GET /{realm}/users/count | getUserCount | ✔️ |
Erhalten Sie eine Darstellung des Benutzers | getUser | ️️️ ✔️ |
Aktualisieren Sie den Benutzer | updateUser | ️️️ ✔️ |
Löschen Sie den Benutzer | deleteUser | ️️️ ✔️ |
Holen Sie vom Benutzer erteilte Einwilligungen ein | | ️ ✔️ |
Widerrufen Sie die Zustimmung und Offline-Tokens für einen bestimmten Client vom Benutzer | | |
Deaktivieren Sie alle Anmeldeinformationen für einen Benutzer eines bestimmten Typs | | |
Senden Sie eine E-Mail zur Kontoaktualisierung an den Benutzer. Eine E-Mail enthält einen Link, auf den der Benutzer klicken kann, um eine Reihe erforderlicher Aktionen auszuführen. | ausführenActionsEmail | ✔️ |
Rufen Sie mit dem Benutzer verknüpfte soziale Anmeldungen ab | | ✔️ |
Fügen Sie dem Benutzer einen Social-Login-Anbieter hinzu | | ✔️ |
Entfernen Sie einen Social-Login-Anbieter vom Benutzer | | ✔️ |
GET /{realm}/users/{id}/groups | getUserGroups | ✔️ |
GET /{realm}/users/{id}/groups/count | getUserGroupsCount | ✔️ |
PUT /{realm}/users/{id}/groups/{groupId} | addUserToGroup | ✔️ |
LÖSCHEN /{realm}/users/{id}/groups/{groupId} | deleteUserFromGroup | ✔️ |
Imitieren Sie den Benutzer | impersonateUser | ✔️ |
Entfernen Sie alle mit dem Benutzer verknüpften Benutzersitzungen. Senden Sie außerdem eine Benachrichtigung an alle Clients, die über eine Administrator-URL verfügen, um die Sitzungen für den bestimmten Benutzer ungültig zu machen. | logoutBenutzer | ✔️ |
Erhalten Sie Offline-Sitzungen, die dem Benutzer und Kunden zugeordnet sind | | |
Entfernen Sie TOTP vom Benutzer | | |
Richten Sie ein neues Passwort für den Benutzer ein. | BenutzerPasswort zurücksetzen | ✔️ |
Senden Sie eine E-Mail-Bestätigungs-E-Mail an den Benutzer. Eine E-Mail enthält einen Link, auf den der Benutzer klicken kann, um seine E-Mail-Adresse zu bestätigen. | sendVerifyEmail | ✔️ |
Rufen Sie mit dem Benutzer verknüpfte Sitzungen ab | getUserSessions | ✔️ |
Rufen Sie die mit dem Benutzer verknüpften Anmeldeinformationen ab | getUserCredentials | ✔️ |
Mit dem Benutzer verknüpfte Anmeldeinformationen löschen | deleteUserCredential | ✔️ |
Wurzel
API | Funktionsname | Unterstützt |
---|
Erhalten Sie auf diesem Server verfügbare Themen, soziale Anbieter, Authentifizierungsanbieter und Ereignis-Listener | | |
CORS-Preflight | | |