Keycloak
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Panoramica
Sezione intitolata “Panoramica”Keycloak funziona attraverso il provider OAuth2 integrato. Non è necessario un nuovo provider nativo per Keycloak. Configura il tuo client Keycloak come un client OpenID Connect e utilizza provider: 'oauth2' con una versione stabile providerIdad esempio keycloak.
Impostazioni del client Keycloak
Sezione intitolata “Impostazioni del client Keycloak”Nel tuo dominio Keycloak, crea o apri il client utilizzato dal tuo Capacitor app:
- Utilizza il flusso di autorizzazione code.
- Mantieni abilitato PKCE nella configurazione dell'app.
- Registra ogni URI di reindirizzamento che il tuo app utilizza, ad esempio
myapp://oauth/keycloakper dispositivi mobili e un URL di callback HTTPS per la produzione web. - Utilizza ambiti come
openid profile emailAggiungioffline_accesssolo quando il tuo dominio e il client sono configurati per emettere token di aggiornamento.
L'URL esatta dell'emittente è specifica della distribuzione. Le distribuzioni Keycloak correnti pubblicano comunemente i metadati del dominio. https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationma alcune distribuzioni includono un percorso base aggiuntivo. Utilizza l'URL dell'emittente mostrato dalla configurazione dell'endpoint OpenID del tuo dominio.
Esempio di scoperta OIDC
Esempio di sezione “Scoperta OIDC”Preferisci issuerUrl così che il plugin possa scoprire gli endpoint di autorizzazione, token e logout dai metadati del dominio:
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);Per i token di refresh, richiedi offline_access se il tuo dominio Keycloak e il client consentono i token di refresh per questa app:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Fallback degli endpoint manuali
Esempio di sezione “Fallback degli endpoint manuali”Se la scoperta OIDC è bloccata o la tua distribuzione non esporre i metadati all'app, configura gli endpoint direttamente. Mantieni l'URL di base esattamente come pubblicato dal tuo deployment Keycloak:
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`, }, },});Compatibilità di Auth Connect
Sezione intitolata “Compatibilità di Auth Connect”Keycloak non è uno dei provider ID di Auth Connect predefiniti. Se già utilizzi SocialLoginAuthConnectPuoi ancora inizializzare il generico oauth2 provider e accedi con provider: 'oauth2' Vedi il providerId: 'keycloak'.
Vedi per la scoperta e le percorrenze degli endpoint. Documentazione correlata
Sezione intitolata “Documentazione correlata”
provider OAuth2 e OIDC- Auth Connect compatibility
- Integrazione di autenticazione migliore
- Migrazione di Auth Connect di Ionic
Continua da Keycloak
Sottosezione intitolata “Continua da Keycloak”Se stai utilizzando Keycloak per pianificare l'autenticazione e le flussi di account, connettilo con Utilizza @capgo/capacitor-login sociale per la capacità nativa in Utilizza @capgo/capacitor-login sociale, @capgo/capacitor-login sociale per il dettaglio di implementazione in @capgo/capacitor-login sociale, @capgo/capacitor-chiave di accesso per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-autenticazione-biometrica per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli di implementazione in Autenticazione a due fattori.