Az Azure AI Search használata kulcsok nélkül
Az alkalmazáskódban beállíthat egy kulcs nélküli kapcsolatot az Azure AI Search szolgáltatással, amely a Microsoft Entra-azonosítót és a szerepköröket használja a hitelesítéshez és engedélyezéshez. A legtöbb Azure-szolgáltatáshoz irányuló alkalmazáskéréseket kulcsokkal vagy kulcs nélküli kapcsolatokkal kell hitelesíteni. A fejlesztőknek szorgalmasnak kell lenniük ahhoz, hogy a kulcsok ne legyenek biztonságos helyen elérhetővé. Bárki, aki hozzáfér a kulcshoz, hitelesítheti magát a szolgáltatásban. A kulcs nélküli hitelesítés továbbfejlesztett felügyeleti és biztonsági előnyöket biztosít a fiókkulcshoz képest, mivel nincs tárolandó kulcs (vagy kapcsolati sztring).
A kulcs nélküli kapcsolatok a következő lépésekkel engedélyezve vannak:
- Konfigurálja a hitelesítést.
- Szükség szerint állítsa be a környezeti változókat.
- Azure Identity-kódtár hitelesítő adattípusának használatával hozzon létre egy Azure AI Search-ügyfélobjektumot.
Előfeltételek
A helyi fejlesztési és éles számítási feladatok esetében a következő lépéseket kell elvégezni:
- AI Search-erőforrás létrehozása
- Szerepköralapú hozzáférés engedélyezése a keresési szolgáltatásban
- Az Azure Identity ügyfélkódtárának telepítése
AI Search-erőforrás létrehozása
A cikk folytatása előtt szüksége lesz egy Azure AI Search-erőforrásra, amellyel dolgozhat. Ha nem rendelkezik erőforrással, hozza létre most az erőforrást . Engedélyezze a szerepköralapú hozzáférés-vezérlést (RBAC) az erőforráshoz.
Az Azure Identity ügyfélkódtárának telepítése
Kulcs nélküli megközelítés használatához frissítse az AI Search-kompatibilis kódot az Azure Identity ügyfélkódtárával.
Telepítse az Azure Identity ügyfélkódtárat a .NET-hez:
dotnet add package Azure.Identity
Forráskód frissítése a DefaultAzureCredential használatára
Az Azure Identity-kódtár DefaultAzureCredential
lehetővé teszi ugyanazt a kódot a helyi fejlesztési környezetben és az Azure-felhőben. Hozzon létre egyetlen hitelesítő adatot, és szükség szerint használja újra a hitelesítő példányt a jogkivonat-gyorsítótárazás előnyeinek kihasználásához.
A .NET-ről DefaultAzureCredential
további információt a .NET-hez készült Azure Identity ügyfélkódtárában talál.
using Azure;
using Azure.Search.Documents;
using Azure.Search.Documents.Indexes;
using Azure.Search.Documents.Indexes.Models;
using Azure.Search.Documents.Models;
using Azure.Identity;
using System;
using static System.Environment;
string endpoint = GetEnvironmentVariable("AZURE_SEARCH_ENDPOINT");
string indexName = "my-search-index";
DefaultAzureCredential credential = new();
SearchClient searchClient = new(new Uri(endpoint), indexName, credential);
SearchIndexClient searchIndexClient = new(endpoint, credential);
Helyi fejlesztés
A szerepköröket használó helyi fejlesztés az alábbi lépéseket tartalmazza:
- Rendelje hozzá személyes identitását az adott erőforrás RBAC-szerepköreihez.
- Az Azure CLI-vel vagy az Azure PowerShell-lel való hitelesítéshez használjon olyan eszközt, mint az Azure CLI.
- Környezeti változók létrehozása az erőforráshoz.
Szerepkörök helyi fejlesztéshez
Helyi fejlesztőként az Azure-identitásnak teljes körű ellenőrzést kell végeznie az adatsík-műveletek felett. Ezek a javasolt szerepkörök:
- Keresési szolgáltatás közreműködője, objektumok létrehozása és kezelése
- Indexadat-közreműködő keresése, index betöltése
- Indexadat-olvasó keresése, index lekérdezése
Keresse meg a személyes identitását az alábbi eszközök egyikével. Használja ezt az identitást <identity-id>
értékként.
Jelentkezzen be az Azure CLI-be.
az login
Szerezze be a személyes személyazonosságát.
az ad signed-in-user show \ --query id -o tsv
Rendelje hozzá a szerepköralapú hozzáférés-vezérlési (RBAC) szerepkört az erőforráscsoport identitásához.
az role assignment create \ --role "<role-name>" \ --assignee "<identity-id>" \ --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>"
Szükség esetén cserélje le <identity-id>
a , <subscription-id>
és <resource-group-name>
a tényleges értékeket.
Hitelesítés helyi fejlesztéshez
Az Azure-identitás hitelesítéséhez használjon egy eszközt a helyi fejlesztési környezetben. A hitelesítés után a DefaultAzureCredential
forráskódban szereplő példány megkeresi és használja a hitelesítést.
Válasszon egy eszközt a hitelesítéshez a helyi fejlesztés során.
Környezeti változók konfigurálása helyi fejlesztéshez
Az Azure AI Search szolgáltatáshoz való csatlakozáshoz a kódnak ismernie kell az erőforrásvégpontot.
Hozzon létre egy környezeti változót az Azure AI Search-végponthoz.AZURE_SEARCH_ENDPOINT
Ennek az URL-címnek általában a formátuma https://<YOUR-RESOURCE-NAME>.search.windows.net/
van.
Éles számítási feladatok
Az éles számítási feladatok üzembe helyezése az alábbi lépéseket tartalmazza:
- Válassza ki azokat az RBAC-szerepköröket, amelyek megfelelnek a minimális jogosultság elvének.
- RBAC-szerepkörök hozzárendelése az adott erőforrás éles identitásához.
- Környezeti változók beállítása az erőforráshoz.
Szerepkörök éles számítási feladatokhoz
Az éles erőforrások létrehozásához létre kell hoznia egy felhasználó által hozzárendelt felügyelt identitást , majd hozzá kell rendelnie ezt az identitást az erőforrásokhoz a megfelelő szerepkörökkel.
Éles alkalmazás esetén a következő szerepkör javasolt:
Szerepkör neve | Azonosító |
---|---|
Keresési index adatolvasója | 1407120a-92aa-4202-b7e9-c0e197c71c8f |
Hitelesítés éles számítási feladatokhoz
Az erőforrás létrehozásához és a hitelesítés beállításához használja az alábbi Azure AI Search Bicep-sablontidentityId
. A Bicep-nek szüksége van a szerepkör-azonosítóra. Az name
ebben a Bicep-kódrészletben szereplő kódrészlet nem az Azure-szerepkör, hanem a Bicep-telepítésre jellemző.
// main.bicep
param environment string = 'production'
param roleGuid string = ''
module aiSearchRoleUser 'core/security/role.bicep' = {
scope: aiSearchResourceGroup
name: 'aiSearch-role-user'
params: {
principalId: (environment == 'development') ? principalId : userAssignedManagedIdentity.properties.principalId
principalType: (environment == 'development') ? 'User' : 'ServicePrincipal'
roleDefinitionId: roleGuid
}
}
A main.bicep
fájl meghívja a következő általános Bicep-kódot, hogy bármilyen szerepkört hozzon létre. Több RBAC-szerepkört is létrehozhat, például egyet a felhasználónak, egy másikat pedig éles környezetben. Ez lehetővé teszi mind a fejlesztési, mind az éles környezetek engedélyezését ugyanazon a Bicep-telepítésen belül.
// core/security/role.bicep
metadata description = 'Creates a role assignment for an identity.'
param principalId string // passed in from main.bicep
@allowed([
'Device'
'ForeignGroup'
'Group'
'ServicePrincipal'
'User'
])
param principalType string = 'ServicePrincipal'
param roleDefinitionId string // Role ID
resource role 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(subscription().id, resourceGroup().id, principalId, roleDefinitionId)
properties: {
principalId: principalId
principalType: principalType
roleDefinitionId: resourceId('Microsoft.Authorization/roleDefinitions', roleDefinitionId)
}
}
Környezeti változók konfigurálása éles számítási feladatokhoz
Az Azure AI Search szolgáltatáshoz való csatlakozáshoz a kódnak ismernie kell az erőforrásvégpontot és a felügyelt identitás azonosítóját.
Környezeti változók létrehozása az üzembe helyezett és kulcs nélküli Azure AI Search-erőforráshoz:
AZURE_SEARCH_ENDPOINT
: Ez az URL-cím az Azure AI Search-erőforrás hozzáférési pontja. Ennek az URL-címnek általában a formátumahttps://<YOUR-RESOURCE-NAME>.search.windows.net/
van.AZURE_CLIENT_ID
: Ez a hitelesítéshez szükséges identitás.