Aller au contenu principal

Configurer la connexion sociale avec le protocole OAuth 2.0

Le connecteur officiel Logto pour le protocole OAuth 2.0.

astuce

Dans ce guide, nous supposons que vous avez des connaissances de base sur les Connecteurs Logto. Si ce n'est pas le cas, consultez le guide Configurer les connecteurs pour commencer.

Commencer

Le connecteur OAuth permet la connexion de Logto à un fournisseur d’identité sociale arbitraire qui prend en charge le protocole OAuth 2.0.

ℹ️ Remarque

Le connecteur OAuth est un type spécial de connecteur dans Logto, vous pouvez ajouter quelques connecteurs basés sur le protocole OAuth.

Créez votre application OAuth

Lorsque vous ouvrez cette page, nous croyons que vous savez déjà à quel fournisseur d’identité sociale vous souhaitez vous connecter. La première chose à faire est de confirmer que le fournisseur d’identité prend en charge le protocole OAuth, ce qui est une condition préalable pour configurer un connecteur valide. Ensuite, suivez les instructions du fournisseur d’identité pour enregistrer et créer l'application pertinente pour l'Autorisation (Authorization) OAuth.

Configurez votre connecteur

Nous supportons UNIQUEMENT le type de subvention "Authorization Code" pour des raisons de sécurité et il peut parfaitement s'adapter au scénario de Logto.

clientId et clientSecret peuvent être trouvés sur la page des détails de vos applications OAuth.

clientId : L'ID client est un identifiant unique qui identifie l'application cliente lors de l'enregistrement auprès du serveur d'autorisation. Cet ID est utilisé par le serveur d'autorisation pour vérifier l'identité de l'application cliente et pour associer tout Jeton d’accès (Access token) autorisé à cette application cliente spécifique.

clientSecret : Le secret client est une clé confidentielle qui est délivrée à l'application cliente par le serveur d'autorisation lors de l'enregistrement. L'application cliente utilise cette clé secrète pour s'authentifier auprès du serveur d'autorisation lors de la demande de Jetons d’accès (Access tokens). Le secret client est considéré comme une information confidentielle et doit être gardé sécurisé en tout temps.

tokenEndpointAuthMethod : La méthode d'authentification du point de terminaison de jeton est utilisée par l'application cliente pour s'authentifier auprès du serveur d'autorisation lors de la demande de Jetons d’accès (Access tokens). Pour découvrir les méthodes prises en charge, consultez le champ token_endpoint_auth_methods_supported disponible au point de terminaison de découverte OpenID Connect du fournisseur de service OAuth 2.0, ou référez-vous à la documentation pertinente fournie par le fournisseur de service OAuth 2.0.

clientSecretJwtSigningAlgorithm (Optionnel) : Requis uniquement lorsque tokenEndpointAuthMethod est client_secret_jwt. L'algorithme de signature JWT du secret client est utilisé par l'application cliente pour signer le JWT qui est envoyé au serveur d'autorisation lors de la requête de jeton.

scope : Le paramètre de Portée (Scope) est utilisé pour spécifier l'ensemble des ressources et Permissions auxquelles l'application cliente demande l'accès. Le paramètre de Portée (Scope) est généralement défini comme une liste de valeurs séparées par des espaces qui représentent des Permissions spécifiques. Par exemple, une valeur de Portée (Scope) de "read write" pourrait indiquer que l'application cliente demande un accès en lecture et écriture aux données d'un utilisateur.

Vous êtes censé trouver authorizationEndpoint, tokenEndpoint et userInfoEndpoint dans la documentation du fournisseur social.

authenticationEndpoint : Ce point de terminaison est utilisé pour initier le processus d'Authentification (Authentication). Le processus d'Authentification (Authentication) implique généralement que l'utilisateur se connecte et accorde l'Autorisation (Authorization) à l'application cliente pour accéder à ses ressources.

tokenEndpoint : Ce point de terminaison est utilisé par l'application cliente pour obtenir un Jeton d’accès (Access token) qui peut être utilisé pour accéder aux ressources demandées. L'application cliente envoie généralement une requête au point de terminaison de jeton avec un type de subvention et un code d'Autorisation (Authorization) pour recevoir un Jeton d’accès (Access token).

userInfoEndpoint : Ce point de terminaison est utilisé par l'application cliente pour obtenir des informations supplémentaires sur l'utilisateur, telles que son nom complet, son adresse e-mail ou sa photo de profil. Le point de terminaison des informations utilisateur est généralement accessible après que l'application cliente a obtenu un Jeton d’accès (Access token) du point de terminaison de jeton.

Logto fournit également un champ profileMap que les utilisateurs peuvent personnaliser pour le mappage des profils des fournisseurs sociaux qui ne sont généralement pas standard. Les clés sont les noms de champs de profil utilisateur standard de Logto et les valeurs correspondantes doivent être les noms de champs des profils sociaux. À l'étape actuelle, Logto ne concerne que 'id', 'name', 'avatar', 'email' et 'phone' du profil social, seul 'id' est requis et les autres sont des champs optionnels.

responseType et grantType peuvent UNIQUEMENT être des valeurs FIXES avec le type de subvention du code d'Autorisation (Authorization), nous les rendons donc optionnels et les valeurs par défaut seront automatiquement remplies.

Par exemple, vous pouvez trouver la réponse du profil utilisateur Google et donc son profileMap devrait être comme :

{
"id": "sub",
"avatar": "picture"
}

ℹ️ Remarque

Nous avons fourni une clé customConfig OPTIONNELLE pour mettre vos paramètres personnalisés. Chaque fournisseur d’identité sociale pourrait avoir sa propre variante sur le protocole standard OAuth. Si votre fournisseur d’identité sociale souhaité respecte strictement le protocole standard OAuth, alors vous n'avez pas besoin de vous soucier de customConfig.

Types de configuration

NomTypeRequis
authorizationEndpointstringtrue
userInfoEndpointstringtrue
clientIdstringtrue
clientSecretstringtrue
tokenEndpointResponseTypeenumfalse
responseTypestringfalse
grantTypestringfalse
tokenEndpointstringfalse
scopestringfalse
customConfigRecord<string, string>false
profileMapProfileMapfalse
Champs ProfileMapTypeRequisValeur par défaut
idstringfalseid
namestringfalsename
avatarstringfalseavatar
emailstringfalseemail
phonestringfalsephone

Référence