Sdílet prostřednictvím


Připojení do Azure AI Search pomocí řízení přístupu na základě role

Azure poskytuje globální systém autorizace řízení přístupu na základě role pro všechny služby spuštěné na platformě. Ve službě Azure AI Search můžete přiřadit role Azure pro:

Přístup jednotlivých uživatelů k výsledkům hledání (někdy označovaný jako zabezpečení na úrovni řádků nebo zabezpečení na úrovni dokumentu) není podporován prostřednictvím přiřazení rolí. Alternativním řešením je vytvořit filtry zabezpečení, které oříznou výsledky podle identity uživatele a odeberou dokumenty, ke kterým by žadatel neměl mít přístup. Podívejte se na tuto ukázku podnikového chatu s využitím RAG .

Přiřazení rolí jsou kumulativní a trvalá napříč všemi nástroji a klientskými knihovnami. Role můžete přiřadit pomocí některého z podporovaných přístupů popsaných v dokumentaci k řízení přístupu na základě role v Azure.

Přístup na základě role je volitelný, ale doporučuje se. Alternativou je ověřování založené na klíčích, což je výchozí nastavení.

Požadavky

Omezení

  • Řízení přístupu na základě role může zvýšit latenci některých požadavků. Každá jedinečná kombinace prostředků služby (index, indexer atd.) a instančního objektu aktivuje kontrolu autorizace. Tyto kontroly autorizace můžou na požadavek přidat až 200 milisekund latence.

  • Ve výjimečných případech, kdy požadavky pocházejí z velkého počtu různých instančních objektů, všechny cílení na různé prostředky služby (indexy, indexery atd.), je možné, aby autorizace kontrol měla za následek omezování. Omezování by se stalo pouze v případě, že se během sekundy použily stovky jedinečných kombinací prostředků vyhledávací služby a instančního objektu.

Povolení přístupu na základě role pro operace roviny dat

Role pro správu služeb (řídicí rovina) jsou povinné. Role pro operace roviny dat jsou volitelné. Abyste mohli přiřadit přispěvatele vyhledávací služby, přispěvatele dat indexu vyhledávání nebo roli Čtenář dat indexu vyhledávání pro operace s daty, musíte povolit přístup na základě role na základě role.

V tomto kroku nakonfigurujte vyhledávací službu tak, aby rozpoznala autorizační hlavičku požadavků na rovinu dat, která poskytují přístupový token OAuth2.

Rovina dat odkazuje na operace s koncovým bodem vyhledávací služby, jako je indexování nebo dotazy nebo jakákoli jiná operace zadaná v rozhraní REST API služby Search nebo ekvivalentních klientských knihovnách.

  1. Přihlaste se k webu Azure Portal a otevřete stránku vyhledávací služby.

  2. V levém navigačním podokně vyberte Klávesy .

    Snímek obrazovky se stránkou klíčů s možnostmi ověřování

  3. Pokud chcete mít flexibilitu, zvolte řízení na základě rolí nebo obojí .

    Možnost Popis
    Klíč rozhraní API (výchozí). Vyžaduje klíče rozhraní API v hlavičce požadavku pro autorizaci.
    Řízení přístupu na základě role K dokončení úkolu vyžaduje členství v přiřazení role. Vyžaduje také autorizační hlavičku požadavku.
    Oba Požadavky jsou platné pomocí klíče rozhraní API nebo řízení přístupu na základě role, ale pokud zadáte obojí ve stejném požadavku, použije se klíč rozhraní API.

Změna je efektivní okamžitě, ale před přiřazením rolí počkejte několik sekund.

Pokud povolíte řízení přístupu na základě role, režim selhání je http401WithBearerChallenge, pokud se autorizace nezdaří.

Následující role jsou integrované. Pokud tyto role nejsou dostatečné, vytvořte vlastní roli.

Role Letadlo Popis
Vlastník Řízení a data Úplný přístup k řídicí rovině vyhledávacího prostředku, včetně možnosti přiřazovat role Azure. Možnosti ověřování nebo správu rolí pro ostatní uživatele může povolit nebo zakázat pouze role vlastníka. Správci předplatného jsou ve výchozím nastavení členy.

V rovině dat má tato role stejný přístup jako role Přispěvatel vyhledávací služby. Zahrnuje přístup ke všem akcím roviny dat s výjimkou možnosti dotazování nebo indexování dokumentů.
Přispěvatel Řízení a data Stejná úroveň přístupu řídicí roviny jako vlastník, minus možnost přiřazovat role nebo měnit možnosti ověřování.

V rovině dat má tato role stejný přístup jako role Přispěvatel vyhledávací služby. Zahrnuje přístup ke všem akcím roviny dat s výjimkou možnosti dotazování nebo indexování dokumentů.
Čtenář Řízení a data Přístup pro čtení napříč celou službou, včetně metrik vyhledávání, metrik obsahu (spotřebovaného úložiště, počtu objektů) a definic objektů prostředků roviny dat (indexy, indexery atd.). Nemůže ale číst klíče rozhraní API ani číst obsah v indexech.
Přispěvatel vyhledávací služby Řízení a data Přístup pro čtení a zápis k definicím objektů (indexy, aliasy, mapy synonym, indexery, zdroje dat a sady dovedností). Tato role je určená pro vývojáře, kteří vytvářejí objekty, a pro správce, kteří spravují vyhledávací službu a její objekty, ale bez přístupu k obsahu indexu. Pomocí této role můžete vytvářet, odstraňovat a vypisovat indexy, získávat definice indexů, získávat informace o službě (statistiky a kvóty), analyzátory testů, vytvářet a spravovat mapy synonym, indexery, zdroje dat a sady dovedností. Podívejte Microsoft.Search/searchServices/* se na seznam oprávnění.
Přispěvatel dat indexu vyhledávání Data Přístup pro čtení a zápis k obsahu v indexech Tato role je určená pro vývojáře nebo vlastníky indexů, kteří potřebují importovat, aktualizovat nebo dotazovat kolekci dokumentů indexu. Tato role nepodporuje vytváření ani správu indexů. Ve výchozím nastavení je tato role určená pro všechny indexy ve vyhledávací službě. Pokud chcete obor zúžit, podívejte se na téma Udělení přístupu k jednomu indexu .
Čtečka dat indexu vyhledávání Data Přístup jen pro čtení pro dotazování indexů vyhledávání. Tato role je určená pro aplikace a uživatele, kteří spouštějí dotazy. Tato role nepodporuje přístup pro čtení k definicím objektů. Nemůžete například číst definici indexu vyhledávání nebo získat statistiky vyhledávací služby. Ve výchozím nastavení je tato role určená pro všechny indexy ve vyhledávací službě. Pokud chcete obor zúžit, podívejte se na téma Udělení přístupu k jednomu indexu .

Poznámka:

Pokud zakážete přístup na základě role Azure, budou předdefinované role pro řídicí rovinu (vlastník, přispěvatel, čtenář) nadále dostupné. Zakázání přístupu na základě role odebere jenom oprávnění související s daty přidružená k těmto rolím. Pokud jsou role roviny dat zakázané, přispěvatel vyhledávací služby je ekvivalentní přispěvateli roviny řízení.

Přiřazení rolí

V této části přiřaďte role pro:

Přiřazení rolí pro správu služeb

Jako správce služeb můžete vytvořit a nakonfigurovat vyhledávací službu a provádět všechny operace řídicí roviny popsané v rozhraní REST API pro správu nebo ekvivalentních klientských knihovnách. V závislosti na roli můžete také provádět většinu úloh rozhraní REST API pro vyhledávání roviny dat.

  1. Přihlaste se k portálu Azure.

  2. Přejděte do vyhledávací služby.

  3. V levém navigačním podokně vyberte Řízení přístupu (IAM ).

  4. Vyberte + Přidat>Přidat přiřazení role.

  5. Vyberte příslušnou roli:

    • Vlastník (úplný přístup ke všem operacím roviny dat a řídicí roviny s výjimkou oprávnění dotazů)
    • Přispěvatel (stejný jako vlastník, s výjimkou oprávnění k přiřazování rolí)
    • Čtenář (přijatelný pro monitorování a zobrazení metrik)
  6. Na kartě Členové vyberte identitu uživatele nebo skupiny Microsoft Entra.

  7. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

Přiřazení rolí pro vývoj

Přiřazení rolí jsou globální napříč vyhledávací službou. Pokud chcete nastavit rozsah oprávnění na jeden index, vytvořte vlastní roli pomocí PowerShellu nebo Azure CLI.

Důležité

Pokud nakonfigurujete přístup na základě role pro službu nebo index a zadáte v požadavku také klíč rozhraní API, vyhledávací služba použije k ověření klíč rozhraní API.

  1. Přihlaste se k portálu Azure.

  2. Přejděte do vyhledávací služby.

  3. V levém navigačním podokně vyberte Řízení přístupu (IAM ).

  4. Vyberte + Přidat>Přidat přiřazení role.

    Otevře se stránka Řízení přístupu (IAM) s otevřenou nabídkou Přidat přiřazení role.

  5. Vyberte roli:

    • Přispěvatel vyhledávací služby (operace vytvoření čtení a aktualizace odstranění indexů, indexerů, sad dovedností a dalších objektů nejvyšší úrovně)
    • Přispěvatel dat indexu vyhledávání (načtení dokumentů a spouštění úloh indexování)
    • Čtečka dat indexu vyhledávání (dotazování indexu)

    Další kombinací rolí, které poskytují úplný přístup, je Přispěvatel nebo Vlastník a Čtenář dat indexu vyhledávání.

  6. Na kartě Členové vyberte identitu uživatele nebo skupiny Microsoft Entra.

  7. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

  8. Opakujte pro ostatní role. Většina vývojářů potřebuje všechny tři.

Přiřazení rolí pro dotazy jen pro čtení

Pro aplikace a procesy, které potřebují přístup jen pro čtení k indexu, použijte roli Čtenář dat indexu vyhledávacího indexu. Jedná se o velmi specifickou roli. Uděluje přístup GET nebo POST k kolekci dokumentů indexu vyhledávání pro vyhledávání, automatické dokončování a návrhy.

Nepodporuje operace GET nebo LIST v indexu nebo jiných objektech nejvyšší úrovně ani statistiky služby GET.

  1. Přihlaste se k portálu Azure.

  2. Přejděte do vyhledávací služby.

  3. V levém navigačním podokně vyberte Řízení přístupu (IAM ).

  4. Vyberte + Přidat>Přidat přiřazení role.

  5. Vyberte roli Čtenář dat indexu vyhledávání.

  6. Na kartě Členové vyberte identitu uživatele nebo skupiny Microsoft Entra. Pokud nastavujete oprávnění pro jinou službu, možná používáte systémovou nebo uživatelem spravovanou identitu. Tuto možnost zvolte, pokud je přiřazení role pro identitu služby.

  7. Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.

Testování přiřazení rolí

K otestování přiřazení rolí použijte klienta. Mějte na paměti, že role jsou kumulativní a zděděné role, které jsou omezené na úroveň předplatného nebo skupiny prostředků, není možné odstranit ani odepřít na úrovni prostředku (vyhledávací služby).

Před testováním přístupu se ujistěte, že zaregistrujete klientskou aplikaci s ID Microsoft Entra a máte přiřazené role.

  1. Přihlaste se k portálu Azure.

  2. Přejděte do vyhledávací služby.

  3. Na stránce Přehled vyberte kartu Indexy :

    • Přispěvatelé vyhledávací služby můžou zobrazit a vytvořit libovolný objekt, ale nemůžou načítat dokumenty ani dotazovat index. Pokud chcete ověřit oprávnění, vytvořte vyhledávací index.

    • Přispěvatelé dat indexu vyhledávání můžou načítat dokumenty. Na portálu není možnost načíst dokumenty mimo průvodce importem dat, ale můžete resetovat a spustit indexer , abyste potvrdili oprávnění k načtení dokumentu.

    • Čtenáři dat indexu vyhledávání můžou dotazovat index. K ověření oprávnění použijte Průzkumníka služby Search. Měli byste být schopni odesílat dotazy a zobrazovat výsledky, ale neměli byste být schopni zobrazit definici indexu nebo vytvořit.

Testovat jako aktuálního uživatele

Pokud už jste přispěvatelem nebo vlastníkem vyhledávací služby, můžete předložit nosný token pro vaši identitu uživatele pro ověřování ve službě Azure AI Search.

  1. Získejte nosný token pro aktuálního uživatele pomocí Azure CLI:

    az account get-access-token --scope https://search.azure.com/.default
    

    Nebo pomocí PowerShellu:

    Get-AzAccessToken -ResourceUrl https://search.azure.com
    
  2. Do nového textového souboru v editoru Visual Studio Code vložte tyto proměnné:

    @baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE
    @index-name = PASTE-YOUR-INDEX-NAME-HERE
    @token = PASTE-YOUR-TOKEN-HERE
    
  3. Vložte a odešlete žádost o potvrzení přístupu. Tady je příklad, který se dotazuje na index rychlý start pro hotely.

    POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2023-11-01 HTTP/1.1
      Content-type: application/json
      Authorization: Bearer {{token}}
    
        {
             "queryType": "simple",
             "search": "motel",
             "filter": "",
             "select": "HotelName,Description,Category,Tags",
             "count": true
         }
    

Udělení přístupu k jednomu indexu

V některých scénářích můžete chtít omezit přístup aplikace k jednomu prostředku, například indexu.

Portál v současné době nepodporuje přiřazení rolí na této úrovni podrobností, ale dá se provést pomocí PowerShellunebo Azure CLI.

V PowerShellu použijte New-AzRoleAssignment, zadejte název uživatele nebo skupiny Azure a rozsah přiřazení.

  1. Načtěte moduly Azure a AzureAD připojte se k účtu Azure:

    Import-Module -Name Az
    Import-Module -Name AzureAD
    Connect-AzAccount
    
  2. Přidejte přiřazení role s vymezeným oborem do jednotlivého indexu:

    New-AzRoleAssignment -ObjectId <objectId> `
        -RoleDefinitionName "Search Index Data Contributor" `
        -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
    

Vytvoření vlastní role

Pokud předdefinované role neposkytují správnou kombinaci oprávnění, můžete vytvořit vlastní roli pro podporu požadovaných operací.

Tento příklad naklonuje čtečku dat indexu vyhledávání a pak přidá možnost vypsat indexy podle názvu. Za normálních okolností je výpis indexů ve vyhledávací službě považován za práva správce.

Tyto kroky jsou odvozené od vytvoření nebo aktualizace vlastních rolí Azure pomocí webu Azure Portal. Klonování z existující role se podporuje na stránce vyhledávací služby.

Tento postup vytvoří vlastní roli, která rozšiřuje práva vyhledávacího dotazu tak, aby zahrnovala výpis indexů podle názvu. Výpis indexů se obvykle považuje za funkci správce.

  1. Na webu Azure Portal přejděte do vyhledávací služby.

  2. V levém navigačním podokně vyberte Řízení přístupu (IAM).

  3. Na panelu akcí vyberte Role.

  4. Pravým tlačítkem myši klikněte na Čtečku dat indexu vyhledávání (nebo jinou roli) a výběrem možnosti Clone (Klonovat) otevřete průvodce vytvořením vlastní role.

  5. Na kartě Základy zadejte název vlastní role, například Průzkumník dat indexu vyhledávání, a pak vyberte Další.

  6. Na kartě Oprávnění vyberte Přidat oprávnění.

  7. Na kartě Přidat oprávnění vyhledejte a vyberte dlaždici Microsoft Search .

  8. Nastavte oprávnění pro vlastní roli. V horní části stránky použijte výchozí výběr Akce :

    • V části Microsoft.Search/operations vyberte Číst: Vypsat všechny dostupné operace.
    • V části Microsoft.Search/searchServices/indexes vyberte Číst: Číst index.
  9. Na stejné stránce přepněte na Akce dat a v části Microsoft.Search/searchServices/indexes/documents vyberte Číst: Číst dokumenty.

    Definice JSON vypadá jako v následujícím příkladu:

    {
     "properties": {
         "roleName": "search index data explorer",
         "description": "",
         "assignableScopes": [
             "/subscriptions/0000000000000000000000000000000/resourceGroups/free-search-svc/providers/Microsoft.Search/searchServices/demo-search-svc"
         ],
         "permissions": [
             {
                 "actions": [
                     "Microsoft.Search/operations/read",
                     "Microsoft.Search/searchServices/indexes/read"
                 ],
                 "notActions": [],
                 "dataActions": [
                     "Microsoft.Search/searchServices/indexes/documents/read"
                 ],
                 "notDataActions": []
             }
         ]
       }
     }
    
  10. Výběrem možnosti Zkontrolovat a vytvořit vytvořte roli. Teď můžete k roli přiřadit uživatele a skupiny.

Zakázání ověřování pomocí klíče rozhraní API

Pokud používáte předdefinované role a ověřování Microsoft Entra, můžete ve službě zakázat přístup ke klíči nebo místní ověřování. Zakázání klíčů rozhraní API způsobí, že vyhledávací služba odmítne všechny požadavky související s daty, které předávají klíč rozhraní API v hlavičce.

Poznámka:

Správa klíče rozhraní API je možné zakázat, ne odstranit. Klíče rozhraní API pro dotazy je možné odstranit.

K zakázání funkcí se vyžadují oprávnění vlastníka nebo přispěvatele.

Pokud chcete zakázat ověřování na základě klíčů, použijte Azure Portal nebo rozhraní REST API pro správu.

  1. Na webu Azure Portal přejděte do vyhledávací služby.

  2. V levém navigačním podokně vyberte Klíče.

  3. Vyberte řízení přístupu na základě role.

Změna je efektivní okamžitě, ale před testováním počkejte několik sekund. Za předpokladu, že máte oprávnění přiřazovat role jako člen vlastníka, správce služeb nebo spolusprávce, můžete pomocí funkcí portálu otestovat přístup na základě role.

Podmíněný přístup

Podmíněný přístup Microsoft Entra doporučujeme, pokud potřebujete vynutit zásady organizace, jako je vícefaktorové ověřování.

Pokud chcete povolit zásady podmíněného přístupu pro Azure AI Search, postupujte takto:

  1. Přihlaste se k webu Azure Portal.

  2. Vyhledejte podmíněný přístup Microsoft Entra.

  3. Vyberte Zásady.

  4. Vyberte Možnost Nová zásada.

  5. V části Cloudové aplikace nebo akce zásad přidejte službu Azure AI Search jako cloudovou aplikaci podle toho, jak chcete zásady nastavit.

  6. Aktualizujte zbývající parametry zásady. Zadejte například, na které uživatele a skupiny se tato zásada vztahuje.

  7. Zásady uložte.

Důležité

Pokud má vaše vyhledávací služba přiřazenou spravovanou identitu, konkrétní vyhledávací služba se zobrazí jako cloudová aplikace, která se dá zahrnout nebo vyloučit jako součást zásad podmíněného přístupu. Zásady podmíněného přístupu se nedají vynutit u konkrétní vyhledávací služby. Místo toho se ujistěte, že jste vybrali obecnou cloudovou aplikaci Azure AI Search .

Řešení potíží s řízením přístupu na základě role

Při vývoji aplikací, které používají řízení přístupu na základě role pro ověřování, mohou nastat některé běžné problémy:

  • Pokud autorizační token pochází ze spravované identity a příslušná oprávnění byla nedávno přiřazena, může trvat několik hodin, než se tato přiřazení oprávnění projeví.

  • Výchozí konfigurace vyhledávací služby je ověřování založené na klíčích. Pokud jste výchozí nastavení klíče nezměnili na řízení přístupu na obě nebo na základě role, všechny žádosti používající ověřování na základě role se automaticky odepře bez ohledu na příslušná oprávnění.