Authentifizierung von Endbenutzern bei Azure Data Lake Storage Gen1 mithilfe der REST-APIEnd-user authentication with Azure Data Lake Storage Gen1 using REST API

In diesem Artikel erfahren Sie, wie Sie mithilfe der REST-API die Authentifizierung von Endbenutzern bei Azure Data Lake Storage Gen1 durchführen.In this article, you learn about how to use the REST API to do end-user authentication with Azure Data Lake Storage Gen1. Informationen zur Dienst-zu-Dienst-Authentifizierung bei Data Lake Storage Gen1 mithilfe der REST-API finden Sie unter Dienst-zu-Dienst-Authentifizierung bei Data Lake Storage Gen1 mithilfe der REST-API.For service-to-service authentication with Data Lake Storage Gen1 using REST API, see Service-to-service authentication with Data Lake Storage Gen1 using REST API.

VoraussetzungenPrerequisites

Authentifizierung von EndbenutzernEnd-user authentication

Die Authentifizierung von Endbenutzern wird empfohlen, wenn sich ein Benutzer mithilfe von Azure AD bei Ihrer Anwendung anmelden soll.End-user authentication is the recommended approach if you want a user to log in to your application using Azure AD. Die Anwendung kann mit der gleichen Zugriffsstufe wie der angemeldete Benutzer auf Azure-Ressourcen zugreifen.Your application is able to access Azure resources with the same level of access as the logged-in user. Der Benutzer muss seine Anmeldeinformationen in regelmäßigen Abständen eingeben, um weiter Zugriff zu haben.The user needs to provide their credentials periodically in order for your application to maintain access.

Das Ergebnis der Endbenutzeranmeldung ist, dass Ihre Anwendung über ein Zugriffs- und ein Aktualisierungstoken verfügt.The result of having the end-user login is that your application is given an access token and a refresh token. Das Zugriffstoken wird an jede an Data Lake Storage Gen1 oder Data Lake Analytics gestellte Anforderung angefügt und ist standardmäßig eine Stunde gültig.The access token gets attached to each request made to Data Lake Storage Gen1 or Data Lake Analytics, and it is valid for one hour by default. Mithilfe des Aktualisierungstokens kann ein neues Zugriffstoken abgerufen werden, das bei regelmäßiger Nutzung standardmäßig bis zu zwei Wochen gültig ist.The refresh token can be used to obtain a new access token, and it is valid for up to two weeks by default, if used regularly. Es gibt zwei Ansätze für die Anmeldung von Endbenutzern.You can use two different approaches for end-user login.

In diesem Szenario wird der Benutzer in der Anwendung zum Anmelden aufgefordert. Alle Vorgänge werden im Zusammenhang mit dem Benutzer durchgeführt.In this scenario, the application prompts the user to log in and all the operations are performed in the context of the user. Führen Sie die folgenden Schritte aus:Perform the following steps:

  1. Leiten Sie den Benutzer über die Anwendung an die folgende URL um:Through your application, redirect the user to the following URL:

    https://login.microsoftonline.com/<TENANT-ID>/oauth2/authorize?client_id=<APPLICATION-ID>&response_type=code&redirect_uri=<REDIRECT-URI>

    Hinweis

    <REDIRECT-URI> muss für die Verwendung in einer URL codiert werden.<REDIRECT-URI> needs to be encoded for use in a URL. Für https://localhost verwenden Sie also https%3A%2F%2Flocalhost ).So, for https://localhost, use https%3A%2F%2Flocalhost)

    In diesem Tutorial können Sie die Platzhalterwerte in der URL oben ersetzen und in der Adressleiste des Webbrowsers einfügen.For the purpose of this tutorial, you can replace the placeholder values in the URL above and paste it in a web browser's address bar. Sie werden umgeleitet und authentifizieren sich mit Ihrer Azure-Anmeldung.You will be redirected to authenticate using your Azure login. Nachdem Sie sich erfolgreich angemeldet haben, wird die Antwort in der Adressleiste des Browsers angezeigt.Once you successfully log in, the response is displayed in the browser's address bar. Die Antwort wird im folgenden Format angezeigt:The response will be in the following format:

    http://localhost/?code=<AUTHORIZATION-CODE>&session_state=<GUID>

  2. Erfassen Sie den in der Antwort angegebenen Autorisierungscode.Capture the authorization code from the response. In diesem Tutorial können Sie den Autorisierungscode aus der Adressleiste des Webbrowsers kopieren und wie im folgenden Codeausschnitt gezeigt in der POST-Anforderung an den Tokenendpunkt übergeben:For this tutorial, you can copy the authorization code from the address bar of the web browser and pass it in the POST request to the token endpoint, as shown in the following snippet:

    curl -X POST https://login.microsoftonline.com/<TENANT-ID>/oauth2/token \
    -F redirect_uri=<REDIRECT-URI> \
    -F grant_type=authorization_code \
    -F resource=https://management.core.windows.net/ \
    -F client_id=<APPLICATION-ID> \
    -F code=<AUTHORIZATION-CODE>
    

    Hinweis

    In diesem Fall muss <REDIRECT-URI> nicht codiert werden.In this case, the <REDIRECT-URI> need not be encoded.

  3. Die Antwort ist ein JSON-Objekt, das ein Zugriffstoken (z.B. "access_token": "<ACCESS_TOKEN>") und ein Aktualisierungstoken (z.B. "refresh_token": "<REFRESH_TOKEN>") enthält.The response is a JSON object that contains an access token (for example, "access_token": "<ACCESS_TOKEN>") and a refresh token (for example, "refresh_token": "<REFRESH_TOKEN>"). Die Anwendung verwendet das Zugriffstoken beim Zugriff auf Azure Data Lake Storage Gen1 und das Aktualisierungstoken zum Abrufen eines anderen Zugriffstokens, wenn ein Zugriffstoken abläuft.Your application uses the access token when accessing Azure Data Lake Storage Gen1 and the refresh token to get another access token when an access token expires.

    {"token_type":"Bearer","scope":"user_impersonation","expires_in":"3599","expires_on":"1461865782","not_before":    "1461861882","resource":"https://management.core.windows.net/","access_token":"<REDACTED>","refresh_token":"<REDACTED>","id_token":"<REDACTED>"}
    
  4. Wenn das Zugriffstoken abläuft, können Sie wie im folgenden Codeausschnitt gezeigt mithilfe des Aktualisierungstokens ein neues Zugriffstoken anfordern:When the access token expires, you can request a new access token using the refresh token, as shown in the following snippet:

    curl -X POST https://login.microsoftonline.com/<TENANT-ID>/oauth2/token  \
         -F grant_type=refresh_token \
         -F resource=https://management.core.windows.net/ \
         -F client_id=<APPLICATION-ID> \
         -F refresh_token=<REFRESH-TOKEN>
    

Weitere Informationen zur interaktiven Benutzerauthentifizierung finden Sie unter Autorisieren des Zugriffs auf Webanwendungen mit OAuth 2.0 und Azure Active Directory.For more information on interactive user authentication, see Authorization code grant flow.

Nächste SchritteNext steps

In diesem Artikel haben Sie erfahren, wie Sie die Authentifizierung zwischen Diensten verwenden, um sich mit der REST-API bei Azure Data Lake Storage Gen1 zu authentifizieren.In this article, you learned how to use service-to-service authentication to authenticate with Azure Data Lake Storage Gen1 using REST API. In den folgenden Artikeln wird erörtert, wie Sie die REST-API mit Azure Data Lake Storage Gen1 verwenden.You can now look at the following articles that talk about how to use the REST API to work with Azure Data Lake Storage Gen1.