Keycloak
Copiez un prompt de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
Vue d'ensemble
Section intitulée « Vue d'ensemble »Keycloak fonctionne à travers le fournisseur OAuth2 générique intégré. Vous n'avez pas besoin d'un nouveau fournisseur natif pour Keycloak. Configurez votre client Keycloak en tant que client OpenID Connect et utilisez provider: 'oauth2' avec une solution stable providerIdpar exemple keycloak.
Paramètres du client Keycloak
Section intitulée « Paramètres du client Keycloak »Dans votre domaine Keycloak, créez ou ouvrez le client utilisé par votre application Capacitor :
- Utilisez le flux d'autorisation code.
- Activez PKCE dans la configuration de l'application.
- Inscrivez chaque URI de redirection que votre application utilise, par exemple
myapp://oauth/keycloakpour les appareils mobiles et une URL de rappel HTTPS pour le web en production. - Utilisez des scopes comme
openid profile email. Ajoutezoffline_accessseulement lorsque votre domaine et votre client sont configurés pour émettre des jetons de rafraîchissement.
L'URL exacte de l'émetteur est spécifique à la mise en production. Les déploiements Keycloak courants publient généralement les métadonnées du domaine à https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, mais certains déploiements incluent un chemin d'accès de base supplémentaire. Utilisez l'URL de l'émetteur affichée par la configuration d'endpoint OpenID de votre domaine.
Exemple de découverte OIDC
Sous-titre « Exemple de découverte OIDC »Préférez issuerUrl afin que le plugin puisse découvrir les points de terminaison d'autorisation, de jeton et de déconnexion à partir des métadonnées du domaine :
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);Pour les jetons de rafraîchissement, demandez offline_access seulement si votre domaine Keycloak et votre client autorisent les jetons de renouvellement pour cette application :
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Chemin de fallback manuel
Sous-section intitulée « Chemin de fallback manuel »Si le découvert OIDC est bloqué ou si votre déploiement ne publie pas les métadonnées à l'application, configurez les chemins directement. Conservez l'URL de base exactement comme votre déploiement Keycloak la publie :
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é Auth Connect
Sous-section intitulée « Compatibilité Auth Connect »Keycloak n'est pas l'un des IDs de fournisseur de Auth Connect par défaut. Si vous utilisez déjà SocialLoginAuthConnect, vous pouvez toujours initialiser le fournisseur générique oauth2 et vous connecter avec provider: 'oauth2' plus providerId: 'keycloak'.
Voir le Référence du point de terminaison OpenID Connect Keycloak pour la découverte et les chemins des points de terminaison. Docs connexes
Section intitulée « Docs connexes »
Fournisseurs OAuth2 et OIDC- Intégration d'authentification améliorée
- Mise à niveau de l'intégration d'authentification Ionic Auth Connect
- Continuez depuis Keycloak
Section intitulée « Continuez depuis Keycloak »
Si vous utilisezKeycloak Keycloak pour planifier l'authentification et les flux de compte, connectez-le avec Utiliser @capgo/capacitor-login-social pour la capacité native dans Utiliser @capgo/capacitor-login-social, @capgo/capacitor-login-social pour le détail d'implémentation dans @capgo/capacitor-login-social, @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-biométrique-native pour le détail d'implémentation dans @capgo/capacitor-biométrique-native, et L'authentification à deux facteurs pour le détail d'implémentation dans L'authentification à deux facteurs.