Keycloak
Copia un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Resumen
Sección titulada “Resumen”Keycloak funciona a través del proveedor de OAuth2 genérico incorporado. No necesita un nuevo proveedor nativo para Keycloak. Configure su cliente Keycloak como un cliente de OpenID Connect y use provider: 'oauth2' con un flujo estable providerId, como keycloak.
Configuración del cliente Keycloak
Sección titulada “Configuración del cliente Keycloak”En su reino Keycloak, cree o abra el cliente utilizado por su aplicación Capacitor:
- Use el flujo de autorización code.
- Mantenga habilitado PKCE en la configuración de la aplicación.
- Registre cada URI de redireccionamiento que utiliza su aplicación, por ejemplo
myapp://oauth/keycloakpara dispositivos móviles y una URL de llamada HTTPS para producción web. - Usar ámbitos como
openid profile email. Agregaroffline_accesssolamente cuando su reino y cliente estén configurados para emitir tokens de actualización.
La URL de emisor exacta es específica de la implementación. Las implementaciones de Keycloak actuales publican comúnmente el metadato del reino en https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, pero algunas implementaciones incluyen un camino base adicional. Utilice la URL de emisor mostrada por la configuración de punto de conexión de OpenID de su reino.
Ejemplo de descubrimiento OIDC
Sección titulada “Ejemplo de descubrimiento OIDC”Preferir issuerUrl para que el complemento pueda descubrir los puntos de conexión de autorización, token y cierre de sesión desde el metadato del reino:
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);Para tokens de actualización, solicitar offline_access solo si su reino Keycloak y cliente permiten tokens de refresco para esta aplicación:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Fallo de endpoint manual
Título de la sección “Fallo de endpoint manual”Si el descubrimiento OIDC está bloqueado o su despliegue no expone metadatos a la aplicación, configure los endpoints directamente. Mantenga la URL base exactamente como su despliegue de Keycloak la publica:
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`, }, },});Compatibilidad con Auth Connect
Título de la sección “Compatibilidad con Auth Connect”Keycloak no es uno de los IDs de proveedor de Auth Connect predeterminados. Si ya utiliza SocialLoginAuthConnectpuede inicializar el proveedor genérico y iniciar sesión con oauth2 y más provider: 'oauth2' __CAPGO_KEEP_0__ providerId: 'keycloak'.
Ver Referencia del punto de conexión de OpenID Connect de Keycloak para la descubierta y los caminos de los puntos de conexión.
Documentación relacionada
Título de la sección “Documentación relacionada”Sigue adelante desde Keycloak
Título de la sección “Sigue adelante desde Keycloak”Si estás utilizando Keycloak para planificar la autenticación y flujos de cuenta, conectarlo con Usando @capgo/capacitor-login-social para la capacidad nativa en Usando @capgo/capacitor-login-social, @capgo/capacitor-login-social para el detalle de implementación en @capgo/capacitor-login-social, @capgo/capacitor-clave-de-pasaje para el detalle de implementación en @capgo/capacitor-clave-de-pasaje, @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y La autenticación en dos factores para el detalle de implementación en La autenticación en dos factores.