Keycloak
Eine Setup-Vorlage mit den Installationsanweisungen und der vollständigen Markdown-Guide 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 zum Beispiel 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.
- Behalten Sie PKCE im App-Konfiguration aktiviert.
- Registrieren Sie jeden Redirect-URI, den Ihre Anwendung verwendet, zum Beispiel
myapp://oauth/keycloakfür mobile Geräte und einen HTTPS-Rückruf-URL für die Produktionswebanwendung. - Verwenden Sie Bereiche wie
openid profile email. Fü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 Realm-Metadaten häufig an https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, aber einige Bereitstellungen enthalten einen zusätzlichen Baseweg. Verwenden Sie die Aussteller-URL, die durch Ihr Realm’s OpenID-Endpunkt-Konfiguration angezeigt wird.
Beispiel für OIDC-Entdeckung
Abschnitt mit dem Titel “Beispiel für OIDC-Entdeckung”Präferieren Sie issuerUrl damit der Plugin die Autorisierungs-, Token- und Abmeldeendpunkte 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 anfragen offline_access nur, wenn Ihr Keycloak-Realm und Client für diese App Refresh-Tokens 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 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 mit dem Titel „Auth-Connect-Kompatibilität“Keycloak ist nicht eines der voreingestellten Auth-Connect-Anbieter-IDs. Wenn Sie bereits SocialLoginAuthConnect verwenden, können Sie den allgemeinen oauth2 Anbieter initialisieren und mit provider: 'oauth2' plus providerId: 'keycloak'.
Siehe die Keycloak OpenID Connect Endpunkt Referenz zur Entdeckung und Pfad der Endpunkte.
Verwandte Dokumente
Abschnitt mit dem Titel “Verwandte Dokumente”Fortsetzung von Keycloak
Abschnitt mit dem Titel “Fortsetzung von Keycloak”Wenn Sie Keycloak verwenden Keycloak um die Authentifizierung und die Kontoflussplanung zu planen, verbinden Sie es mit Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @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 Zwei-Faktor-Authentifizierung.