Keycloak
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Panoramica
Sottosezione intitolata “Panoramica”Keycloak funziona attraverso il provider OAuth2 generico integrato. Non è necessario un nuovo provider nativo per Keycloak. Configura il tuo client Keycloak come un client OpenID Connect e utilizza provider: 'oauth2' con un provider stabile providerIdad esempio keycloak.
Impostazioni del client Keycloak
Sottosezione intitolata “Impostazioni del client Keycloak”Nella tua sfera Keycloak, crea o apri il client utilizzato dal tuo Capacitor app:
- Utilizza il flusso di autorizzazione code.
- Conserva abilitato PKCE nella configurazione dell'app.
- Registra ogni URI di reindirizzamento che la tua app utilizza, ad esempio
myapp://oauth/keycloakper dispositivi mobili e un URL di callback HTTPS per il web di produzione. - Utilizza ambiti come
openid profile emailAggiungioffline_accesssolo quando il tuo dominio e il client sono configurati per emettere token di rinnovo.
L'URL esatto dell'emittente è specifico della distribuzione. Le distribuzioni Keycloak correnti pubblicano comunemente i metadati del dominio a 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 OIDC discovery
Sottosezione intitolata “Esempio di OIDC discovery”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 aggiornamento, richiedi offline_access Solo se il tuo dominio Keycloak e il client consentono i token di aggiornamento 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 endpoint manuale
Sottosezione intitolata “Fallback endpoint manuale”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 dominio 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à con Auth Connect
Sottosezione intitolata “Compatibilità con Auth Connect”Keycloak non è uno dei provider ID di Auth Connect predefiniti. Se già utilizzi SocialLoginAuthConnectpuoi ancora inizializzare il provider generico oauth2 fornitore e accedi con provider: 'oauth2' più providerId: 'keycloak'.
Vedi il riferimento al endpoint OpenID Connect di Keycloak per la scoperta e le vie degli endpoint.
Documentazione correlata
Fornitori OAuth2 e OIDCSezione intitolata “Continua da Keycloak”
Fornitori OAuth2 e OIDCSe stai utilizzando Keycloak per pianificare l'autenticazione e le flussi di account, connettilo con Utilizzando @capgo/capacitor-login sociale per la capacità nativa in Utilizzando @capgo/capacitor-login sociale Utilizzando @capgo/capacitor-login sociale per il dettaglio di implementazione in Utilizzando @capgo/capacitor-login sociale Utilizzando @capgo/capacitor-chiave passiva per il dettaglio di implementazione in Utilizzando @capgo/capacitor-chiave passiva Utilizzando @capgo/capacitor-biometria nativa per il dettaglio di implementazione in Utilizzando @capgo/capacitor-biometria nativa, e Autenticazione a due fattori per i dettagli di implementazione in due fattori di autenticazione.