Azure AI Vyhledávač podporuje řízení přístupu na základě rolí prostřednictvím Microsoft Entra ID. 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í.
Pokud k objektu zabezpečení přiřadíte více rolí, zkombinují se oprávnění. Přiřazení rolí platí pro všechny nástroje a klientské knihovny.
Tento článek vysvětluje, jak přiřadit předdefinované role pro správu služeb, vývoj a přístup k dotazům a načítání jen pro čtení. Poskytuje také kroky pro vytváření vlastních rolí a testování přiřazení rolí.
Požadavky
Služba Azure AI Vyhledávač (libovolná oblast a libovolná úroveň) s povoleným přístupem založeným na role.
Oprávnění k přiřazení rolí Azure Kterákoli z následujících rolí funguje:
Projděte si pokyny k přiřazení rolí pro preferovaného klienta:
Určete hodnotu pole assignee, kterou vyžaduje vámi používaný klient. V závislosti na typu klienta a typu příjemce přiřazení může být tato hodnota hlavní název uživatele, ID objektu skupiny, název instančního objektu služby, ID aplikace instančního objektu služby nebo ID objektu Microsoft Entra.
Předdefinované role
Role jsou kolekce oprávnění, která ovlivňují řídicí rovinu nebo rovinu dat:
Řídicí rovina: Operace zřizování, konfigurace a správy služeb Operace řídicí roviny zahrnují vytváření nebo odstraňování vyhledávacích služeb, výpis klíčů rozhraní API a správu nastavení sítě a ověřování. K dispozici prostřednictvím rozhraní REST API Azure Resource Manager, Search Management REST API a ekvivalentních klientských knihoven Azure SDK.
Rovina dat: Operace proti koncovému bodu služby vyhledávání Operace roviny dat spadají do dvou kategorií: správa objektů a přístup k obsahu. K dispozici prostřednictvím rozhraní REST API služby Search a ekvivalentních klientských knihoven Azure SDK.
Popisy rolí
Následující předdefinované role uděluje oprávnění Azure AI Vyhledávač. Role v řídicí rovině jsou vždy dostupné, zatímco role v rovině dat vyžadují povolení přístupu založeného na rolích ve vaší vyhledávací službě. Předdefinované role můžete kombinovat pro širší přístup nebo vytvořit vlastní roli s konkrétními oprávněními, která potřebujete.
| Role |
Letadlo |
Popis |
|
Vlastník |
Ovládací prvek |
- Úplný přístup k rovině řízení, včetně možnosti přiřazovat role a měnit nastavení ověřování.
- Správci předplatného mají tuto roli ve výchozím nastavení.
- Může spravovat klíče rozhraní API.
- Nelze vytvářet vyhledávací objekty, načítat dokumenty, indexy dotazů ani načítat ze znalostních bází.
|
|
Přispěvatel |
Ovládací prvek |
- Stejná úroveň přístupu ke kontrolní rovině jako vlastník, vyjma možnosti přiřazovat role.
|
|
Čtenář |
Ovládací prvek |
- Přístup k řídicí rovině jen pro čtení
- Může zobrazit metriky služby a definice objektů.
- Nemůžete zobrazit ani spravovat klíče rozhraní API, načítat dokumenty, indexy dotazů ani načítat ze znalostních bází.
|
|
Přispěvatel vyhledávací služby |
Řízení a data |
- Úplný přístup k řídicí rovině. Přístup k rovině dat je omezený na správu objektů.
- Může vytvářet indexy, indexery, sady dovedností, znalostní báze a další vyhledávací objekty.
- Může získat klíče API pro správu a dotazy pomocí operací řídicí roviny.
- Nelze načíst dokumenty, indexy dotazů nebo načíst z znalostních bází přímo prostřednictvím přístupu na základě role.
- Úplný seznam oprávnění viz
Microsoft.Search/searchServices/*.
|
|
Přispěvatel dat indexu vyhledávání |
Údaje |
- Přístup k obsahu pro čtení i zápis.
- Může načítat dokumenty, indexy dotazů a načítat z znalostních bází.
- Nelze upravovat definice objektů ani načítat klíče správce.
|
|
Čtečka dat vyhledávacího indexu |
Údaje |
- Přístup k obsahu jen pro čtení
- Může dotazovat indexy a načítat z znalostních bází.
- Nelze načíst dokumenty, upravit definice objektů nebo načíst klíče správce.
|
Důležité
- Vlastník, Přispěvatel a Přispěvatel vyhledávacích služeb můžou načítat klíče správce, které poskytují úplný přístup pro čtení i zápis do roviny dat. Udělte tyto role jenom důvěryhodným uživatelům.
- Ve výchozím nastavení se role roviny dat vztahují na všechny indexy ve vyhledávací službě. Pokud chcete nastavit obor Přispěvatel dat indexu vyhledávání nebo Čtenář dat indexu vyhledávání na jeden index, přečtěte si téma Udělení přístupu k jednomu indexu.
Souhrn oprávnění
Pomocí následující tabulky rychle zjistíte, která role poskytuje potřebná oprávnění.
| Povolení |
Vlastník/přispěvatel |
Čtenář |
Přispěvatel vyhledávací služby |
Přispěvatel dat do vyhledávacího indexu |
Čtečka dat vyhledávacího indexu |
| Vytvoření a konfigurace služeb Azure AI Vyhledávač |
✅ |
❌ |
✅ |
❌ |
❌ |
| Přístup ke službě na portálu Azure |
✅ |
✅ |
✅ |
❌ |
❌ |
| Zobrazení vlastností služby, metrik a koncového bodu |
✅ |
✅ |
✅ |
❌ |
❌ |
| Výpis všech objektů ve službě |
✅ |
✅ |
✅ |
❌ |
❌ |
| Kvóty přístupu a statistiky služeb |
✅ |
❌ |
✅ |
❌ |
❌ |
| Zobrazení, kopírování a opětovné vygenerování klíčů |
✅ |
❌ |
✅ |
❌ |
❌ |
| Nastavení možností ověřování |
✅ |
❌ |
✅ |
❌ |
❌ |
| Zobrazení rolí, zásad a definic |
✅ |
✅ |
✅ |
❌ |
❌ |
| Konfigurace zabezpečení sítě a privátních připojení |
✅ |
❌ |
✅ |
❌ |
❌ |
| Vytváření, spouštění a správa vyhledávacích objektů 1 |
❌ |
❌ |
✅ |
❌ |
❌ |
| Nahrání dat pro indexování 2 |
❌ |
❌ |
❌ |
✅ |
❌ |
| Dotazování indexu |
❌ |
❌ |
❌ |
✅ |
✅ |
| Načtení ze znalostní báze |
❌ |
❌ |
❌ |
✅ |
✅ |
| Obejít filtry oprávnění pomocí čtení se zvýšenými oprávněními (Preview) |
❌ |
❌ |
❌ |
✅ |
❌ |
1 Zahrnuje indexy, indexery, zdroje dat, sady dovedností, aliasy, mapy synonym, ladicí relace, znalostní báze a zdroje znalostí. Indexery také podporují operace spuštění a resetování.
2 Vlastník nebo Přispěvatel může spustit Průvodce importem dat a vytvářet a načítat indexy, i když nemůžou nahrávat dokumenty v jiných klientech. Podobně indexery můžou zapisovat do libovolného indexu vyhledávací služby bez ohledu na přiřazení rolí jednotlivých indexů. V obou případech vyhledávací služba (nikoli uživatel) provádí akce roviny dat pomocí svých oprávnění Microsoft.Search/searchServices/indexes/documents/*.
Přiřaďte integrované role
V této části přiřadíte role pro:
Přiřazení rolí pro správu služeb
Následující role umožňují vytvářet, konfigurovat a spravovat vyhledávací službu. Tyto role jsou hierarchické, takže vyberte jednu na základě požadované úrovně přístupu.
| Role |
ID |
|
Vlastník |
8e3af657-a8ff-443c-a75c-2fe8c4bcb635 |
|
Přispěvatel |
b24988ac-6180-42a0-ab88-20f7382dd24c |
|
Čtenář |
acdd72a7-3385-48ef-bd42-f606fba81ae7 |
Přejděte do vyhledávací služby na portálu Azure.
V levém podokně vyberte Řízení přístupu (IAM).
Vyberte , přidejte,>,, přidejte přiřazení role.
Vyberte roli: Vlastník, Přispěvatel nebo Čtenář.
Na kartě Members vyberte Microsoft Entra identitu uživatele nebo skupiny. Pokud nastavujete oprávnění pro jinou službu Azure, vyberte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem.
V záložce Zkontrolovat a přiřadit vyberte Zkontrolovat a přiřadit pro přiřazení role.
Přihlaste se ke svému předplatnému Azure.
az login
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. Zadejte přiřazenou osobu a rozsah.
az role assignment create \
--assignee <assignee> \
--role "Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:az role assignment create
Naimportujte požadovaný modul a připojte se ke svému účtu Azure.
Import-Module Az.Resources
Connect-AzAccount
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:New-AzRoleAssignment
Otevřete příkazové prostředí a přihlaste se ke svému předplatnému Azure.
az login
Získejte přístupový token pro Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Odešlete požadavek PUT pro vytvoření přiřazení role s vymezeným oborem vyhledávací služby. Nastavte principalType na User, Group nebo ServicePrincipal, aby odpovídal přiřazené osobě.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
Přiřaďte role pro vývoj
Následující role umožňují vytvářet vyhledávací objekty, načítat dokumenty, indexy dotazů a načítat z znalostních bází. Přiřaďte všechny tři role, abyste pokryli celý rozsah úloh vývoje.
Přejděte do vyhledávací služby na portálu Azure.
V levém podokně vyberte Řízení přístupu (IAM).
Vyberte , přidejte,>,, přidejte přiřazení role.
Vyberte Přispěvatel vyhledávací služby.
Na kartě Members vyberte Microsoft Entra identitu uživatele nebo skupiny. Pokud nastavujete oprávnění pro jinou službu Azure, vyberte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem.
V záložce Zkontrolovat a přiřadit vyberte Zkontrolovat a přiřadit pro přiřazení role.
Opakováním tohoto postupu přiřaďte Přispěvatel dat indexu vyhledávání a Čtečku dat indexu vyhledávání.
Přihlaste se ke svému předplatnému Azure.
az login
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. Zadejte přiřazenou osobu a rozsah.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:az role assignment create
(Volitelné) Vytvořte přiřazení role s rozsahem omezeným na index. Zadejte přiřazenou osobu a rozsah.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:az role assignment create
Naimportujte požadovaný modul a připojte se ke svému účtu Azure.
Import-Module Az.Resources
Connect-AzAccount
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:New-AzRoleAssignment
(Volitelné) Vytvořte přiřazení role s rozsahem omezeným na index. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:New-AzRoleAssignment
Otevřete příkazové prostředí a přihlaste se ke svému předplatnému Azure.
az login
Získejte přístupový token pro Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Odešlete požadavek PUT pro vytvoření přiřazení role s vymezeným oborem vyhledávací služby. Nastavte principalType na User, Group nebo ServicePrincipal, aby odpovídal přiřazené osobě.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
(Volitelné) Odešlete požadavek PUT pro vytvoření přiřazení role s rozsahem omezeným na index.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
Přiřaďte role pro přístup pouze pro čtení
Pro aplikace a procesy, které potřebují jen přístup pro čtení k indexům a znalostním bázím, použijte následující roli. Mezi podporované operace patří vyhledávání, vyhledávání, automatické dokončování a návrhy indexů a načítání znalostních bází.
Přejděte do vyhledávací služby na portálu Azure.
V levém podokně vyberte Řízení přístupu (IAM).
Vyberte , přidejte,>,, přidejte přiřazení role.
Vyberte roli Čtenář dat indexu vyhledávání .
Na kartě Members vyberte Microsoft Entra identitu uživatele nebo skupiny. Pokud nastavujete oprávnění pro jinou službu Azure, vyberte spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem.
V záložce Zkontrolovat a přiřadit vyberte Zkontrolovat a přiřadit pro přiřazení role.
Přihlaste se ke svému předplatnému Azure.
az login
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. Zadejte přiřazenou osobu a rozsah.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:az role assignment create
(Volitelné) Vytvořte přiřazení role s rozsahem omezeným na index. Zadejte přiřazenou osobu a rozsah.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Reader" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:az role assignment create
Naimportujte požadovaný modul a připojte se ke svému účtu Azure.
Import-Module Az.Resources
Connect-AzAccount
Vytvořte přiřazení role s vymezeným oborem vyhledávací služby. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>"
Reference:New-AzRoleAssignment
(Volitelné) Vytvořte přiřazení role s rozsahem omezeným na index. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Reader" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:New-AzRoleAssignment
Otevřete příkazové prostředí a přihlaste se ke svému předplatnému Azure.
az login
Získejte přístupový token pro Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Odešlete požadavek PUT pro vytvoření přiřazení role s vymezeným oborem vyhledávací služby. Nastavte principalType na User, Group nebo ServicePrincipal, aby odpovídal přiřazené osobě.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/1407120a-92aa-4202-b7e9-c0e197c71c8f",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
(Volitelné) Odešlete požadavek PUT pro vytvoření přiřazení role s rozsahem omezeným na index.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/1407120a-92aa-4202-b7e9-c0e197c71c8f",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
Test přiřazení rolí
K otestování přiřazení rolí použijte klienta. Mějte na paměti, že role jsou kumulativní. Zděděné role, které jsou vymezeny na úroveň předplatného nebo skupiny prostředků na úrovni prostředku (vyhledávací služby), nemůžete odstranit ani odepřít.
Než budete pokračovat, nakonfigurujte aplikaci pro připojení bez klíčů a dejte přiřazené role.
Přejděte do vyhledávací služby na portálu Azure.
V levém podokně vyberteSpráva vyhledávání>Indexy a otestujte oprávnění související s indexy:
Přispěvatelé vyhledávací služby můžou vytvářet, upravovat a odstraňovat vyhledávací objekty, ale nemůžou načítat dokumenty ani spouštět dotazy. 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 Azure neexistuje žádná možnost načtení dokumentů mimo průvodce importem dat, ale můžete resetovat a spustit indexer, abyste potvrdili oprávnění k načítání dokumentů.
Čtenáři dat indexu vyhledávání můžou zadávat dotazy na indexy. 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 definice indexu ani vytvářet indexy.
Tento přístup předpokládá Visual Studio Code s rozšířením klienta REST.
Otevřete příkazové prostředí pro Azure CLI a přihlaste se ke svému Azure předplatnému.
az login
Získejte přístupový token pro rovinu dat Azure AI Vyhledávač.
az account get-access-token --scope https://search.azure.com/.default --query accessToken --output tsv
Vložte tyto proměnné do nového textového souboru v Visual Studio Code.
@baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE
@index-name = PASTE-YOUR-INDEX-NAME-HERE
@token = PASTE-YOUR-TOKEN-HERE
Odešlete požadavek, který používá zadané proměnné. Pro roli Čtenář dat indexu vyhledávání můžete odeslat dotaz pomocí libovolné podporované verze rozhraní API.
POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2026-04-01 HTTP/1.1
Content-type: application/json
Authorization: Bearer {{token}}
{
"queryType": "simple",
"search": "motel",
"filter": "",
"select": "HotelName,Description,Category,Tags",
"count": true
}
Reference:Search Documents
Úspěšný dotaz vrátí výsledky hledání s odpovídajícími dokumenty. Pokud je index prázdný nebo neobsahuje žádné shody, value obsahuje prázdné pole.
Nainstalujte požadované balíčky.
dotnet add package Azure.Search.Documents
dotnet add package Azure.Identity
Použijte Azure.Identity pro .NET pro ověřování tokenů. Microsoft pro většinu scénářů doporučuje DefaultAzureCredential().
Tady je příklad připojení klienta pomocí DefaultAzureCredential().
// Create a SearchIndexClient to send create/delete index commands
// Requires Search Service Contributor role
SearchIndexClient adminClient = new SearchIndexClient(serviceEndpoint, new DefaultAzureCredential());
// Create a SearchClient to load and query documents
// Requires Search Index Data Contributor (load) or Search Index Data Reader (query)
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, new DefaultAzureCredential());
Reference:SearchClient, SearchIndexClient, DefaultAzureCredential
Tady je další příklad použití přihlašovacích údajů tajných klíčů klienta.
var tokenCredential = new ClientSecretCredential(aadTenantId, aadClientId, aadSecret);
SearchClient srchclient = new SearchClient(serviceEndpoint, indexName, tokenCredential);
Tady je příklad spuštění dotazu.
SearchResults<SearchDocument> response = srchclient.Search<SearchDocument>("motel");
foreach (SearchResult<SearchDocument> result in response.GetResults())
{
Console.WriteLine(result.Document["HotelName"]);
}
Úspěšný dotaz vrátí výsledky hledání. Pokud žádný dokument nesouhlasí, sbírka výsledků je prázdná.
Nainstalujte požadované balíčky.
pip install azure-search-documents azure-identity
Použijte Azure. Identita pro Python pro ověřování tokenů
Pokud je Python klientem aplikace, která se spouští na straně serveru, použijte DefaultAzureCredential. Povolte interaktivní ověřování , pokud aplikace běží v prohlížeči.
Tady je příklad.
from azure.search.documents import SearchClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
endpoint = "https://<mysearch>.search.windows.net"
index_name = "myindex"
client = SearchClient(endpoint=endpoint, index_name=index_name, credential=credential)
Reference:SearchClient, DefaultAzureCredential
Přidejte požadované závislosti do souboru pom.xml.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-search-documents</artifactId>
<version>11.7.4</version>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.15.0</version>
</dependency>
Použijte Azure. Identita pro ověřování tokenů Java
Pro aplikace, které běží na Azure, použijte DefaultAzureCredential.
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 Azure v současné době nepodporuje přiřazení rolí na úrovni indexu. Pomocí Azure CLI, PowerShellu nebo rozhraní REST API přiřaďte role vymezené jednomu indexu.
Přihlaste se ke svému předplatnému Azure.
az login
Vytvořte přiřazení role omezené na jeden index. Zadejte přiřazenou osobu a rozsah na úrovni indexu.
az role assignment create \
--assignee <assignee> \
--role "Search Index Data Contributor" \
--scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:az role assignment create
Naimportujte požadovaný modul a připojte se ke svému účtu Azure.
Import-Module Az.Resources
Connect-AzAccount
Vytvořte přiřazení role omezené na jeden index. V tomto příkladu se používá přihlašovací jméno uživatele.
New-AzRoleAssignment -SignInName <email> `
-RoleDefinitionName "Search Index Data Contributor" `
-Scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
Reference:New-AzRoleAssignment
Otevřete příkazové prostředí a přihlaste se ke svému předplatnému Azure.
az login
Získejte přístupový token pro Azure Resource Manager.
az account get-access-token --scope https://management.azure.com/.default --query accessToken --output tsv
Odešlete požadavek PUT pro vytvoření přiřazení role omezeného na jeden index. Nastavte principalType na User, Group nebo ServicePrincipal, aby odpovídal přiřazené osobě.
PUT https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>/providers/Microsoft.Authorization/roleAssignments/<role-assignment-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleDefinitionId": "/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/8ebe5a00-799e-43f5-93ac-243d3dce84a7",
"principalId": "<principal-object-id>",
"principalType": "<principal-type>"
}
}
Reference:Přiřazení rolí – Vytvoření
Rozsah na index a operace indexátoru
Přiřazení rolí pro index se vztahují pouze na přímé operace rozhraní API, jako jsou dotazy nebo nahrání dokumentů od uživatelů nebo aplikací. Indexery nejsou omezeny oprávněními jednotlivých indexů, protože pracují s přihlašovacími údaji na úrovni služby.
Uživatel s rolí Přispěvatel vyhledávací služby může vytvářet indexery, které zapisují do libovolného indexu vyhledávací služby, a to i indexy, kde daný uživatel nemá přiřazenou roli pro každý index.
Pro striktní izolaci dat mezi indexy zvažte tyto přístupy:
- Pro týmy nebo uživatele, kteří vyžadují izolaci na úrovni indexu, použijte samostatné vyhledávací služby.
-
Přiřaďte přispěvatele vyhledávací služby jenom správcům, kteří spravují indexery.
- Pomocí řízení přístupu na úrovni dokumentu s filtry zabezpečení omezte výsledky dotazů v rámci sdíleného indexu.
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í.
Následující příklady naklonují čtečku dat indexu vyhledávání a pak přidají 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.
Přihlaste se k portálu Azure a přejděte do vyhledávací služby.
V levém podokně vyberte Řízení přístupu (IAM).
Na kartě Role vyhledejte čtenář dat indexu vyhledávání nebo jinou roli, vyberte tři tečky (...) a pak vyberte Klonovat.
Na kartě Basics zadejte název vlastní role, například "Vyhledávací index Data Explorer" a pak vyberte Dalši.
Na kartě Oprávnění vyberte Přidat oprávnění.
V podokně Přidat oprávnění vyberte dlaždici Microsoft Search.
V horní části vyberte Akce a nastavte následující oprávnění:
- V části
Microsoft.Search/operations vyberte Číst: Vypsat všechny dostupné operace.
- V části
Microsoft.Search/searchServices/indexes vyberte Read: Read Index.
Přepněte na Data Actions v horní části a v části Microsoft.Search/searchServices/indexes/documents vyberte Read: Read Documents.
Definice JSON vypadá jako v následujícím příkladu:
{
"properties": {
"roleName": "Search Index Data Explorer",
"description": "List all indexes on the service and query them.",
"assignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
],
"permissions": [
{
"actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"notActions": [],
"dataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"notDataActions": []
}
]
}
}
Výběrem Přidat zavřete podokno.
Výběrem možnost Zkontrolovat a vytvořit vytvořte roli.
Teď můžete k roli přiřadit uživatele a skupiny. Další informace o těchto krocích najdete v tématu Vytvoření nebo aktualizace vlastních rolí Azure pomocí portálu Azure.
Příklad Azure CLI ukazuje syntaxi JSON pro vytvoření vlastní role, která je klonem čtečky dat indexu vyhledávání, ale s možností vypsat všechny indexy podle názvu. Podrobné pokyny k vytvoření vlastní role najdete v tématu Vytvoření nebo aktualizace Azure vlastních rolí pomocí Azure CLI.
Zkontrolujte seznam atomických oprávnění a určete, které oprávnění potřebujete. V tomto příkladu potřebujete následující oprávnění:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Uložte následující definici role do souboru JSON s názvem search-index-data-explorer.json. Pro Id zadejte nový identifikátor GUID, který vygenerujete.
{
"Name": "Search Index Data Explorer",
"Id": "<role-definition-guid>",
"IsCustom": true,
"Description": "List all indexes on the service and query them.",
"Actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"NotActions": [],
"DataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
Vytvořte vlastní roli předáním souboru JSON příkazu az role definition create.
az role definition create --role-definition @search-index-data-explorer.json
Reference:az role definition create
Příklad PowerShellu ukazuje syntaxi JSON pro vytvoření vlastní role, která je klonem čtečky dat Indexu vyhledávání, ale s možností vypsat všechny indexy podle názvu. Podrobné pokyny k vytvoření vlastní role najdete v tématu Vytvoření nebo aktualizace Azure vlastních rolí pomocí Azure PowerShell.
Zkontrolujte seznam atomických oprávnění a určete, které oprávnění potřebujete. V tomto příkladu potřebujete následující oprávnění:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Uložte následující definici role do souboru JSON s názvem search-index-data-explorer.json. Pro Id zadejte nový identifikátor GUID, který vygenerujete.
{
"Name": "Search Index Data Explorer",
"Id": "<role-definition-guid>",
"IsCustom": true,
"Description": "List all indexes on the service and query them.",
"Actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"NotActions": [],
"DataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"NotDataActions": [],
"AssignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
Vytvořte vlastní roli předáním souboru JSON příkazu New-AzRoleDefinition.
New-AzRoleDefinition -InputFile "search-index-data-explorer.json"
Reference:New-AzRoleDefinition
Příklad rozhraní REST API ukazuje syntaxi JSON pro vytvoření vlastní role, která je klonem čtečky dat indexu služby Search, ale s možností vypsat všechny indexy podle názvu. Podrobné pokyny k vytvoření vlastní role najdete v tématu Vytvoření nebo aktualizace Azure vlastních rolí pomocí rozhraní REST API.
Zkontrolujte seznam atomických oprávnění a určete, které oprávnění potřebujete. V tomto příkladu potřebujete následující oprávnění:
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read",
"Microsoft.Search/searchServices/indexes/documents/read"
Vytvořte vlastní roli odesláním následujícího požadavku do koncového bodu definice role.
PUT https://management.azure.com/subscriptions/<subscription>/providers/Microsoft.Authorization/roleDefinitions/<role-definition-guid>?api-version=2022-04-01 HTTP/1.1
Authorization: Bearer <access-token>
Content-Type: application/json
{
"properties": {
"roleName": "Search Index Data Explorer",
"description": "List all indexes on the service and query them.",
"type": "CustomRole",
"permissions": [
{
"actions": [
"Microsoft.Search/operations/read",
"Microsoft.Search/searchServices/indexes/read"
],
"notActions": [],
"dataActions": [
"Microsoft.Search/searchServices/indexes/documents/read"
],
"notDataActions": []
}
],
"assignableScopes": [
"/subscriptions/<subscription>/resourceGroups/<resource-group>"
]
}
}
Reference:Definice rolí – Vytvoření nebo aktualizace
Vytvořte zásady podmíněného přístupu
Pokud potřebujete vynutit zásady organizace, jako je vícefaktorové ověřování, použijte Microsoft Entra Podmíněný přístup.
Vytvoření zásady podmíněného přístupu pro Azure AI Vyhledávač:
Přihlaste se k portálu Azure.
Vyhledejte Microsoft Entra Podmíněný přístup.
Na stránce Přehled vyberte Vytvořit novou zásadu.
V části Cloudové aplikace nebo akce přidejte Azure AI Vyhledávač jako cloudovou aplikaci podle toho, jak chcete zásady nastavit.
Aktualizujte zbývající parametry zásad. Zadejte například, na které uživatele a skupiny se zásady vztahují.
Zásady uložte.
Důležité
Pokud má vaše vyhledávací služba přiřazenou spravovanou identitu, zobrazí se konkrétní vyhledávací služba jako cloudová aplikace. Výběr dané vyhledávací služby ale danou politiku nevynucuje. Místo toho vyberte obecnou cloudovou aplikaci Azure AI Vyhledávač a použijte zásady podmíněného přístupu pro vyhledávací službu.
Troubleshooting
Při vývoji aplikací, které používají řízení přístupu na základě role k ověřování, se můžou vyskytnout některé běžné problémy:
Výchozí konfigurace vyhledávací služby je ověřování založené na klíčích. Pokud toto nastavení nezměníte nařízení přístupu na obě nebo na základě role, budou všechny žádosti, které používají ověřování na základě role, automaticky odepřeny bez ohledu na příslušná oprávnění.
Pokud váš požadavek obsahuje klíč rozhraní API spolu s přihlašovacími údaji založenými na rolích, služba se ověří pomocí klíče. Odeberte klíč rozhraní API z hlaviček požadavků, aby bylo možné použít ověřování na základě role.
Pokud autorizační token pochází ze spravované identity a nedávno jste přiřadili příslušná oprávnění, může trvat několik hodin , než se přiřazení oprávnění projeví.
Pokud dotazy s oprávněními na úrovni dokumentu nevrací očekávané výsledky, použijte Přispěvatel dat indexu vyhledávání nebo vytvořte vlastní roli se zvýšenými oprávněními (Preview) k prozkoumání.
Další krok
Tento článek vysvětluje, jak přiřadit role pro řízení a operace roviny dat na Azure AI Vyhledávač. Komplexní pokyny k přidání přístupu na základě role do kódu aplikace: