Keycloak
Kopieren Sie einen Einrichtungsprompt mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Übersicht
ÜbersichtKeycloak funktioniert über den eingebauten 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.
Einstellungen für den Keycloak-Kunden
In Ihrem Keycloak-Reich erstellen oder öffnen Sie den Kunden, der von Ihrer __CAPGO_KEEP_0__-Anwendung verwendet wird:Verwenden Sie die AutorisierungsCapacitor-Fluss.
- Use the authorization code flow.
- Registrieren Sie alle Redirect-URI, die Ihre App verwendet, z.B.
- Beispiel
myapp://oauth/keycloakFür mobile Geräte und eine HTTPS-Rückruf-URL für die Produktionswebseite. - Verwenden Sie Berechtigungen 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 üblicherweise Realm-Metadaten 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 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 Abmelde-Endpunkte aus den 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ügen Sie für Refresh-Tokens an offline_access nur wenn Ihr Keycloak-Domäne und -Client die Aktualisierung von Token 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
Sektion 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
Sektion mit dem Titel “Auth-Connect-Kompatibilität”Keycloak ist nicht eines der voreingestellten Auth-Connect-Anbieter-IDs. Wenn Sie bereits SocialLoginAuthConnectverwenden, können Sie den allgemeinen oauth2 anwenden und mit provider: 'oauth2' anmelden providerId: 'keycloak'.
Siehe die Keycloak OpenID Connect Endpunktverweis für Entdeckung und Endpunkt-Pfade.
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 Kontenflüsse zu planen, verbinden Sie es mit Mit @capgo/capacitor-social-login verwenden 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.