Partager via


Prise en charge d’Azure Redis Spring Cloud

Cet article s’applique à :✅ version 4.19.0 ✅ version 5.20.1

Cet article explique comment utiliser Spring Cloud Azure et Spring Data Redis ensemble et fournir différents types d’informations d’identification pour l’authentification auprès d’Azure Cache pour Redis.

Cache Azure pour Redis fournit un magasin de données en mémoire basé sur le logiciel Redis. Redis améliore considérablement les performances et l’extensibilité d’une application qui utilise des magasins de données principaux.

Versions de Redis prises en charge

Pour connaître les versions prises en charge, consultez versions actuelles.

Fonctionnalités principales

Connexion sans mot de passe

La connexion sans mot de passe utilise l’authentification Microsoft Entra pour la connexion aux services Azure sans stocker d’informations d’identification dans l’application, ses fichiers de configuration ou dans des variables d’environnement. L’authentification Microsoft Entra est un mécanisme de connexion au Cache Azure pour Redis à l’aide d’identités définies dans l’ID Microsoft Entra. Avec l’authentification Microsoft Entra, vous pouvez gérer les identités de cache et d’autres services Microsoft dans un emplacement central, ce qui simplifie la gestion des autorisations.

Fonctionnement

Spring Cloud Azure crée d’abord l’un des types d’informations d’identification suivants en fonction de la configuration de l’authentification de l’application :

  • ClientSecretCredential
  • ClientCertificateCredential
  • UsernamePasswordCredential
  • ManagedIdentityCredential

Si aucun de ces types d’informations d’identification n’est trouvé, la chaîne d’informations d’identification via DefaultTokenCredential est utilisée pour obtenir des informations d’identification à partir des propriétés de l’application, des variables d’environnement, une identité managée ou des IDE. Pour plus d’informations, consultez l’authentification Spring Cloud Azure.

Configuration

Propriétés configurables lors de l’utilisation de la prise en charge de Redis :

Propriété Description Valeur par défaut Obligatoire
spring.cloud.azure.redis.enabled Indique si un cache Azure pour Redis est activé. vrai Non
spring.cloud.azure.redis.name Nom de l’instance Azure Cache pour Redis. Oui
spring.cloud.azure.redis.resource.resource-group Groupe de ressources du Cache Azure pour Redis. Oui
spring.cloud.azure.profile.subscription-id ID d’abonnement. Oui
spring.data.redis.azure.passwordless-enabled Indique s’il faut activer le cache Azure sans mot de passe pour Redis. faux Non

Utilisation de base

Les sections suivantes montrent les scénarios d’utilisation classiques de l’application Spring Boot.

Se connecter au Cache Azure pour Redis avec un mot de passe sans mot de passe

  1. Ajoutez la dépendance suivante à votre projet. Cela inclut automatiquement la dépendance spring-boot-starter dans votre projet transitivement.

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    

    Note

    Les connexions sans mot de passe ont été prises en charge depuis la version 5.20.1.

    N’oubliez pas d’ajouter le spring-cloud-azure-dependencies boM avec la dépendance ci-dessus. Pour plus d’informations, consultez la section Prise en main du guide de développement Spring Cloud Azure.

  2. Configurez les propriétés suivantes dans votre fichier application.yml :

    spring:
      data:
        redis:
          host: ${AZURE_CACHE_REDIS_HOST}
          username: ${AZURE_CACHE_REDIS_USERNAME}
          port: 6380
          ssl:
            enabled: true
          azure:
            passwordless-enabled: true
    

    Important

    La connexion sans mot de passe utilise l’authentification Microsoft Entra. Pour utiliser l’authentification Microsoft Entra, vous devez activer l’authentification Microsoft Entra et sélectionner user(managed identity/service principal) pour affecter Data Owner Access Policy.

    Pour plus d’informations et obtenir la valeur de username, consultez la Activer l’authentification d’ID Microsoft Entra sur votre cache section Utiliser l’ID Microsoft Entra pour l’authentification du cache.

Se connecter au Cache Azure pour Redis avec une identité managée

  1. Pour utiliser l’identité managée, vous devez activer l’identité managée pour votre service et activer l’authentification Microsoft Entra sur votre cache.

  2. Ajoutez ensuite les propriétés suivantes dans votre fichier application.yml :

    spring:
      cloud:
        azure:
          credential:
            managed-identity-enabled: true
    

    Important

    Le redis.username doit passer à l’ID d’objet d’identité managée (principal).

    Si vous utilisez l’identité managée affectée par l’utilisateur, vous devez également ajouter la propriété spring.cloud.azure.credential.client-id avec votre ID client d’identité managée affectée par l’utilisateur.

Se connecter au cache Azure pour Redis via Azure Resource Manager

Pour vous connecter au Cache Azure pour Redis, procédez comme suit :

  1. Ajoutez la dépendance suivante à votre projet. Cela inclut automatiquement la dépendance spring-boot-starter dans votre projet transitivement.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-data-redis-lettuce</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-resourcemanager</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    

    Note

    N’oubliez pas d’ajouter le spring-cloud-azure-dependencies boM avec la dépendance ci-dessus. Pour plus d’informations, consultez la section Prise en main du guide de développement Spring Cloud Azure.

  1. Configurez les propriétés suivantes dans votre fichier application.yml :

    spring:
      cloud:
        azure:
          profile:
            subscription-id: ${AZURE_SUBSCRIPTION_ID}
          redis:
            name: ${AZURE_CACHE_REDIS_NAME}
            resource:
              resource-group: ${AZURE_RESOURCE_GROUP}
    

Échantillons

Consultez le référentiel azure-spring-boot-samples sur GitHub.