Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Spring Cloud Azure es un proyecto de open source que facilita el uso de servicios Azure en Spring.
Spring Cloud Azure es un proyecto de open source, con todos los recursos disponibles para el público. En la lista siguiente se proporcionan vínculos a estos recursos:
- Código fuente: Azure/azure-sdk-for-java.
- Ejemplos: Azure-Samples/azure-spring-boot-samples.
- Documentación: Spring Cloud Azure.
¿Para qué se usa Spring Cloud Azure?
Spring Cloud Azure puede ayudar a facilitar la realización de las siguientes tareas en las aplicaciones de Spring:
- Administrar las propiedades de configuración con Azure App Configuration.
- Enviar y recibir mensajes con Azure Event Hubs, Azure Service Bus y Azure Storage Queue.
- Administración de secretos y certificados con Azure Key Vault.
- Compatibilidad con el inicio de sesión de usuario con cuentas profesionales o educativas aprovisionadas con Microsoft Entra ID.
- Admitir el inicio de sesión de usuario con cuentas sociales como Facebook y Google con Azure Active Directory B2C.
- Proteger las API web y acceder a las API protegidas, como Microsoft Graph, para trabajar con los datos de los usuarios y la organización con Microsoft Entra ID y Azure Active Directory B2C.
- Almacenar datos estructurados con Azure Cosmos DB.
- Almacenar datos no estructurados como texto o datos binarios con Azure Blob Storage.
- Almacenar archivos con Azure Files.
Ventajas de usar Spring Cloud Azure
En la sección siguiente se muestran las ventajas de usar Spring Cloud Azure. En esta sección, la recuperación de secretos almacenados en Azure Key Vault se usa como ejemplo. En esta sección se comparan las diferencias entre el desarrollo de una aplicación de Spring Boot con y sin Spring Cloud Azure.
Sin Spring Cloud Azure
Sin Spring Cloud Azure, si desea recuperar secretos almacenados en Azure Key Vault, debe seguir estos pasos:
Agregue las siguientes dependencias al archivo pom.xml:
<dependency> <groupId>com.azure</groupId> <artifactId>azure-security-keyvault-secrets</artifactId> <version>4.5.2</version> </dependency>Cree una instancia de clase
SecretClientmediante código similar al ejemplo siguiente:public class DemoClass { public static void main(String... args) { SecretClient client = new SecretClientBuilder() .vaultUrl("vaultUrl") .credential(new ClientSecretCredentialBuilder() .tenantId("tenantId") .clientId("clientId") .clientSecret("clientSecret") .build()) .buildClient(); } }Evite la codificación fija de información, como
client-idyclient-secret, mediante la configuración de estas propiedades, como se muestra en el ejemplo siguiente:@ConfigurationProperties("azure.keyvault") public class KeyVaultProperties { private String vaultUrl; private String tenantId; private String clientId; private String clientSecret; public KeyVaultProperties(String vaultUrl, String tenantId, String clientId, String clientSecret) { this.vaultUrl = vaultUrl; this.tenantId = tenantId; this.clientId = clientId; this.clientSecret = clientSecret; } public String getVaultUrl() { return vaultUrl; } public void setVaultUrl(String vaultUrl) { this.vaultUrl = vaultUrl; } public String getTenantId() { return tenantId; } public void setTenantId(String tenantId) { this.tenantId = tenantId; } public String getClientId() { return clientId; } public void setClientId(String clientId) { this.clientId = clientId; } public String getClientSecret() { return clientSecret; } public void setClientSecret(String clientSecret) { this.clientSecret = clientSecret; } }Actualice el código de la aplicación como se muestra en este ejemplo:
@SpringBootApplication @EnableConfigurationProperties(KeyVaultProperties.class) public class SecretClientApplication implements CommandLineRunner { private KeyVaultProperties properties; public SecretClientApplication(KeyVaultProperties properties) { this.properties = properties; } public static void main(String[] args) { SpringApplication.run(SecretClientApplication.class, args); } @Override public void run(String... args) { SecretClient client = new SecretClientBuilder() .vaultUrl(properties.getVaultUrl()) .credential(new ClientSecretCredentialBuilder() .tenantId(properties.getTenantId()) .clientId(properties.getClientId()) .clientSecret(properties.getClientSecret()) .build()) .buildClient(); System.out.println("sampleProperty: " + client.getSecret("sampleProperty").getValue()); } }Agregue las propiedades necesarias al archivo application.yml, como se muestra en el ejemplo siguiente:
azure: keyvault: vault-url: tenant-id: client-id: client-secret:Si necesita usar
SecretClienten varios lugares, defina un bean deSecretClient. A continuación, conecte automáticamenteSecretClienten los lugares pertinentes.
Con Spring Cloud Azure
Con Spring Cloud Azure, si desea recuperar secretos almacenados en Azure Key Vault, los requisitos son más sencillos, como se muestra en los pasos siguientes:
Agregue las siguientes dependencias al archivo pom.xml:
<dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId> </dependency> </dependencies>Use una lista de materiales (BOM) para administrar la versión de spring Cloud Azure, como se muestra en el ejemplo siguiente:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Nota:
Si usa Spring Boot 4.0.x, asegúrese de establecer la versión en spring-cloud-azure-dependencies7.0.0.
Si usa Spring Boot 3.5.x, asegúrese de establecer la versión spring-cloud-azure-dependencies a 6.1.0.
Si usa Spring Boot 3.1.x-3.5.x, asegúrese de establecer la spring-cloud-azure-dependencies versión 5.25.0en .
Si usa Spring Boot 2.x, asegúrese de establecer la versión de spring-cloud-azure-dependencies en 4.20.0.
Esta lista de materiales (BOM) debe configurarse en la sección <dependencyManagement> del archivo pom.xml. Esto garantiza que todas las dependencias de Spring Cloud Azure usen la misma versión.
Para obtener más información sobre la versión usada para esta lista de materiales, consulte Which Version of Spring Cloud Azure Should I Use.
Agregue las siguientes propiedades al archivo application.yml:
spring: cloud: azure: keyvault: secret: endpoint:Inicie sesión con Azure CLI mediante el comando siguiente. A continuación, Azure CLI proporcionará sus credenciales, por lo que no será necesario agregar otra información de credenciales, como
client-idyclient-secret.az loginConectar automáticamente
SecretClienten los lugares pertinentes, como se muestra en el ejemplo siguiente:@SpringBootApplication public class SecretClientApplication implements CommandLineRunner { private final SecretClient secretClient; public SecretClientApplication(SecretClient secretClient) { this.secretClient = secretClient; } public static void main(String[] args) { SpringApplication.run(SecretClientApplication.class, args); } @Override public void run(String... args) { System.out.println("sampleProperty: " + secretClient.getSecret("sampleProperty").getValue()); } }
Spring Cloud Azure proporcionará otras características además de la SecretClient configurada automáticamente. Por ejemplo, puede usar @Value para obtener el valor del secreto, como se muestra en el ejemplo siguiente:
@SpringBootApplication
public class PropertySourceApplication implements CommandLineRunner {
@Value("${sampleProperty1}")
private String sampleProperty1;
public static void main(String[] args) {
SpringApplication.run(PropertySourceApplication.class, args);
}
public void run(String[] args) {
System.out.println("sampleProperty1: " + sampleProperty1);
}
}
Componentes de Spring Cloud Azure
Azure support
Proporciona compatibilidad con la configuración automática para Azure Services, como Service Bus, Storage, Active Directory, etc.
Microsoft Entra ID
Proporciona compatibilidad de integración con Spring Security con Microsoft Entra ID para la autenticación. Para obtener más información, consulte Spring Cloud Azure support for Spring Security.
Azure Key Vault
Proporciona compatibilidad con anotaciones de Spring @Value para la integración con secretos de Azure Key Vault. Para obtener más información, consulte Spring Cloud Azure administración de secretos.
Azure Storage
Proporciona compatibilidad con Spring Boot para servicios de Azure Storage. Para obtener más información, consulte Spring Cloud Azure control de recursos.
Obtención de soporte técnico
Si necesita soporte técnico para Spring Cloud Azure, puede solicitar ayuda de las siguientes maneras:
- Cree vales de Azure support. Los clientes con un plan Azure support pueden abrir un vale Azure support. Se recomienda esta opción si su problema requiere atención inmediata.
- Problemas de GitHub de archivos en el repositorio Azure/azure-sdk-for-java. Usamos GitHub problemas para realizar un seguimiento de errores, preguntas y solicitudes de características. GitHub problemas son gratuitos, pero no se garantiza el tiempo de respuesta. Para obtener más información, consulte GitHub problemas de soporte técnico.