Keycloak
Eine Konfigurationsanweisung mit den Installationsanweisungen und der vollständigen Markdown-Anleitung für diesen Plugin kopieren.
Übersicht
Abschnitt mit dem Titel „Übersicht“Keycloak funktioniert über den eingebauten generischen OAuth2-Anbieter. Sie benötigen keinen neuen native Anbieter für Keycloak. Konfigurieren Sie Ihren Keycloak-Kunden als OpenID-Connect-Kunden und verwenden Sie provider: 'oauth2' mit einer stabilen providerId, wie keycloak.
Keycloak-Kundenstammdaten
Abschnitt mit dem Titel “Keycloak-Kundenstammdaten”Erstellen oder öffnen Sie in Ihrem Keycloak-Domäne den Kunden, der von Ihrer Capacitor-Anwendung verwendet wird:
- Verwenden Sie den Autorisierungscode-Fluss.
- Bleiben Sie PKCE im App-Konfiguration aktiviert.
- Registrieren Sie alle Umleitungs-URI, die Ihre App verwendet, zum Beispiel
myapp://oauth/keycloakfür mobile Geräte und eine HTTPS-Rückruf-URL für die Produktionswebanwendung. - Verwenden Sie Berechtigungen wie
openid profile emailHinzufügenoffline_accessnur, wenn Ihre Domäne und Ihr Kunden konfiguriert sind, um Refresh-Tokens auszugeben.
Die genaue Aussteller-URL ist deployment-spezifisch. Aktuelle Keycloak-Deployments veröffentlichen häufig die Domänenmetadaten unter https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, aber einige Bereitstellungen enthalten einen zusätzlichen Basis-Path. Verwenden Sie die Aussteller-URL, die von der OpenID-Endpunkt-Konfiguration Ihrer Domäne angezeigt wird.
OIDC-Entdeckungsbeispiel
Abschnitt: OIDC-EntdeckungsbeispielVorziehen issuerUrl damit der Plugin die Autorisierungs-, Token- und Abmeldefunktionen aus dem Realm-Metadaten entdecken kann:
import { SocialLogin } from '@capgo/capacitor-social-login';
const keycloakIssuer = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakIssuer}/protocol/openid-connect/userinfo`, }, },});
const result = await SocialLogin.login({ provider: 'oauth2', options: { providerId: 'keycloak', },});
console.log(result.result.idToken);console.log(result.result.accessToken?.token);console.log(result.result.resourceData);Für die Aktualisierungstoken anfragen offline_access nur, wenn Ihr Keycloak-Realm und Client die Aktualisierungstoken für diese App zulassen:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Manueller Endpunkt-Fallback
Abschnitt: Manueller Endpunkt-FallbackWenn die OIDC-Entdeckung blockiert ist oder Ihre Bereitstellung keine Metadaten an die App ausgibt, konfigurieren Sie die Endpunkte direkt. Halten Sie die Basis-URL genau so, wie Ihre Keycloak-Bereitstellung sie veröffentlicht:
const keycloakRealmUrl = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', authorizationBaseUrl: `${keycloakRealmUrl}/protocol/openid-connect/auth`, accessTokenEndpoint: `${keycloakRealmUrl}/protocol/openid-connect/token`, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakRealmUrl}/protocol/openid-connect/userinfo`, logoutUrl: `${keycloakRealmUrl}/protocol/openid-connect/logout`, }, },});Auth Connect-Kompatibilität
Abschnitt: Auth Connect-KompatibilitätKeycloak ist nicht eines der voreingestellten Auth Connect-Anbieter-IDs. Wenn Sie bereits Keycloak verwenden SocialLoginAuthConnectkönnen Sie den allgemeinen oauth2 Anbieter initialisieren und mit provider: 'oauth2' plus providerId: 'keycloak'.
Siehe die Referenz zum Keycloak-OpenID-Connect-Endpunkt für die Entdeckung und Endpunkt-Pfade.
Verwandte Dokumente
Abschnitt: Verwandte DokumenteFortsetzung von Keycloak
Abschnitt mit dem Titel “Fortsetzung von Keycloak”Wenn Sie Live Update verwenden Keycloak um die Authentifizierung und Kontoflusspläne zu planen, verbinden Sie es mit Verwenden Sie @capgo/capacitor-social-login Für die native Fähigkeit in Verwenden Sie @capgo/capacitor-social-login @capgo/capacitor-Social-Login Für die Implementierungsdetails in @capgo/capacitor-social-login @capgo/capacitor-Passwort für die Implementierungsdetails in @capgo/capacitor-Passkey @capgo/capacitor-native-biometrisch für die Implementierungsdetails in @capgo/capacitor-native-biometrisch, und Zweifaktor-Authentifizierung für die Implementierungsdetails in Zweifaktor-Authentifizierung.