Dienst-zu-Dienst-Authentifizierung bei Azure Data Lake Storage Gen1 mithilfe von JavaService-to-service authentication with Azure Data Lake Storage Gen1 using Java

In diesem Artikel erfahren Sie, wie Sie mithilfe des Java SDK die Dienst-zu-Dienst-Authentifizierung bei Azure Data Lake Storage Gen1 durchführen.In this article, you learn about how to use the Java SDK to do service-to-service authentication with Azure Data Lake Storage Gen1. Die Authentifizierung von Endbenutzern bei Data Lake Storage Gen1 mithilfe des Java SDK wird nicht unterstützt.End-user authentication with Data Lake Storage Gen1 using Java SDK is not supported.

VoraussetzungenPrerequisites

Dienst-zu-Dienst-AuthentifizierungService-to-service authentication

  1. Erstellen Sie ein Maven-Projekt. Verwenden Sie hierfür mvn archetype in der Befehlszeile oder eine IDE.Create a Maven project using mvn archetype from the command line or using an IDE. Eine Anleitung zum Erstellen eines Java-Projekts mit IntelliJ finden Sie hier.For instructions on how to create a Java project using IntelliJ, see here. Eine Anleitung zum Erstellen eines Projekts mit Eclipse finden Sie hier.For instructions on how to create a project using Eclipse, see here.

  2. Fügen Sie Ihrer Maven-Datei pom.xml die folgenden Abhängigkeiten hinzu.Add the following dependencies to your Maven pom.xml file. Fügen Sie den folgenden Codeausschnitt vor dem Tag </project> hinzu:Add the following snippet before the </project> tag:

     <dependencies>
       <dependency>
         <groupId>com.microsoft.azure</groupId>
         <artifactId>azure-data-lake-store-sdk</artifactId>
         <version>2.2.3</version>
       </dependency>
       <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-nop</artifactId>
         <version>1.7.21</version>
       </dependency>
     </dependencies>
    

    Die erste Abhängigkeit ist die Verwendung des Data Lake Storage Gen1 SDK (azure-data-lake-store-sdk) aus dem Maven-Repository.The first dependency is to use the Data Lake Storage Gen1 SDK (azure-data-lake-store-sdk) from the maven repository. Die zweite Abhängigkeit ist die Angabe des Protokollierungsframeworks (slf4j-nop) für diese Anwendung.The second dependency is to specify the logging framework (slf4j-nop) to use for this application. Das Data Lake Storage Gen1 SDK verwendet die Protokollierungsfassade slf4j, bei der Sie aus einer Reihe gängiger Protokollierungsframeworks wie log4j, Java-Protokollierung, Logback usw. wählen oder die Protokollierung deaktivieren können.The Data Lake Storage Gen1 SDK uses slf4j logging façade, which lets you choose from a number of popular logging frameworks, like log4j, Java logging, logback, etc., or no logging. Da wir im vorliegenden Beispiel die Protokollierung deaktivieren möchten, verwenden wir die Bindung slf4j-nop.For this example, we disable logging, hence we use the slf4j-nop binding. Informationen zur Verwendung anderer Protokollierungsoptionen für Ihre App finden Sie hier.To use other logging options in your app, see here.

  3. Fügen Sie Ihrer Anwendung die folgenden Importanweisungen hinzu.Add the following import statements to your application.

     import com.microsoft.azure.datalake.store.ADLException;
     import com.microsoft.azure.datalake.store.ADLStoreClient;
     import com.microsoft.azure.datalake.store.DirectoryEntry;
     import com.microsoft.azure.datalake.store.IfExists;
     import com.microsoft.azure.datalake.store.oauth2.AccessTokenProvider;
     import com.microsoft.azure.datalake.store.oauth2.ClientCredsTokenProvider;
    
  4. Rufen Sie mit dem folgenden Codeausschnitt in Ihrer Java-Anwendung ein Token für die Active Directory-Webanwendung ab, die Sie zuvor mit einer der Unterklassen von AccessTokenProvider erstellt haben. (Im folgenden Beispiel wird ClientCredsTokenProvider verwendet).Use the following snippet in your Java application to obtain token for the Active Directory Web application you created earlier using one of the subclasses of AccessTokenProvider (the following example uses ClientCredsTokenProvider). Der Tokenanbieter speichert die verwendeten Anmeldeinformationen zwischen, um das Token im Arbeitsspeicher abzurufen, und erneuert das Token automatisch, bevor es abläuft.The token provider caches the creds used to obtain the token in memory, and automatically renews the token if it is about to expire. Sie können zwar auch eigene Unterklassen von AccessTokenProvider erstellen, damit Token durch Ihren Kundencode abgerufen werden.It is possible to create your own subclasses of AccessTokenProvider so tokens are obtained by your customer code. Wir verwenden jedoch fürs Erste die Unterklasse aus dem SDK.For now, let's just use the one provided in the SDK.

    Ersetzen Sie FILL-IN-HERE durch die Werte für die Azure Active Directory-Webanwendung.Replace FILL-IN-HERE with the actual values for the Azure Active Directory Web application.

     private static String clientId = "FILL-IN-HERE";
     private static String authTokenEndpoint = "FILL-IN-HERE";
     private static String clientKey = "FILL-IN-HERE";
    
     AccessTokenProvider provider = new ClientCredsTokenProvider(authTokenEndpoint, clientId, clientKey);   
    

Das Data Lake Storage Gen1 SDK ermöglicht die komfortable Verwaltung der Sicherheitstoken, die für die Kommunikation mit dem Data Lake Storage Gen1-Konto benötigt werden.The Data Lake Storage Gen1 SDK provides convenient methods that let you manage the security tokens needed to talk to the Data Lake Storage Gen1 account. Das SDK ermöglicht jedoch auch die Verwendung anderer Methoden.However, the SDK does not mandate that only these methods be used. Token können daher auch auf andere Weise abgerufen werden – etwa mit dem Azure Active Directory SDK oder mit eigenem benutzerdefiniertem Code.You can use any other means of obtaining token as well, like using the Azure Active Directory SDK, or your own custom code.

Nächste SchritteNext steps

In diesem Artikel haben Sie erfahren, wie Sie die Authentifizierung von Endbenutzern verwenden, um sich mithilfe des Java SDK bei Data Lake Storage Gen1 zu authentifizieren.In this article, you learned how to use end-user authentication to authenticate with Data Lake Storage Gen1 using Java SDK. In den folgenden Artikeln wird erörtert, wie Sie das Java SDK mit Data Lake Storage Gen1 verwenden.You can now look at the following articles that talk about how to use the Java SDK to work with Data Lake Storage Gen1.