Keycloak
Einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline 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 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-App verwendet wird:
- Verwenden Sie den Autorisierungscode-Fluss.
- Behalten Sie PKCE in der App-Konfiguration aktiviert.
- Registrieren Sie alle Redirect-URIs, die Ihre App verwendet, zum Beispiel
myapp://oauth/keycloakfür mobile Geräte und eine HTTPS-Rückruf-URL für die Produktionswebanwendung. - Wenden Sie sich auf Scopes wie
openid profile emailzurück, nur wenn Ihr Realm und Client konfiguriert sind, um Refresh-Tokens auszugeben.offline_accessDie genaue Aussteller-URL ist deployment-spezifisch. Aktuelle Keycloak-Deployments veröffentlichen üblicherweise Realm-Metadaten unter
aber einige Bereitstellungen enthalten einen zusätzlichen Basis-Path. Verwenden Sie die Aussteller-URL, die durch Ihre Realm’s OpenID-Endpunkt-Konfiguration angezeigt wird. https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationBeispiel für OIDC-Entdeckung
Sektion mit dem Titel „Beispiel für OIDC-Entdeckung“
Präferieren Siedamit der Plugin die Autorisierungs-, Token- und Abmelde-Endpunkte aus den Realm-Metadaten entdecken kann: issuerUrl __CAPGO_KEEP_0__
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-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-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 einer der voreingestellten Auth-Connect-Anbieter-IDs. Wenn Sie bereits SocialLoginAuthConnectinitialisieren, können Sie den generischen oauth2 Anbieter und Anmeldung mit provider: 'oauth2' plus providerId: 'keycloak'.
Siehe die Referenz zum Keycloak-OpenID-Connect-Endpunkt für Entdeckung und Pfad der Endpunkte.
Verwandte Dokumente
Abschnitt mit dem Titel “Verwandte Dokumente”Weitergehen von Keycloak
Abschnitt mit dem Titel “Weitergehen von Keycloak”Wenn Sie die Authentifizierung und die Kontenflüsse planen Keycloak mit ihm verbinden Mit @capgo/capacitor-social-login für die native Fähigkeit in Mit @capgo/capacitor-social-login Mit @capgo/capacitor-social-login für die Implementierungsdetail in Mit @capgo/capacitor-social-login Mit @capgo/capacitor-passkey für die Implementierungsdetail in Mit @capgo/capacitor-passkey Mit @capgo/capacitor-native-biometric für die Implementierungsdetail in Mit @capgo/capacitor-native-biometric, und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in der Zwei-Faktor-Authentifizierung.