Připojení k Azure AI Search pomocí rolí
Azure poskytuje globální systém ověřování a autorizace 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
Vyhledávací služba v libovolné oblasti, na libovolné úrovni, povolená pro přístup na základě role.
Vlastník, Správce uživatelských přístupů nebo vlastní role s oprávněními Microsoft.Authorization/roleAssignments/write
Předdefinované role používané ve službě Azure AI Search
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 . |
Zkombinujte tyto role, abyste získali dostatečná oprávnění pro váš případ použití.
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:
-
Role ID Owner
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 Contributor
b24988ac-6180-42a0-ab88-20f7382dd24c Reader
acdd72a7-3385-48ef-bd42-f606fba81ae7 Vývoj nebo zápis do vyhledávací služby
Úloha Role ID Operace CRUD Search Service Contributor
7ca78c08-252a-4471-8644-bb5ff32d4ba0 Načítání dokumentů, spouštění úloh indexování Search Index Data Contributor
8ebe5a00-799e-43f5-93ac-243d3dce84a7 Dotazování indexu Search Index Data Reader
1407120a-92aa-4202-b7e9-c0e197c7c71c8f Přístup jen pro čtení pro dotazy
Role ID Search Index Data Reader
pomocí PowerShellu1407120a-92aa-4202-b7e9-c0e197c7c71c8f
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.
Přihlaste se k portálu Azure.
Přejděte do vyhledávací služby.
V levém navigačním podokně vyberte Řízení přístupu (IAM ).
Vyberte + Přidat>Přidat přiřazení role.
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)
Na kartě Členové vyberte identitu uživatele nebo skupiny Microsoft Entra.
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.
Další kombinací rolí, které poskytují úplný přístup, je Přispěvatel nebo Vlastník a Čtenář dat indexu vyhledávání.
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.
Přihlaste se k portálu Azure.
Přejděte do vyhledávací služby.
V levém navigačním podokně vyberte Řízení přístupu (IAM ).
Vyberte + Přidat>Přidat přiřazení role.
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í.
Na kartě Členové vyberte identitu uživatele nebo skupiny Microsoft Entra.
Na kartě Zkontrolovat a přiřadit vyberte možnost Zkontrolovat a přiřadit a přiřaďte roli.
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.
Tato část obsahuje základní kroky pro nastavení přiřazení role a je tady pro úplnost, ale pro komplexní pokyny ke konfiguraci přístupu na základě role doporučujeme použít Azure AI Search bez klíčů .
Přihlaste se k portálu Azure.
Přejděte do vyhledávací služby.
V levém navigačním podokně vyberte Řízení přístupu (IAM ).
Vyberte + Přidat>Přidat přiřazení role.
Vyberte roli Čtenář dat indexu vyhledávání.
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.
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 nakonfigurujte aplikaci pro připojení bez klíčů a před testováním musíte mít přiřazené role.
Přihlaste se k portálu Azure.
Přejděte do vyhledávací služby.
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.
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
Tyto proměnné vložte do nového textového souboru v editoru Visual Studio Code.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE @index-name = PASTE-YOUR-INDEX-NAME-HERE @token = PASTE-YOUR-TOKEN-HERE
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=2024-07-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í PowerShellu nebo Azure CLI.
V PowerShellu použijte New-AzRoleAssignment, zadejte název uživatele nebo skupiny Azure a rozsah přiřazení.
Načtěte moduly
Azure
aAzureAD
připojte se k účtu Azure:Import-Module -Name Az Import-Module -Name AzureAD Connect-AzAccount
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.
Na webu Azure Portal přejděte do vyhledávací služby.
V levém navigačním podokně vyberte Řízení přístupu (IAM).
Na panelu akcí vyberte Role.
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.
Na kartě Základy zadejte název vlastní role, například Průzkumník dat indexu vyhledávání, a pak vyberte Další.
Na kartě Oprávnění vyberte Přidat oprávnění.
Na kartě Přidat oprávnění vyhledejte a vyberte dlaždici Microsoft Search .
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.
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": [] } ] } }
Výběrem možnosti Zkontrolovat a vytvořit vytvořte roli. Teď můžete k roli přiřadit uživatele a skupiny.
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:
Vyhledejte podmíněný přístup Microsoft Entra.
Vyberte Zásady.
Vyberte Možnost Nová zásada.
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.
Aktualizujte zbývající parametry zásady. Zadejte například, na které uživatele a skupiny se tato zásada vztahuje.
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 .
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.
Ř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í.