Připojení vyhledávací služby k jiným prostředkům Azure prostřednictvím spravované identity
Můžete nakonfigurovat Search Azure AI pro připojení k jiným prostředkům Azure pomocí spravované identity přiřazené systémem nebo přiřazené uživatelem a přiřazení role Azure. Spravované identity a přiřazení rolí eliminují potřebu předávání tajných kódů a přihlašovacích údajů v připojovací řetězec nebo kódu.
Požadavky
Vyhledávací služba na úrovni Basic nebo vyšší.
Prostředek Azure, který přijímá příchozí požadavky z přihlášení Microsoft Entra s platným přiřazením role.
Podporované scénáře
Azure AI Search může u odchozích připojení k prostředkům Azure používat spravovanou identitu přiřazenou systémem nebo přiřazenou uživatelem. Spravovaná identita systému se označuje, když připojovací řetězec je jedinečné ID prostředku služby nebo aplikace pracující s ID Microsoft Entra. Spravovaná identita přiřazená uživatelem se zadává prostřednictvím vlastnosti identity.
Vyhledávací služba používá Azure Storage jako zdroj dat indexeru a jako jímku dat pro ladicí relace, ukládání do mezipaměti rozšiřování a úložiště znalostí. Pro funkce vyhledávání, které se zapisuje zpět do úložiště, potřebuje spravovaná identita přiřazení role přispěvatele, jak je popsáno v části Přiřazení role .
Scénář | Spravovaná identita systému | Spravovaná identita přiřazená uživatelem (Preview) |
---|---|---|
Připojení indexeru k podporovaným zdrojůmdat Azure 13 | Ano | Yes |
Azure Key Vault pro klíče spravované zákazníkem | Ano | Yes |
Ladicí relace (hostované ve službě Azure Storage)1 | Yes | No |
Mezipaměť rozšiřování (hostovaná ve službě Azure Storage)1,2 | Ano | Yes |
Knowledge Store (hostované ve službě Azure Storage)1 | Ano | Yes |
Vlastní dovednosti (hostované ve službě Azure Functions nebo ekvivalentní) | Ano | Yes |
Dovednosti vkládání v Azure OpenAI | Ano | Yes |
Vektorizátor Azure OpenAI | Ano | Yes |
1 Pro připojení mezi vyhledáváním a úložištěm konfigurace zabezpečení sítě omezuje, jaký typ spravované identity můžete použít. K připojení k úložišti prostřednictvím výjimky důvěryhodné služby nebo pravidla instance prostředku je možné použít pouze identitu spravovanou systémem. Podrobnosti najdete v tématu Přístup k účtu úložiště chráněnému sítí.
2 Jedna metoda pro určení mezipaměti rozšiřování je v Průvodci importem dat. Průvodce v současné době nepřijímá spravovanou identitu připojovací řetězec pro mezipaměť rozšiřování. Po dokončení průvodce ale můžete aktualizovat připojovací řetězec v definici JSON indexeru tak, aby zadali spravovanou identitu přiřazenou systémem nebo uživatelem a pak indexer znovu spusťte.
3 Poznámka: Zakázání klíčů v účtu úložiště Azure se v současné době nepodporuje pro tabulku Azure, která se používá jako zdroj dat. I když se spravovaná identita nepoužívá explicitně k poskytnutí klíčů úložiště, vyhledávací služba AI stále používá klíče pro tuto implementaci.
Vytvoření spravované identity systému
Když je povolená spravovaná identita přiřazená systémem, Azure vytvoří identitu pro vaši vyhledávací službu, která se dá použít k ověření v jiných službách Azure ve stejném tenantovi a předplatném. Tuto identitu pak můžete použít v přiřazeních řízení přístupu na základě role v Azure (Azure RBAC), která umožňují přístup k datům během indexování.
Spravovaná identita přiřazená systémem je jedinečná pro vaši vyhledávací službu a je svázaná se službou po celou dobu jejího života.
Přihlaste se k webu Azure Portal a vyhledejte vyhledávací službu.
V části Nastavení vyberte Identita.
Na kartě Přiřazený systém v části Stav vyberte Zapnuto.
Zvolte Uložit.
Po uložení uvidíte identifikátor objektu, který je přiřazený k vaší vyhledávací službě.
Vytvoření spravované identity přiřazené uživatelem (Preview)
Spravovaná identita přiřazená uživatelem je prostředek v Azure. Je užitečné, pokud potřebujete v přiřazeních rolí větší členitost, protože můžete vytvořit samostatné identity pro různé aplikace a scénáře.
Důležité
Tato funkce je ve verzi Public Preview v rámci doplňkových podmínek použití. Spravované identity přiřazené uživatelem se v současné době nepodporují pro připojení k účtu úložiště chráněnému sítí. Žádost o vyhledávání aktuálně vyžaduje veřejnou IP adresu.
Přihlaste se k portálu Azure Portal.
Vyberte + Vytvořit prostředek.
Na panelu hledání "Search s a marketplace" vyhledejte spravovanou identitu přiřazenou uživatelem a pak vyberte Vytvořit.
Vyberte předplatné, skupinu prostředků a oblast. Zadejte popisný název identity.
Vyberte Vytvořit a počkejte na dokončení nasazení prostředku.
V několika dalších krocích přiřadíte spravované identitě přiřazené uživatelem k vyhledávací službě.
Na stránce vyhledávací služby v části Nastavení vyberte Identita.
Na kartě Přiřazený uživatel vyberte Přidat.
Zvolte předplatné a pak vyberte spravovaný prostředek přiřazený uživatelem, který jste vytvořili v předchozím kroku.
Povolit přístup k bráně firewall
Pokud je váš prostředek Azure za bránou firewall, ujistěte se, že existuje příchozí pravidlo, které přijímá požadavky z vaší vyhledávací služby.
Pro připojení stejné oblasti ke službě Azure Blob Storage nebo Azure Data Lake Storage Gen2 použijte identitu spravovanou systémem a výjimku důvěryhodné služby. Volitelně můžete nakonfigurovat pravidlo instance prostředku tak, aby přijímalo požadavky.
Pro všechny ostatní prostředky a připojení nakonfigurujte pravidlo brány firewall protokolu IP, které přijímá požadavky z vyhledávání. Podrobnosti najdete v tématu Přístup k obsahu chráněnému funkcemi zabezpečení sítě Azure.
Přiřazení role
Spravovaná identita musí být spárovaná s rolí Azure, která určuje oprávnění k prostředku Azure.
Pro datová připojení indexeru a pro přístup ke klíči spravovanému zákazníkem ve službě Azure Key Vault jsou potřeba oprávnění čtenáře dat.
Oprávnění přispěvatele (zápisu) jsou potřebná pro funkce rozšiřování AI, které používají Azure Storage k hostování dat relace ladění, ukládání do mezipaměti rozšiřování a dlouhodobého úložiště obsahu v úložišti znalostí.
Následující kroky jsou určené pro Azure Storage. Pokud je vaším prostředkem Azure Cosmos DB nebo Azure SQL, postup je podobný.
Přihlaste se k webu Azure Portal a najděte prostředek Azure, ke kterému musí mít vyhledávací služba přístup.
V Azure Storage vyberte v levém navigačním podokně řízení přístupu (AIM ).
Vyberte Přidat přiřazení role.
Na stránce Role vyberte role potřebné pro vaši vyhledávací službu:
Úloha Přiřazení role Indexování objektů blob pomocí indexeru Přidání čtečky dat objektů blob služby Storage Indexování ADLS Gen2 pomocí indexeru Přidání čtečky dat objektů blob služby Storage Indexování tabulek pomocí indexeru Přidání čtečky a přístupu k datům Indexování souborů pomocí indexeru Přidání čtečky a přístupu k datům Zápis do úložiště znalostí Přidání DataContributoru objektu blob služby Storage pro projekce objektů a souborů a Čtenář a Přístup k datům pro projekce tabulek Zápis do mezipaměti pro rozšiřování Přidání přispěvatele dat objektů blob úložiště Uložení stavu relace ladění Přidání přispěvatele dat objektů blob úložiště Vkládání dat (vektorizace) pomocí modelů vkládání Azure OpenAI Přidání uživatele OpenAI služeb Cognitive Services Na stránce Členové vyberte Spravovanou identitu.
Vyberte členy. Na stránce Vybrat spravovanou identitu zvolte své předplatné a pak vyfiltrujte podle typu služby a pak tuto službu vyberte. K výběru budou k dispozici pouze služby, které mají spravovanou identitu.
Vyberte Zkontrolovat + přiřadit.
Příklady řetězců Připojení ion
Po definování spravované identity pro vyhledávací službu a přiřazení role je možné odchozí připojení upravit tak, aby používala jedinečné ID prostředku druhého prostředku Azure. Tady je několik příkladů připojovací řetězec pro různé scénáře.
Zdroj dat objektů blob (systém):
Zdroj dat indexeru obsahuje vlastnost "credentials", která určuje způsob vytvoření připojení ke zdroji dat. Následující příklad ukazuje připojovací řetězec určení jedinečného ID prostředku účtu úložiště. ID Microsoft Entra ověří požadavek pomocí systémové spravované identity vyhledávací služby. Všimněte si, že připojovací řetězec neobsahuje kontejner. V definici zdroje dat je název kontejneru zadán ve vlastnosti "kontejner" (není zobrazeno), nikoli v připojovací řetězec.
"credentials": {
"connectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}
Zdroj dat objektu blob (uživatel):
Žádost o vyhledávání ve službě Azure Storage je také možné provést v rámci spravované identity přiřazené uživatelem, která je aktuálně ve verzi Preview. Identita uživatele vyhledávací služby je zadána ve vlastnosti "identity". K nastavení identity můžete použít portál nebo rozhraní REST API Preview verze 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}"
}
Definice úložiště znalostí zahrnuje připojovací řetězec do služby Azure Storage. Úložiště znalostí v Azure Storage vytvoří projekce jako objekty blob a tabulky. Připojovací řetězec je jedinečné ID prostředku vašeho účtu úložiště. Všimněte si, že řetězec v cestě neobsahuje kontejnery ani tabulky. Ty jsou definovány v definici vložené projekce, nikoli v připojovací řetězec.
"knowledgeStore": {
"storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/storage-account-name};"
}
Indexer vytvoří, použije a pamatuje kontejner použitý pro rozšiřování v mezipaměti. Kontejner není nutné zahrnout do připojovací řetězec mezipaměti. ID objektu najdete na stránce Identita vyhledávací služby na portálu.
"cache": {
"enableReprocessing": true,
"storageConnectionString": "ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name};"
}
Ladicí relace se spustí na portálu a při spuštění relace vezme připojovací řetězec. Můžete vložit řetězec podobný následujícímu příkladu.
"ResourceId=/subscriptions/{subscription-ID}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}/{container-name};",
Vlastní dovednost cílí na koncový bod funkce Azure nebo aplikace hostující vlastní kód. Koncový bod je zadaný v definici vlastní dovednosti. Přítomnost authResourceId říká vyhledávací službě, aby se připojila pomocí spravované identity a předala ID aplikace cílové funkce nebo aplikace ve vlastnosti.
{
"@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": [ ...]
}
Dovednosti vkládání Azure OpenAI a vektorizátor Azure OpenAI:
Dovednost a vektorizátor vkládání Azure OpenAI do služby AI Search cílí na koncový bod služby Azure OpenAI hostující model vkládání. Koncový bod se zadává v definici dovednosti azure OpenAI pro vkládání a/nebo v definici vektorizátoru Azure OpenAI. Identita spravovaná systémem se používá, pokud je nakonfigurovaná a pokud je klíč apikey a authIdentity prázdné. Vlastnost authIdentity se používá pouze pro spravovanou identitu přiřazenou uživatelem.
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"description": "Connects a deployed embedding model.",
"resourceUri": "https://url.openai.azure.com/",
"deploymentId": "text-embedding-ada-002",
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
"vectorizers": [
{
"name": "my_azure_open_ai_vectorizer",
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": "https://url.openai.azure.com",
"deploymentId": "text-embedding-ada-002"
}
}
]