本文介绍 Azure 标识扩展 ,并介绍如何实现无密码身份验证,以安全地将 Spring Cloud Azure 应用程序连接到 Azure 服务。 通过消除在应用程序代码、配置文件或环境变量中存储凭据的需要,可以增强安全性和简化配置。
核心功能
Azure 标识扩展
Azure 标识扩展基于 Azure 标识库构建,简化了Microsoft Entra ID 和其他 Azure 服务的身份验证。 它为用户使用各种凭据类型从 Microsoft Entra ID 获取令牌提供了一个通用模板框架,包括:
ClientSecretCredentialClientCertificateCredentialManagedIdentityCredentialDefaultAzureCredential
获取令牌后,它将用作传统密码的替代方法。 这些扩展还包括以下插件,以使用 Microsoft Entra ID 促进数据库身份验证:
AzureMysqlAuthenticationPluginAzurePostgresqlAuthenticationPlugin
Spring Boot 集成
Spring Cloud Azure 基于 Azure 标识扩展构建,提供更高级别、更方便的实现,使开发人员能够专注于业务逻辑,而不是手动身份验证设置。 以下自动配置的 bean 简化了集成:
实现指南
连接到 MySQL
Spring Cloud Azure 使用 AzureMysqlAuthenticationPlugin 将 Microsoft Entra 令牌转换为与 MySQL 兼容的密码。 有关详细信息,请参阅 Spring Cloud Azure MySQL 支持 和 示例存储库。
连接到 PostgreSQL
对于 PostgreSQL,Spring Cloud Azure 使用 AzurePostgresqlAuthenticationPlugin 将 Microsoft Entra 令牌转换为 PostgreSQL 识别的密码。 有关详细信息,请参阅 Spring Cloud Azure PostgreSQL 支持 和 示例存储库。
连接到 Redis
若要为 Redis 启用无密码身份验证,Spring Cloud Azure 使用 AzureAuthenticationTemplate 将 Microsoft Entra 令牌转换为有效的 Redis 凭据。 有关详细信息,请参阅 Spring Cloud Azure Redis 支持 和 示例存储库。
连接到 Azure 服务总线 JMS
对于 Azure 服务总线 JMS,Spring Cloud Azure 使用 TokenCredentialProviderOptions 将 Microsoft Entra 令牌传输到 Azure 服务总线 JMS 凭据。 有关详细信息,请参阅 将 Azure 服务总线与 JMS 和 示例存储库配合使用。