Keycloak
Copiez un prompt de configuration avec les étapes d'installation et la guide Markdown complète pour ce plugin.
Vue d'ensemble
Sous-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 version stable providerIdpar exemple keycloak.
Paramètres du client Keycloak
Sous-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.
- Keep PKCE enabled in the app config.
- Enregistrez 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 emailAjoutezoffline_accessonly when your realm and client are configured to issue refresh tokens.
L'URL exacte de l'émetteur est spécifique à la déploiement. Les déploiements Keycloak actuels publient couramment les métadonnées du domaine à https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationMais certaines déploiements incluent un chemin de base supplémentaire. Utilisez l'URL émettrice affichée par la configuration de votre endpoint OpenID.
Exemple de découverte OIDC
Section titled “OIDC discovery example”Préférez issuerUrl Ainsi, le plugin peut 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 réalme Keycloak et client autorisent les jetons de refresh 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, }, },});Fallback de point de terminaison manuel
Fenêtre intitulée “Fallback de point de terminaison manuel”Si le découvert OIDC est bloqué ou si votre déploiement ne publie pas les métadonnées à l'application, configurez les points de terminaison 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é avec Auth Connect
Sous-section intitulée « Compatibilité avec Auth Connect »Keycloak n'est pas l'un des IDs de fournisseur de Auth Connect prédéfinis. Si vous utilisez déjà SocialLoginAuthConnectVous pouvez toujours initialiser le module générique. oauth2 fournisseur et se connecter avec provider: 'oauth2' plus providerId: 'keycloak'.
Voir les Référence d'endpoint OpenID Connect Keycloak pour la découverte et les chemins d'endpoint.
Sous-titre « Documents connexes »
Fournisseurs OAuth2 et OIDC- Intégration d'authentification améliorée
- Migration vers Ionic Auth Connect
- Continuez depuis Keycloak
Sous-titre « Continuez depuis Keycloak »
Section intitulée “Continuez depuis Keycloak”protectedTokens Keycloak à planifier l'authentification et les flux de compte, connectez-l’avec En utilisant @capgo/capacitor-social-login pour la capacité native dans En utilisant @capgo/capacitor-social-login @capgo/capacitor-connexion-social pour le détail d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-authentification-biometrique pour le détail d'implémentation dans @capgo/capacitor-native-biometric, et Deux facteurs d'authentification pour le détail d'implémentation dans Deux facteurs d'authentification.