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 version 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.
- Conservez PKCE activé dans la configuration de l'application.
- 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 de production. - Utilisez des scopes comme
openid profile emailAjoutezoffline_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 actuels de Keycloak publient couramment les métadonnées du domaine à https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationmais 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
Section intitulée « 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 rafraîchissement 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
Section 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
Section intitulée « Compatibilité avec Auth Connect »Keycloak n'est pas l'un des IDs de fournisseur de Auth Connect par défaut. Si vous utilisez déjà SocialLoginAuthConnectvous pouvez toujours initialiser le fournisseur générique oauth2 fournisseur et connectez-vous avec provider: 'oauth2' plus providerId: 'keycloak'.
Voir la référence du point de terminaison OpenID Connect Keycloak pour la découverte et les chemins des points de terminaison.
Documents connexes
Fournisseurs OAuth2 et OIDCSection intitulée « Continuez depuis Keycloak »
Section titled “Related docs”If vous utilisez Keycloak pour planifier l'authentification et les flux de compte, connectez-l’à Utilisation de @capgo/capacitor-social-login pour la capacité native dans Utilisation de @capgo/capacitor-social-login @capgo/capacitor-social-login 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-native-biometric pour le détail d'implémentation dans @capgo/capacitor-native-biometric, et Deux facteurs d'authentification pour les détails d'implémentation dans l'authentification à deux facteurs.