この記事では、Spring Cloud Azure と Spring Data Redis を一緒に使用し、Azure Cache for Redis への認証にさまざまな種類の資格情報を提供する方法について説明します。
Azure Cache for Redis は、Redis ソフトウェアに基づくメモリ内データ ストアを提供します。 Redis では、バックエンド データ ストアを頻繁に使用するアプリケーションのパフォーマンスとスケーラビリティが向上します。
サポートされている Redis のバージョン
サポートされているバージョンについては、「現在のバージョン
コア機能
パスワードレス接続
パスワードレス接続では、アプリケーション、その構成ファイル、または環境変数に資格情報を格納せずに Azure サービスに接続するために Microsoft Entra 認証が使用されます。 Microsoft Entra 認証は、Microsoft Entra ID で定義された ID を使用して Azure Cache for Redis に接続するためのメカニズムです。 Microsoft Entra 認証を使用すると、キャッシュ ID やその他の Microsoft サービスを一元的な場所で管理できるため、アクセス許可の管理が簡素化されます。
しくみ
Spring Cloud Azure では、まず、アプリケーション認証の構成に応じて、次のいずれかの種類の資格情報を構築します。
ClientSecretCredentialClientCertificateCredentialUsernamePasswordCredentialManagedIdentityCredential
これらの種類の資格情報が見つからない場合は、DefaultTokenCredential 経由の資格情報チェーンを使用して、アプリケーションのプロパティ、環境変数、マネージド ID、または IDE から資格情報を取得します。 詳細については、Spring Cloud Azure 認証
構成
Redis サポートを使用する場合の構成可能なプロパティ:
| 財産 | 形容 | 既定値 | 必須 |
|---|---|---|---|
| spring.cloud.azure.redis.enabled (英語) | Azure Cache for Redis が有効になっているかどうか。 | 真 | いいえ |
| spring.cloud.azure.redis.name を |
Azure Cache for Redis インスタンス名。 | はい | |
| spring.cloud.azure.redis.resource.resource-group を |
Azure Cache for Redis のリソース グループ。 | はい | |
| spring.cloud.azure.profile.subscription-id を |
サブスクリプション ID。 | はい | |
| spring.data.redis.azure.passwordless 対応の |
Azure Cache for Redis のパスワードレスを有効にするかどうかを指定します。 | 偽 | いいえ |
基本的な使用方法
以降のセクションでは、従来の Spring Boot アプリケーションの使用シナリオを示します。
パスワードレスで Azure Cache for Redis に接続する
次の依存関係をプロジェクトに追加します。 この構成では、
spring-boot-starter依存関係がプロジェクトに推移的に自動的に含まれます。<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>手記
この依存関係と共に、
spring-cloud-azure-dependenciesBOM を必ず追加してください。 詳細については、「Spring Cloud Azure 開発者ガイド」の「Getting started」セクションを参照してください。application.yml ファイルで次のプロパティを構成します。
spring: data: redis: host: ${AZURE_CACHE_REDIS_HOST} username: ${AZURE_CACHE_REDIS_USERNAME} port: 6380 ssl: enabled: true azure: passwordless-enabled: true大事な
パスワードレス接続では、Microsoft Entra 認証が使用されます。 Microsoft Entra 認証を使用するには、Microsoft Entra 認証を有効にし、
user(managed identity/service principal)を選択してData Owner Access Policy割り当てる必要があります。詳細と
の値を取得するには、「キャッシュ認証に Microsoft Entra ID を使用する」の「 キャッシュ で Microsoft Entra ID 認証を有効にする」セクションを参照してください。
マネージド ID を使用して Azure Cache for Redis に接続する
マネージド ID を使用するには、サービスのマネージド ID を有効にし、キャッシュで Microsoft Entra 認証を有効
必要があります。 次に、application.yml ファイルに次のプロパティを追加します。
spring: cloud: azure: credential: managed-identity-enabled: true大事な
redis.usernameは、マネージド ID オブジェクト (プリンシパル) ID に変更する必要があります。ユーザー割り当てマネージド ID を使用している場合は、ユーザー割り当てマネージド ID クライアント ID を持つプロパティ
spring.cloud.azure.credential.client-idも追加する必要があります。
Azure Resource Manager を使用して Azure Cache for Redis に接続する
Azure Cache for Redis に接続するには、次の手順に従います。
次の依存関係をプロジェクトに追加します。 この構成では、
spring-boot-starter依存関係がプロジェクトに推移的に自動的に含まれます。<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>手記
この依存関係と共に、
spring-cloud-azure-dependenciesBOM を必ず追加してください。 詳細については、「Spring Cloud Azure 開発者ガイド」の「Getting started」セクションを参照してください。
application.yml ファイルで次のプロパティを構成します。
spring: cloud: azure: profile: subscription-id: ${AZURE_SUBSCRIPTION_ID} redis: name: ${AZURE_CACHE_REDIS_NAME} resource: resource-group: ${AZURE_RESOURCE_GROUP}
サンプル
GitHub の azure-spring-boot-samples リポジトリを参照してください。