Keycloak
Kopieren Sie eine Setup-Vorlage mit den Installationsanweisungen und der vollständigen Markdown-Dokumentation für diesen Plugin.
Ü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 providerIdz.B. keycloak.
Keycloak-Kunden-Einstellungen
Abschnitt mit dem Titel „Keycloak-Kunden-Einstellungen“In Ihrem Keycloak-Raum erstellen Sie oder öffnen Sie den Kunden, der von Ihrer Capacitor-Anwendung verwendet wird:
- Verwenden Sie den Autorisierungscode-Fluss.
- Bleiben Sie PKCE in der App-Konfiguration aktiviert.
- Registrieren Sie alle Redirect-URIs, die Ihre App verwendet, zum Beispiel
myapp://oauth/keycloakfür mobile und einen HTTPS-Rückruf-URL für die Produktionswebanwendung. - Verwenden Sie Berechtigungen wie
openid profile emailFügen Sieoffline_accessnur dann hinzu, wenn Ihr Realm und Client konfiguriert sind, um Refresh-Tokens auszugeben.
Die genaue Aussteller-URL ist deployment-spezifisch. Aktuelle Keycloak-Deployments veröffentlichen üblicherweise Realm-Metadaten unter https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationaber einige Bereitstellungen enthalten einen zusätzlichen Basis-Path. Verwenden Sie die Aussteller-URL, die durch Ihre Realm’s OpenID-Endpunkt-Konfiguration angezeigt wird.
OIDC-Discovery-Beispiel
Abschnitt mit dem Titel „OIDC-Discovery-Beispiel“Präferieren Sie issuerUrl so dass der Plugin die Autorisierungs-, Token- und Abmelde-Endpunkte 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 Refresh-Tokens, stellen Sie sicher, dass offline_access nur wenn Ihr Keycloak-Domäne und Client Refresh-Tokens 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 mit dem Titel „Manueller Endpunkt-Fallback“Wenn OIDC-Discovery 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 mit dem Titel „Auth-Connect-Kompatibilität“Keycloak ist nicht eines der voreingestellten Auth-Connect-Anbieter-IDs. Wenn Sie bereits SocialLoginAuthConnectverwenden, können Sie die generische oauth2 Anbieter und mit provider: 'oauth2' plus providerId: 'keycloak'.
Siehe das Referenz für den Keycloak OpenID Connect Endpunkt für Entdeckung und Pfad der Endpunkte.
Verwandte Dokumente
Abschnitt mit dem Titel “Verwandte Dokumente”Bleiben Sie bei Keycloak
Abschnitt mit dem Titel “Bleiben Sie bei Keycloak”If Sie Keycloak verwenden Keycloak um die Authentifizierung und die Kontenflüsse 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-passkey für die Implementierungsdetails in @capgo/capacitor-passkey @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in der Zwei-Faktor-Authentifizierung.