Łączenie usługi wyszukiwania z innymi zasobami platformy Azure przy użyciu tożsamości zarządzanej

Możesz skonfigurować usługa wyszukiwania sztucznej inteligencji platformy Azure w celu nawiązania połączenia z innymi zasobami platformy Azure przy użyciu tożsamości zarządzanej przypisanej przez system lub przypisanej przez użytkownika oraz przypisania roli platformy Azure. Tożsamości zarządzane i przypisania ról eliminują konieczność przekazywania wpisów tajnych i poświadczeń w parametry połączenia lub kodzie.

Wymagania wstępne

  • Usługa wyszukiwania w warstwie Podstawowa lub nowsza.

  • Zasób platformy Azure, który akceptuje żądania przychodzące z identyfikatora logowania firmy Microsoft Entra, który ma prawidłowe przypisanie roli.

Obsługiwane scenariusze

Usługa Azure AI Search może używać przypisanej przez system lub przypisanej przez użytkownika tożsamości zarządzanej w przypadku połączeń wychodzących z zasobami platformy Azure. Tożsamość zarządzana systemu jest wskazywana, gdy parametry połączenia jest unikatowym identyfikatorem zasobu usługi lub aplikacji obsługującej identyfikatory firmy Microsoft. Tożsamość zarządzana przypisana przez użytkownika jest określana za pomocą właściwości "identity".

Usługa wyszukiwania używa usługi Azure Storage jako źródła danych indeksatora i jako ujścia danych na potrzeby sesji debugowania, buforowania wzbogacania i magazynu wiedzy. W przypadku funkcji wyszukiwania, które zapisują z powrotem do magazynu, tożsamość zarządzana wymaga przypisania roli współautora zgodnie z opisem w sekcji "Przypisywanie roli".

Scenariusz Tożsamość zarządzana systemu Tożsamość zarządzana przypisana przez użytkownika (wersja zapoznawcza)
Połączenia indeksatora z obsługiwanymi źródłamidanych platformy Azure 13 Tak Tak
Usługa Azure Key Vault dla kluczy zarządzanych przez klienta Tak Tak
Sesje debugowania (hostowane w usłudze Azure Storage)1 Tak Nie.
Pamięć podręczna wzbogacania (hostowana w usłudze Azure Storage)1,2 Tak Tak
Magazyn wiedzy (hostowany w usłudze Azure Storage)1 Tak Tak
Umiejętności niestandardowe (hostowane w usłudze Azure Functions lub równoważnej) Tak Tak

1 W przypadku łączności między wyszukiwaniem i magazynem konfiguracja zabezpieczeń sieci nakłada ograniczenia dotyczące typu tożsamości zarządzanej, której można użyć. Tylko tożsamość zarządzana systemu może służyć do połączenia z magazynem w tym samym regionie za pośrednictwem reguły wystąpienia zaufanej usługi lub wyjątku usługi. Aby uzyskać szczegółowe informacje, zobacz Dostęp do konta magazynu chronionego przez sieć.

2 Jedną z metod określania pamięci podręcznej wzbogacania jest kreator importu danych. Obecnie kreator nie akceptuje tożsamości zarządzanej parametry połączenia w celu wzbogacania pamięci podręcznej. Jednak po zakończeniu pracy kreatora można zaktualizować parametry połączenia w definicji indeksatora JSON, aby określić tożsamość zarządzaną przypisaną przez system lub użytkownika, a następnie ponownie uruchomić indeksator.

3 Pamiętaj, że wyłączenie kluczy na koncie usługi Azure Storage nie jest obecnie obsługiwane w przypadku tabeli platformy Azure używanej jako źródło danych. Mimo że tożsamość zarządzana nie jest używana do jawnego udostępniania kluczy magazynu, usługa wyszukiwania sztucznej inteligencji nadal używa kluczy dla tej implementacji.

Tworzenie tożsamości zarządzanej systemu

Po włączeniu tożsamości zarządzanej przypisanej przez system platforma Azure tworzy tożsamość usługi wyszukiwania, która może służyć do uwierzytelniania w innych usługach platformy Azure w ramach tej samej dzierżawy i subskrypcji. Następnie możesz użyć tej tożsamości w przypisaniach kontroli dostępu na podstawie ról (RBAC) platformy Azure, które umożliwiają dostęp do danych podczas indeksowania.

Tożsamość zarządzana przypisana przez system jest unikatowa dla usługi wyszukiwania i powiązana z usługą przez jej okres istnienia.

  1. Zaloguj się do witryny Azure Portal i znajdź usługę wyszukiwania.

  2. W obszarze Ustawienia wybierz pozycję Tożsamość.

  3. Na karcie Przypisane przez system w obszarze Stan wybierz pozycję Włączone.

  4. Wybierz pozycję Zapisz.

    Screenshot of the Identity page in Azure portal.

    Po zapisaniu zobaczysz identyfikator obiektu, który został przypisany do usługi wyszukiwania.

    Screenshot of a system identity object identifier.

Tworzenie tożsamości zarządzanej przypisanej przez użytkownika (wersja zapoznawcza)

Tożsamość zarządzana przypisana przez użytkownika jest zasobem na platformie Azure. Jest to przydatne, jeśli potrzebujesz większego stopnia szczegółowości przypisań ról, ponieważ można tworzyć oddzielne tożsamości dla różnych aplikacji i scenariuszy.

Ważne

Ta funkcja jest dostępna w publicznej wersji zapoznawczej w ramach dodatkowych warunków użytkowania. Tożsamości zarządzane przypisane przez użytkownika nie są obecnie obsługiwane w przypadku połączeń z kontem magazynu chronionego przez sieć. Żądanie wyszukiwania obecnie wymaga publicznego adresu IP.

  1. Zaloguj się do witryny Azure Portal.

  2. Wybierz pozycję + Utwórz zasób.

  3. Na pasku wyszukiwania "usługa wyszukiwania s and marketplace" wyszukaj pozycję "Tożsamość zarządzana przypisana przez użytkownika", a następnie wybierz pozycję Utwórz.

    Screenshot of the user assigned managed identity tile in Azure Marketplace.

  4. Wybierz subskrypcję, grupę zasobów i region. Nadaj tożsamości nazwę opisową.

  5. Wybierz pozycję Utwórz i poczekaj na zakończenie wdrażania zasobu.

    W następnych kilku krokach przypiszesz tożsamość zarządzaną przypisaną przez użytkownika do usługi wyszukiwania.

  6. Na stronie usługi wyszukiwania w obszarze Ustawienia wybierz pozycję Tożsamość.

  7. Na karcie Przypisane przez użytkownika wybierz pozycję Dodaj.

  8. Wybierz subskrypcję, a następnie wybierz zasób zarządzany przypisany przez użytkownika utworzony w poprzednim kroku.

Zezwalaj na dostęp do zapory

Jeśli zasób platformy Azure znajduje się za zaporą, upewnij się, że istnieje reguła ruchu przychodzącego, która przyznaje żądania z usługi wyszukiwania.

  • W przypadku połączeń w tym samym regionie z usługą Azure Blob Storage lub Azure Data Lake Storage Gen2 użyj tożsamości zarządzanej systemu i zaufanego wyjątku usługi. Opcjonalnie możesz skonfigurować regułę wystąpienia zasobu, aby przyznać żądania.

  • W przypadku wszystkich innych zasobów i połączeń skonfiguruj regułę zapory ip, która przyznaje żądania z usługi Search. Aby uzyskać szczegółowe informacje, zobacz Indeksator dostępu do zawartości chronionej przez funkcje zabezpieczeń sieci platformy Azure.

Przypisywanie roli

Tożsamość zarządzana musi być sparowana z rolą platformy Azure, która określa uprawnienia do zasobu platformy Azure.

  • Uprawnienia czytelnika danych są wymagane w przypadku połączeń danych indeksatora i uzyskiwania dostępu do klucza zarządzanego przez klienta w usłudze Azure Key Vault.

  • Uprawnienia współautora (zapisu) są potrzebne do funkcji wzbogacania sztucznej inteligencji, które używają usługi Azure Storage do hostowania danych sesji debugowania, buforowania wzbogacania i długoterminowego przechowywania zawartości w magazynie wiedzy.

Poniższe kroki dotyczą usługi Azure Storage. Jeśli zasób to Azure Cosmos DB lub Azure SQL, kroki są podobne.

  1. Zaloguj się do witryny Azure Portal i znajdź zasób platformy Azure, do którego usługa wyszukiwania musi mieć dostęp.

  2. W usłudze Azure Storage wybierz pozycję Kontrola dostępu (AIM) w okienku nawigacji po lewej stronie.

  3. Wybierz pozycję Dodaj przypisanie roli.

  4. Na stronie Rola wybierz role wymagane dla usługi wyszukiwania:

    Zadanie Przypisanie roli
    Indeksowanie obiektów blob przy użyciu indeksatora Dodawanie czytnika danych obiektu blob usługi Storage
    Indeksowanie usługi ADLS Gen2 przy użyciu indeksatora Dodawanie czytnika danych obiektu blob usługi Storage
    Indeksowanie tabel przy użyciu indeksatora Dodawanie czytnika i dostępu do danych
    Indeksowanie plików przy użyciu indeksatora Dodawanie czytnika i dostępu do danych
    Zapisywanie w magazynie wiedzy Dodaj obiekt Blob DataContributor usługi Storage dla projekcji obiektów i plików oraz czytnika i dostępu do danych dla projekcji tabel.
    Zapisywanie w pamięci podręcznej wzbogacania Dodawanie współautora danych obiektu blob usługi Storage
    Zapisywanie stanu sesji debugowania Dodawanie współautora danych obiektu blob usługi Storage
  5. Na stronie Członkowie wybierz pozycję Tożsamość zarządzana.

  6. Wybierz członków. Na stronie Wybieranie tożsamości zarządzanej wybierz subskrypcję, a następnie przefiltruj według typu usługi, a następnie wybierz usługę. Tylko te usługi, które mają tożsamość zarządzaną, będą dostępne do wybrania.

    Screenshot of the select managed identity pane in the role assignment wizard.

  7. Wybierz Przejrzyj + przypisz.

Przykłady ciągów Połączenie ion

Po zdefiniowaniu tożsamości zarządzanej dla usługi wyszukiwania i przypisaniu roli można zmodyfikować połączenia wychodzące w celu użycia unikatowego identyfikatora zasobu innego zasobu platformy Azure. Oto kilka przykładów parametry połączenia dla różnych scenariuszy.

Źródło danych obiektu blob (system):

Źródło danych indeksatora zawiera właściwość "credentials", która określa sposób nawiązywania połączenia ze źródłem danych. W poniższym przykładzie przedstawiono parametry połączenia określający unikatowy identyfikator zasobu konta magazynu. Identyfikator Firmy Microsoft Entra uwierzytelni żądanie przy użyciu tożsamości zarządzanej przez system usługi wyszukiwania. Zwróć uwagę, że parametry połączenia nie zawiera kontenera. W definicji źródła danych nazwa kontenera jest określona we właściwości "container" (nie pokazano), a nie w parametry połączenia.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    }

Źródło danych obiektu blob (użytkownik):

Żądanie wyszukiwania do usługi Azure Storage można również wykonać w ramach tożsamości zarządzanej przypisanej przez użytkownika, obecnie w wersji zapoznawczej. Tożsamość użytkownika usługi wyszukiwania jest określona we właściwości "identity". Aby ustawić tożsamość, możesz użyć portalu lub interfejsu API REST w wersji zapoznawczej 2021-04-30-Preview.

"credentials": {
    "connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
    },
  . . .
"identity": {
    "@odata.type": "#Microsoft.Azure.Search.DataUserAssignedIdentity",
    "userAssignedIdentity": "/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{user-assigned-managed-identity-name}"
  }

Magazyn wiedzy:

Definicja magazynu wiedzy zawiera parametry połączenia do usługi Azure Storage. W usłudze Azure Storage magazyn wiedzy utworzy projekcje jako obiekty blob i tabele. Parametry połączenia jest unikatowym identyfikatorem zasobu konta magazynu. Zwróć uwagę, że ciąg nie zawiera kontenerów ani tabel w ścieżce. Są one zdefiniowane w definicji projekcji osadzonej, a nie w parametry połączenia.

"knowledgeStore": {
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/storage-account-name};"
}

Pamięć podręczna wzbogacania:

Indeksator tworzy, używa i zapamiętuje kontener używany do buforowanych wzbogacenia. Nie jest konieczne dołączenie kontenera do parametry połączenia pamięci podręcznej. Identyfikator obiektu można znaleźć na stronie Tożsamość usługi wyszukiwania w portalu.

"cache": {
  "enableReprocessing": true,
  "storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}

Sesja debugowania:

Sesja debugowania jest uruchamiana w portalu i pobiera parametry połączenia po rozpoczęciu sesji. Możesz wkleić ciąg podobny do poniższego przykładu.

"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",

Umiejętność niestandardowa:

Niestandardowa umiejętność jest przeznaczona dla punktu końcowego funkcji platformy Azure lub aplikacji obsługującej kod niestandardowy. Punkt końcowy jest określony w niestandardowej definicji umiejętności. Obecność identyfikatora "authResourceId" informuje usługę wyszukiwania o nawiązaniu połączenia przy użyciu tożsamości zarządzanej, przekazując identyfikator aplikacji funkcji docelowej lub aplikacji we właściwości.

{
  "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
  "description": "A custom skill that can identify positions of different phrases in the source text",
  "uri": "https://contoso.count-things.com",
  "authResourceId": "<Azure-AD-registered-application-ID>",
  "batchSize": 4,
  "context": "/document",
  "inputs": [ ... ],
  "outputs": [ ...]
}

Zobacz też