Uwierzytelnianie użytkowników końcowych za pomocą usługi Azure Data Lake Storage Gen1 przy użyciu interfejsu API REST

W tym artykule dowiesz się, jak używać interfejsu API REST do uwierzytelniania użytkowników końcowych przy użyciu usługi Azure Data Lake Storage Gen1. Aby uzyskać informacje na temat uwierzytelniania typu usługa-usługa z Data Lake Storage Gen1 przy użyciu interfejsu API REST, zobacz Service-to-service authentication with Data Lake Storage Gen1 using REST API (Uwierzytelnianie typu usługa-usługa przy użyciu interfejsu API REST).

Wymagania wstępne

Uwierzytelnianie użytkowników końcowych

Uwierzytelnianie użytkowników końcowych jest zalecanym podejściem, jeśli chcesz, aby użytkownik logować się do aplikacji przy użyciu Tożsamość Microsoft Entra. Aplikacja może uzyskiwać dostęp do zasobów platformy Azure z tym samym poziomem dostępu co zalogowany użytkownik. Użytkownik musi okresowo podać swoje poświadczenia, aby aplikacja mogła zachować dostęp.

Wynikiem logowania użytkownika końcowego jest to, że aplikacja otrzymuje token dostępu i token odświeżania. Token dostępu jest dołączany do każdego żądania skierowanego do Data Lake Storage Gen1 lub Data Lake Analytics i jest on domyślnie ważny przez jedną godzinę. Token odświeżania może służyć do uzyskania nowego tokenu dostępu i domyślnie jest ważny przez maksymalnie dwa tygodnie, jeśli jest używany regularnie. Możesz użyć dwóch różnych metod logowania użytkownika końcowego.

W tym scenariuszu aplikacja wyświetla monit o zalogowanie się i wówczas wszystkie operacje są wykonywane w kontekście zalogowanego użytkownika. Wykonaj następujące czynności:

  1. Za pomocą aplikacji przekieruj użytkownika pod następujący adres URL:

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

    Uwaga

    <Identyfikator URI REDIRECT-URI> musi być zakodowany do użycia w adresie URL. Dlatego w przypadku elementu https://localhostnależy użyć polecenia https%3A%2F%2Flocalhost)

    Na potrzeby tego samouczka możesz zastąpić symbole zastępcze w powyższym adresie URL i wkleić go w pasku adresu przeglądarki sieci web. Nastąpi przekierowanie w celu uwierzytelniania przy użyciu identyfikatora logowania do platformy Azure. Gdy pomyślnie się zalogujesz, odpowiedź zostanie wyświetlona na pasku adresu przeglądarki. Odpowiedź będzie miała następujący format:

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

  2. Przechwyć kod autoryzacji z odpowiedzi. W tym samouczku możesz skopiować kod autoryzacji z paska adresu przeglądarki internetowej i przekazać go w żądaniu POST do punktu końcowego tokenu, jak pokazano w poniższym fragmencie kodu:

    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>
    

    Uwaga

    W takim przypadku <identyfikator URI REDIRECT-URI> nie musi być zakodowany.

  3. Odpowiedź to obiekt JSON, który zawiera token dostępu (na przykład "access_token": "<ACCESS_TOKEN>") i token odświeżania (na przykład "refresh_token": "<REFRESH_TOKEN>"). Aplikacja używa tokenu dostępu podczas uzyskiwania dostępu do usługi Azure Data Lake Storage Gen1 i tokenu odświeżania w celu uzyskania innego tokenu dostępu po wygaśnięciu tokenu dostępu.

    {"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. Po wygaśnięciu tokenu dostępu można zażądać nowego tokenu dostępu przy użyciu tokenu odświeżania, jak pokazano w poniższym fragmencie kodu:

    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>
    

Więcej informacji na temat interakcyjnego uwierzytelniania użytkownika zawiera temat Authorization code grant flow (Przepływ udzielania kodu autoryzacji).

Następne kroki

W tym artykule przedstawiono sposób uwierzytelniania typu usługa-usługa w celu uwierzytelniania za pomocą usługi Azure Data Lake Storage Gen1 przy użyciu interfejsu API REST. Teraz możesz zapoznać się z następującymi artykułami, w których omówiono sposób korzystania z interfejsu API REST do pracy z usługą Azure Data Lake Storage Gen1.