Démarrage rapide : Configurer l’authentification unique pour les applications utilisant le plan Entreprise Azure Spring Apps
Remarque
Les plans Essentiel, Standard et Entreprise seront déconseillés à compter de la mi-mars 2025, avec une période de mise hors service de 3 ans. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez l’annonce de mise hors service d’Azure Spring Apps.
Le plan de consommation standard et dédiée sera déconseillé à compter du 30 septembre 2024, avec un arrêt complet après six mois. Nous vous recommandons de passer à Azure Container Apps. Pour plus d’informations, consultez Migrer le plan de consommation standard et dédiée Azure Spring Apps vers Azure Container Apps.
Cet article s’applique à : ❎ Essentiel/Standard ✅ Entreprise
Ce guide de démarrage rapide montre comment configurer l’authentification unique pour les applications s’exécutant sur le plan Entreprise Azure Spring Apps.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une licence pour le plan Entreprise Azure Spring Apps. Pour plus d’informations, consultez Plan Entreprise dans la Place de marché Azure.
- Azure CLI version 2.45.0 ou ultérieure.
- Git.
- jq
- L’extension de plan Enterprise d’Azure Spring Apps. Utilisez la commande suivante pour supprimer les versions précédentes et installer l’extension de plan Enterprise la plus récente. Si vous avez déjà installé l’extension
spring-cloud
, désinstallez-la pour éviter les incompatibilités de configuration et de version.az extension add --upgrade --name spring az extension remove --name spring-cloud
- Effectuez les étapes indiquées dans Créer et déployer des applications sur le plan Entreprise Azure Spring Apps.
Préparer les informations d’identification d’authentification unique
Pour configurer l’authentification unique pour l’application, vous devez préparer les informations d’identification. Les sections suivantes décrivent les étapes à suivre pour utiliser un fournisseur existant ou provisionner une inscription d’application avec Microsoft Entra ID.
Utiliser un fournisseur existant
Suivez ces étapes pour configurer l’authentification unique à l’aide d’un fournisseur d’identité existant. Si vous provisionnez une inscription d’application Microsoft Entra, passez directement à la section suivante, Créer et configurer une inscription d’application avec Microsoft Entra ID.
Configurez votre fournisseur d’identité existant pour autoriser les redirections vers Spring Cloud Gateway pour VMware Tanzu et le portail API pour VMware Tanzu. Spring Cloud Gateway a un URI unique pour autoriser la ré-entrée vers la passerelle. Le portail d’API a deux URI pour prendre en charge l’interface utilisateur et l’API sous-jacente. Les commandes suivantes récupèrent les URI que vous ajoutez à la configuration de votre fournisseur d’authentification unique.
export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') export PORTAL_URL=$(az spring api-portal show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') echo "https://${GATEWAY_URL}/login/oauth2/code/sso" echo "https://${PORTAL_URL}/oauth2-redirect.html" echo "https://${PORTAL_URL}/login/oauth2/code/sso"
Obtenez le
Client ID
et leClient Secret
pour votre fournisseur d’identité.Obtenez le
Issuer URI
pour votre fournisseur d’identité. Vous devez configurer le fournisseur avec un URI d’émetteur, qui est l’URI qu’il déclare comme identificateur de l’émetteur. Par exemple, si leissuer-uri
fourni esthttps://example.com
, une demande de configuration du fournisseur OpenID est envoyée àhttps://example.com/.well-known/openid-configuration
. Le résultat attendu est une réponse de configuration du fournisseur OpenID.Notes
Vous pouvez utiliser uniquement des serveurs d’autorisation qui prennent en charge le protocole OpenID Connect Discovery.
Obtenez le
JWK URI
pour votre fournisseur d’identité afin de pouvoir l’utiliser ultérieurement. LeJWK URI
a généralement le format${ISSUER_URI}/keys
ou${ISSUER_URI}/<version>/keys
. L’application Identity Service utilise les clés web JSON publiques (JWK) pour vérifier les jetons web JSON (JWT) émis par le serveur d’autorisation de votre fournisseur d’identité d’authentification unique.
Créer et configurer une inscription d’application avec Microsoft Entra ID
Pour inscrire l’application avec Microsoft Entra ID, suivez ces étapes. Si vous utilisez les informations d’identification d’un fournisseur existant, passez directement à la section suivante, Déployer l’application Identity Service.
Utilisez la commande suivante pour créer une inscription d’application avec Microsoft Entra ID et enregistrez la sortie :
az ad app create --display-name <app-registration-name> > ad.json
Utilisez la commande suivante pour récupérer l’ID d’application et collecter la clé secrète client :
export APPLICATION_ID=$(cat ad.json | jq -r '.appId') az ad app credential reset --id ${APPLICATION_ID} --append > sso.json
Utilisez la commande suivante pour affecter un principal de service à l’inscription d’application :
az ad sp create --id ${APPLICATION_ID}
Utilisez les commandes suivantes pour récupérer les URL de Spring Cloud Gateway et du portail d’API, et ajouter les URL de réponse nécessaires à l’inscription d’application Active Directory.
export APPLICATION_ID=$(cat ad.json | jq -r '.appId') export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') export PORTAL_URL=$(az spring api-portal show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') az ad app update \ --id ${APPLICATION_ID} \ --web-redirect-uris "https://${GATEWAY_URL}/login/oauth2/code/sso" "https://${PORTAL_URL}/oauth2-redirect.html" "https://${PORTAL_URL}/login/oauth2/code/sso"
Exécutez la commande suivante pour récupérer le
Client ID
de l’application. Enregistrez la sortie afin de la réutiliser plus tard dans ce guide de démarrage rapide.cat sso.json | jq -r '.appId'
Exécutez la commande suivante pour récupérer le
Client Secret
de l’application. Enregistrez la sortie afin de la réutiliser plus tard dans ce guide de démarrage rapide.cat sso.json | jq -r '.password'
Utilisez la commande suivante pour récupérer le
Issuer URI
. Enregistrez la sortie afin de la réutiliser plus tard dans ce guide de démarrage rapide.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/v2.0"
Récupérez le
JWK URI
à partir de la sortie de la commande suivante. L’application Identity Service utilise les clés web JSON publiques (JWK) pour vérifier les jetons web JSON (JWT) émis par Active Directory.export TENANT_ID=$(cat sso.json | jq -r '.tenant') echo "https://login.microsoftonline.com/${TENANT_ID}/discovery/v2.0/keys"
Déployer l’application Identity Service
Pour terminer l’expérience d’authentification unique, effectuez les étapes suivantes pour déployer l’application Identity Service. L’application Identity Service fournit une route unique pour faciliter l’identification de l’utilisateur.
Accédez au dossier du projet.
Utilisez la commande suivante pour créer l’application
identity-service
:az spring app create \ --resource-group <resource-group-name> \ --name identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Utilisez la commande suivante pour activer la configuration externalisée pour le service d’identité en établissant une liaison au service de configuration d’application :
az spring application-configuration-service bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Utilisez la commande suivante afin d’activer la découverte de service et l’inscription pour le service d’identité en établissant une liaison au registre de service :
az spring service-registry bind \ --resource-group <resource-group-name> \ --app identity-service \ --service <Azure-Spring-Apps-service-instance-name>
Utilisez la commande suivante pour déployer le service d’identité :
az spring app deploy \ --resource-group <resource-group-name> \ --name identity-service \ --service <Azure-Spring-Apps-service-instance-name> \ --config-file-pattern identity/default \ --source-path apps/acme-identity \ --build-env BP_JVM_VERSION=17 \ --env "JWK_URI=<jwk-uri>"
Utilisez la commande suivante pour router les requêtes vers le service d’identité :
az spring gateway route-config create \ --resource-group <resource-group-name> \ --name identity-routes \ --service <Azure-Spring-Apps-service-instance-name> \ --app-name identity-service \ --routes-file azure-spring-apps-enterprise/resources/json/routes/identity-service.json
Configurer l’authentification unique pour Spring Cloud Gateway
Vous pouvez configurer Spring Cloud Gateway pour authentifier les requêtes avec l’authentification unique. Pour configurer Spring Cloud Gateway de façon à utiliser l’authentification unique, effectuez les étapes suivantes :
Utilisez les commandes suivantes pour configurer Spring Cloud Gateway de façon à utiliser l’authentification unique :
export GATEWAY_URL=$(az spring gateway show \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url') az spring gateway update \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-service-instance-name> \ --api-description "Fitness Store API" \ --api-title "Fitness Store" \ --api-version "v1.0" \ --server-url "https://${GATEWAY_URL}" \ --allowed-origins "*" \ --client-id <client-id> \ --client-secret <client-secret> \ --scope "openid,profile" \ --issuer-uri <issuer-uri>
Indiquez à l’application de service de panier (cart-service) d’utiliser Spring Cloud Gateway pour l’authentification. Utilisez la commande suivante pour fournir les variables d’environnement nécessaires :
az spring app update \ --resource-group <resource-group-name> \ --name cart-service \ --service <Azure-Spring-Apps-service-instance-name> \ --env "AUTH_URL=https://${GATEWAY_URL}" "CART_PORT=8080"
Indiquez à l’application de service de commande (order-service) d’utiliser Spring Cloud Gateway pour l’authentification. Utilisez la commande suivante pour fournir les variables d’environnement nécessaires :
az spring app update \ --resource-group <resource-group-name> \ --name order-service \ --service <Azure-Spring-Apps-service-instance-name> \ --env "AcmeServiceSettings__AuthUrl=https://${GATEWAY_URL}"
Utilisez la commande suivante pour récupérer l’URL de Spring Cloud Gateway :
echo "https://${GATEWAY_URL}"
Vous pouvez ouvrir l’URL de sortie dans un navigateur pour explorer l’application mise à jour. La fonction de connexion est maintenant opérationnelle, ce qui vous permet d’ajouter des éléments au panier et de passer des commandes. Une fois que vous êtes connecté, le bouton d’informations du client affiche le nom d’utilisateur connecté.
Configurer l’authentification unique pour le portail d’API
Vous pouvez configurer le portail d’API pour VMware Tanzu de façon à utiliser l’authentification unique afin d’exiger l’authentification avant d’explorer les API. Utilisez les commandes suivantes pour configurer l’authentification unique pour le portail d’API :
export PORTAL_URL=$(az spring api-portal show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
az spring api-portal update \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> \
--client-id <client-id> \
--client-secret <client-secret> \
--scope "openid,profile,email" \
--issuer-uri <issuer-uri>
Utilisez les commandes suivantes pour récupérer l’URL du portail d’API :
export PORTAL_URL=$(az spring api-portal show \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-service-instance-name> | jq -r '.properties.url')
echo "https://${PORTAL_URL}"
Vous pouvez ouvrir l’URL de sortie dans un navigateur pour explorer les API d’application. Vous êtes dirigé vers la page de connexion avant d’explorer les API.
Nettoyer les ressources
Si vous prévoyez d’utiliser d’autres guides de démarrage rapide et tutoriels, vous pouvez conserver ces ressources. Quand vous n’en avez plus besoin, supprimez le groupe de ressources, ce qui supprime également les ressources qu’il contient. Pour supprimer le groupe de ressources à l’aide d’Azure CLI, utilisez les commandes suivantes :
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Étapes suivantes
Passez à l’un des guides de démarrage rapide facultatifs suivants :