Freigeben über


Was ist Spring Cloud Azure?

Spring Cloud Azure ist ein Open Source-Projekt, das die Verwendung von Azure-Diensten in Spring-Anwendungen erleichtert.

Spring Cloud Azure ist ein Open Source-Projekt mit allen Ressourcen, die für die Öffentlichkeit verfügbar sind. Die folgende Liste enthält Links zu diesen Ressourcen:

Wofür wird Spring Cloud Azure verwendet?

Spring Cloud Azure kann dazu beitragen, die folgenden Aufgaben in Spring-Anwendungen zu vereinfachen:

Vorteile der Verwendung von Spring Cloud Azure

Im folgenden Abschnitt werden die Vorteile der Verwendung von Spring Cloud Azure veranschaulicht. In diesem Abschnitt wird der Abruf von geheimen Schlüsseln, die in Azure Key Vault gespeichert sind, als Beispiel verwendet. In diesem Abschnitt werden die Unterschiede zwischen der Entwicklung einer Spring Boot-Anwendung mit und ohne Spring Cloud Azure verglichen.

Ohne Spring Cloud Azure

Ohne Spring Cloud Azure müssen Sie die folgenden Schritte ausführen, wenn Sie geheime Schlüssel abrufen möchten, die in Azure Key Vault gespeichert sind:

  1. Fügen Sie der datei pom.xml die folgenden Abhängigkeiten hinzu:

    <dependency>
       <groupId>com.azure</groupId>
       <artifactId>azure-security-keyvault-secrets</artifactId>
       <version>4.5.2</version>
    </dependency>
    
  2. Erstellen Sie eine SecretClient Klasseninstanz mithilfe von Code, der dem folgenden Beispiel ähnelt:

    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();
        }
    }
    
  3. Vermeiden Sie hartcodierte Informationen wie client-id und client-secret, indem Sie festlegen, dass diese Eigenschaften konfigurierbar sind, wie im folgenden Beispiel gezeigt:

    @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;
        }
    }
    
  4. Aktualisieren Sie ihren Anwendungscode wie in diesem Beispiel gezeigt:

    @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());
        }
    }
    
  5. Fügen Sie ihrer application.yml-Datei die erforderlichen Eigenschaften hinzu, wie im folgenden Beispiel gezeigt:

    azure:
      keyvault:
        vault-url:
        tenant-id:
        client-id:
        client-secret:
    
  6. Wenn Sie SecretClient an mehreren Stellen verwenden müssen, definieren Sie eine SecretClient Bean. Verkabeln Sie SecretClient automatisch an den relevanten Stellen.

Mit Spring Cloud Azure

Wenn Sie mit Spring Cloud Azure geheime Schlüssel abrufen möchten, die in Azure Key Vault gespeichert sind, sind die Anforderungen einfacher, wie in den folgenden Schritten gezeigt:

  1. Fügen Sie der datei pom.xml die folgenden Abhängigkeiten hinzu:

    <dependencies>
      <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-starter-keyvault-secrets</artifactId>
      </dependency>
    </dependencies>
    
  2. Verwenden Sie eine Stückliste (BOM), um die Spring Cloud Azure-Version zu verwalten, wie im folgenden Beispiel gezeigt:

    <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>com.azure.spring</groupId>
          <artifactId>spring-cloud-azure-dependencies</artifactId>
          <version>5.22.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
    

    Hinweis

    Wenn Sie Spring Boot 2.x verwenden, stellen Sie sicher, dass Sie die spring-cloud-azure-dependencies Version auf 4.20.0 festlegen. Diese Stückliste (Bill of Material, BOM) sollte im Abschnitt <dependencyManagement> Ihrer pom.xml Datei konfiguriert werden. Dadurch wird sichergestellt, dass alle Spring Cloud Azure-Abhängigkeiten dieselbe Version verwenden. Weitere Informationen zu der Version, die für diese BOM verwendet wird, finden Sie unter Welche Version von Spring Cloud Azure sollte ich verwenden.

  3. Fügen Sie der datei application.yml die folgenden Eigenschaften hinzu:

    spring:
      cloud:
        azure:
          keyvault:
            secret:
              endpoint:
    
  4. Melden Sie sich mit Azure CLI mit dem folgenden Befehl an. Ihre Anmeldeinformationen werden dann von Azure CLI bereitgestellt, sodass keine zusätzlichen Anmeldeinformationen wie client-id und client-secret hinzugefügt werden müssen.

    az login
    
  5. Automatische Verkabelung SecretClient an den relevanten Stellen, wie im folgenden Beispiel gezeigt:

    @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 bietet neben der automatischen Konfiguration von SecretClient noch einige weitere Funktionen. Sie können z. B. den geheimen Wert @Value abrufen, wie im folgenden Beispiel gezeigt:

@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);
    }

}

Komponenten von Spring Cloud Azure

Azure-Support

Bietet Unterstützung für die automatische Konfiguration für Azure-Dienste, z. B. Service Bus, Speicher, Active Directory usw.

Microsoft Entra ID

Bietet Integrationsunterstützung für Spring Security mit Microsoft Entra ID für die Authentifizierung. Weitere Informationen finden Sie unter Spring Cloud Azure-Unterstützung für Spring Security.

Azure Key Vault (ein Dienst zur sicheren Verwaltung kryptografischer Schlüssel)

Bietet Spring @Value-Anmerkungsunterstützung für die Integration von Azure Key Vault-Geheimnissen. Weitere Informationen finden Sie unter Spring Cloud Secret Management.

Azure Storage

Bietet Spring Boot-Unterstützung für Azure Storage-Dienste. Weitere Informationen finden Sie unter Spring Cloud Azure-Ressourcenbehandlung.

Unterstützung erhalten

Wenn Sie Unterstützung für Spring Cloud Azure benötigen, können Sie auf folgende Weise Hilfe anfordern:

  • Erstellen Sie Azure-Supporttickets. Kunden mit einem Azure-Supportplan können ein Azure-Supportticket öffnen. Wir empfehlen diese Option, wenn Ihr Problem sofortige Aufmerksamkeit erfordert.
  • Melden Sie GitHub-Probleme im Azure/azure-sdk-for-java-Repository. Wir verwenden GitHub-Probleme, um Fehler, Fragen und Featureanforderungen nachzuverfolgen. GitHub-Probleme sind kostenlos, aber die Reaktionszeit ist nicht garantiert. Weitere Informationen finden Sie unter GitHub-Supportprozess.

Nächste Schritte