Udostępnij za pośrednictwem


Uwierzytelnianie aplikacji klienckiej (interfejs API REST usługi Azure Data Catalog)


W tym artykule przedstawiono sposób uwierzytelniania aplikacji klienckiej Data Catalog. Zawiera przykłady w języku C#; jednak proces uwierzytelniania jest taki sam w przypadku innych języków programowania.

Data Catalog aplikacje klienckie używają usługi Active Directory (Azure AD) do uwierzytelniania użytkowników i ochrony aplikacji. Uwierzytelnianie to proces identyfikowania aplikacji lub użytkownika. Aby zidentyfikować aplikację kliencą w Azure AD, należy zarejestrować aplikację przy użyciu Azure AD. Rejestrując aplikację kliencką w usłudze Azure Active Directory, możesz udzielić aplikacji dostępu do interfejsów API Data Catalog. Aby dowiedzieć się, jak zarejestrować aplikację klienta Data Catalog, zobacz Rejestrowanie aplikacji klienckiej.

Data Catalog wywołania interfejsu API REST są wykonywane w imieniu uwierzytelnionego użytkownika, przekazując token w nagłówku "Autoryzacja" żądania. Token jest uzyskiwany za pośrednictwem usługi Azure Active Directory.

Co należy uwierzytelnić Data Catalog aplikacji klienckiej

Aby uwierzytelnić aplikację klienta Data Catalog i wykonać żądanie internetowe REST, należy wykonać następujące czynności:

  1. Rejestrowanie aplikacji klienckiej — aby zarejestrować aplikację klienta Data Catalog, zobacz Rejestrowanie aplikacji klienckiej. Rejestrując aplikację kliencką w usłudze Azure Active Directory, możesz udzielić aplikacji dostępu do interfejsów API Data Catalog.

  2. Przypisywanie identyfikatora klienta aplikacji — aby uzyskać identyfikator klienta aplikacji, zobacz Jak uzyskać identyfikator aplikacji klienckiej. Identyfikator klienta jest używany przez aplikację do identyfikowania się użytkownikom, z których żądają uprawnień.

    • W kodzie aplikacji klienckiej przypisz zmienną clientID do identyfikatora clientID aplikacji platformy Azure.
  3. Przypisz identyfikator URI przekierowania — w przypadku aplikacji klienckiej identyfikator URI przekierowania daje Azure AD więcej szczegółów na temat konkretnej aplikacji, która uwierzytelnia. Jednolity identyfikator zasobu (URI) jest wartością identyfikującą nazwę zasobu.

    • W kodzie aplikacji klienckiej przypisz identyfikator redirectUri do https://login.live.com/oauth20_desktop.srf. Ponieważ aplikacja kliencka nie ma usługi zewnętrznej do przekierowania, ten identyfikator URI jest standardowym symbolem zastępczym dla aplikacji klienckich.
  4. Przypisz identyfikator URI zasobu dla interfejsu API Data Catalog — identyfikator URI zasobu identyfikuje zasób interfejsu API Data Catalog.

    • W kodzie aplikacji klienckiej przypisz identyfikator resourceUri do https://datacatalog.azure.com.
  5. Przypisz identyfikator URI urzędu OAuth2 — identyfikator URI urzędu identyfikuje zasób urzędu OAuth2.

    • W kodzie aplikacji klienckiej przypisz identyfikator URI urzędu do https://login.windows.net/common/oauth2/authorizeelementu .

Aby wysłać żądanie danych do usługi REST Data Catalog, musisz podać token dostępu. W aplikacji klienckiej platformy .NET użyjesz biblioteki Microsoft Authentication Library (MSAL), aby uzyskać token dostępu.

Ważne

Aby uwierzytelnić aplikację kliencką, należy dodać odwołanie do Microsoft.Identity.Clientelementu , który znajduje się w bibliotece Microsoft Authentication Library (MSAL). Jeśli aplikacja nadal używa biblioteki ADAL, zmigruj ją do biblioteki MSAL. Aby uzyskać więcej informacji, zobacz różnice między aplikacjami ADAL.NET i MSAL.NET.

Install-Package Microsoft.Identity.Client -Version 4.48.1 

Kroki uzyskiwania tokenu dostępu

Uzyskiwanie tokenu dostępu przy użyciu biblioteki MSAL zależy od tego, czy tworzysz publicznego klienta, czy poufnej aplikacji klienckiej. Zapoznaj się z następującymi krokami, aby uzyskać token dostępu dla danego scenariusza:

Jeśli masz katalog danych, który nadal korzysta z przestarzałej biblioteki biblioteki ADAL, zmigruj aplikację z biblioteki ADAL do biblioteki MSAL.

Wysyłanie żądania Data Catalog interfejsu API REST przy użyciu tokenu

Po otrzymaniu tokenu dostępu z usługi Active Directory (Azure AD) użyj tokenu, aby wysłać żądanie internetowe do interfejsu API REST Data Catalog. Aby utworzyć żądanie internetowe Data Catalog REST, należy dodać token dostępu do nagłówka żądania. Na przykład w aplikacji .NET dodaj element

HttpWebRequest request = System.Net.WebRequest.Create(apiUrl) as System.Net.HttpWebRequest;  
...  
string authHeader = authResult.CreateAuthorizationHeader();             
request.Headers.Add("Authorization", authHeader);  

Przepływ kontekstu uwierzytelniania platformy Azure

W aplikacji klienckiej platformy .NET użyjesz elementu AuthenticationContext , aby uzyskać token dostępu platformy Azure. AuthenticationContext to główna klasa reprezentująca urząd wystawiający tokeny dla zasobów Azure AD. Element AuthenticationContext wykonuje następujące czynności:

  1. AuthenticationContext uruchamia przepływ, przekierowując agenta użytkownika do punktu końcowego autoryzacji usługi Azure Active Directory. Użytkownik uwierzytelnia się i wyraża zgodę, jeśli jest wymagana zgoda.
  2. Punkt końcowy autoryzacji usługi Azure Active Directory przekierowuje agenta użytkownika z powrotem do elementu AuthenticationContext z kodem autoryzacji. Agent użytkownika zwraca kod autoryzacji do identyfikatora URI przekierowania aplikacji klienckiej.
  3. Element AuthenticationContext żąda tokenu dostępu z punktu końcowego wystawiania tokenu usługi Azure Active Directory. Przedstawia kod autoryzacji, aby udowodnić, że użytkownik wyraził zgodę.
  4. Punkt końcowy wystawiania tokenu usługi Azure Active Directory zwraca token dostępu.
  5. Aplikacja kliencka używa tokenu dostępu do uwierzytelniania w internetowym interfejsie API.
  6. Po uwierzytelnieniu aplikacji klienckiej interfejs API REST Data Catalog zwraca żądane dane.

Aby dowiedzieć się więcej na temat przepływu autoryzacji usługi Azure Active Directory (Azure AD), zobacz Przepływ udzielania kodu autoryzacji.