Keycloak
Copie 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 utilice provider: 'oauth2' con una versión estable providerIdcomo 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:
- Utilice el flujo de autorización code.
- Keep PKCE enabled in the app config.
- Registre cada URI de redirección que utiliza tu aplicación, por ejemplo
myapp://oauth/keycloakpara dispositivos móviles y una URL de llamada HTTPS para producción web. - Utilice ámbitos como
openid profile emailAgregueoffline_accesssolamente cuando tu 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 suelen publicar metadatos de reino en https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationpero 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 tu reino.
Ejemplo de descubrimiento OIDC
Título de la sección ‘Ejemplo de descubrimiento OIDC’Preferir issuerUrl Así el plugin puede descubrir los puntos de autorización, token y cierre de sesión desde los metadatos 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 refresco, solicite offline_access solo si su reino de 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
Sección titulada “Fallo de endpoint manual”Si el descubrimiento OIDC está bloqueado o su despliegue no expone metadatos al aplicativo, 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 de Auth Connect
Sección titulada “Compatibilidad de Auth Connect”Keycloak no es uno de los IDs de proveedor de Auth Connect predeterminados. Si ya utiliza SocialLoginAuthConnectpuedes iniciar el proveedor genérico y iniciar sesión con oauth2 proveedor genérico provider: 'oauth2' más providerId: 'keycloak'.
Ver el Referencia de punto de conexión de OpenID Connect de Keycloak for discovery and endpoint paths.
Documentos relacionados
Sección titulada “Documentos relacionados”Sigue adelante desde Keycloak
Sección titulada “Sigue adelante desde Keycloak”Si estás utilizando Keycloak a planificar la autenticación y los 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-privada para el detalle de implementación en @capgo/capacitor-clave-privada @capgo/capacitor-biometría-nativa para el detalle de implementación en @capgo/capacitor-biometría-nativa, y Dos factores de autenticación para el detalle de implementación en Dos factores de autenticación.