OpenID Connect (OIDC) est un protocole d'authentification et d'autorisation des identités basé sur OAuth 2.0, principalement utilisé pour la connexion unique (SSO). En configurant la connexion unique OIDC sur une passerelle ASM, vous pouvez utiliser un fournisseur d'identité tel qu'Alibaba Cloud IDaaS ou tout autre service conforme à OIDC pour permettre aux utilisateurs de se connecter une seule fois et d'accéder à plusieurs applications sans modifier ces dernières. Cette approche renforce la sécurité et simplifie le développement et la gestion des applications.
Prérequis
Une application est déployée dans le cluster ajouté à l'instance ASM.
L'injection Sidecar est activée pour le namespace. Pour plus d'informations, consultez la section Configurer les politiques d'injection Sidecar.
Une passerelle d'entrée ASM a été créée et son adresse a été obtenue. Pour plus d'informations, consultez les sections Créer une passerelle d'entrée et Obtenir l'adresse d'une passerelle d'entrée.
-
Un fournisseur d'identité (IdP) est configuré. Pour plus d'informations, reportez-vous aux étapes Intégrer ASM à Alibaba Cloud IDaaS pour activer la connexion unique des applications du maillage : Étape 1 et Étape 2.
Après avoir configuré l'IdP, récupérez les informations suivantes afin de les utiliser à l'étape 5.
redirect uri: http://${gateway address}/oauth2/callback issuer: https://eiam-api-cn-hangzhou.aliyuncs.com/v2/idaas_tbn25osdlmz6gtqfq3j2pz****/app_ml5tzapsl7zmfo53wb3nwk****/oidc client id: ******** client secret: *********
Procédure
Cette rubrique utilise Alibaba Cloud IDaaS comme exemple d'IdP. Si vous utilisez un service OIDC géré par vos soins, consultez la section Intégrer Keycloak à ASM pour mettre en œuvre la connexion unique des applications du maillage.
Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, sélectionnez .
Sur la page Ingress Gateway, cliquez sur le nom de la passerelle cible.
Dans le volet de navigation de gauche de la page de présentation de la passerelle, sélectionnez .
-
Dans l'assistant OIDC Config, activez le commutateur Enable gateway OIDC Single Sign-On, configurez les paramètres, puis cliquez sur Next.
Paramètre
Description
Redirect address
Dans cet exemple, l'option Use ingressgateway IP address et le protocole http sont sélectionnés.
Callback Address
L'URL de redirection.
OIDC Issuer URL
L'URL qui identifie et valide le fournisseur OpenID Connect.
Client ID
L'ID client fourni par l'émetteur.
Client Secret
Le secret client fourni par l'émetteur.
Cookie Secret
Une clé secrète utilisée pour générer des cookies sécurisés (l'encodage Base64 est pris en charge).
Cookie Expire
La durée de vie du cookie. La valeur 0 signifie que la session du cookie n'expire jamais.
Cookie refresh interval
L'intervalle d'actualisation du cookie. Définissez ce paramètre sur 0 pour désactiver l'actualisation.
Scopes
Les étendues à demander. Les étendues spécifiées doivent être prises en charge par l'émetteur.
Activez le commutateur Enable gateway OIDC Single Sign-On et configurez les paramètres comme décrit dans le tableau. Définissez Cookie Expire sur
3600s, Cookie refresh interval sur60s, et sélectionnez openid pour Scopes. -
Dans l'assistant Matching Rules, configurez les paramètres et cliquez sur Submit.
Paramètre
Description
Match Mode
Dans cet exemple, l'option Auth If Matched est sélectionnée. La liste suivante décrit les options disponibles.
-
Auth If Matched : les requêtes sélectionnées nécessitent une authentification.
-
Bypass Auth If Matched : les requêtes sélectionnées peuvent contourner l'authentification.
Add Match Rule
Activez le commutateur Path et définissez la valeur sur /productpage. Cette configuration exige que les requêtes adressées au chemin /productpage soient authentifiées via OIDC.
Une fois la configuration créée, l'assistant Complete affiche un message de réussite ainsi que les ressources de sécurité Service Mesh générées. Vous pouvez cliquer sur View YAML pour afficher les détails des ressources.
-
-
Dans un navigateur, accédez à http://${ASM gateway address}/productpage pour vérifier que la configuration de la connexion unique OIDC est effective.
Remplacez ${ASM gateway address} par l'adresse de votre passerelle d'entrée. Vous êtes redirigé vers la page de connexion d'Alibaba Cloud IDaaS. Cette redirection confirme que la configuration de la connexion unique OIDC est effective. Sur la page de connexion, saisissez votre Username, mobile number, or email et votre Password, puis cliquez sur Log In. Une fois connecté, vous pouvez accéder à la page.
FAQ
Comportement de l'application avec la passerelle OIDC
Après avoir activé OIDC sur la passerelle, votre application n'a pas besoin de gérer la logique liée à l'authentification ou à l'autorisation de l'IdP. Un en-tête avec la clé Authorization est ajouté à la requête lors de son passage par la passerelle. Cet en-tête contient un JSON Web Token (JWT) provenant de l'IdP. La charge utile du JWT inclut les informations utilisateur requises et a déjà été validée par la passerelle ; votre application n'a donc pas besoin de la valider à nouveau. Votre application peut analyser cet en-tête à partir de la requête pour obtenir les informations utilisateur.
Signification du cookie de session OIDC
Non. Le cookie enregistre l'état de la session sur la passerelle et n'est pas pertinent pour l'application. Votre application doit uniquement analyser le JWT présent dans l'en-tête de la requête.
Obtention d'informations étendues de l'IdP
Ce processus est spécifique à votre fournisseur d'identité. Pour Alibaba Cloud IDaaS, consultez la section Gérer les champs de compte.
Déconnexion d'une session
La déconnexion implique deux étapes :
Déconnectez-vous de la session IdP en utilisant la méthode fournie par votre IdP. Généralement, un IdP fournit un URI de déconnexion que vous pouvez appeler pour terminer la session.
Supprimez le cookie de session défini par la passerelle sur le client. Vous pouvez le faire en appelant le chemin
/oauth2/sign_out, ce qui amène la passerelle à supprimer automatiquement le cookie correspondant.
À partir d'ASM v1.18.147, vous pouvez configurer directement le point de terminaison de déconnexion de l'IdP sur la passerelle. Vous pouvez spécifier le point de terminaison sur la page de configuration OIDC et définir la règle pour contourner l'authentification pour le chemin /oauth2/sign_out. Une fois la configuration terminée, l'accès à /oauth2/sign_out dans un navigateur supprime le cookie et vous redirige vers le point de terminaison de déconnexion configuré. Pour plus d'informations sur la déconnexion depuis Alibaba Cloud IDaaS, consultez la section Single Logout (SLO).
Documents connexes
Pour plus d'informations sur les paramètres d'application OIDC, tels que l'accès API, la rotation des clés, les types d'octroi OIDC pris en charge par IDaaS et les configurations côté IDaaS et côté application, consultez les sections Paramètres de base, Configurer la connexion unique SSO, Configurer la connexion unique SSO OIDC et Règles relatives aux valeurs étendues du champ id_token OIDC.
Après vous être connecté à une application via la connexion unique IDaaS, vous pouvez initier une déconnexion globale depuis l'application pour terminer la session de connexion principale IDaaS. Pour plus d'informations, consultez la section Single Logout (SLO).