Megosztás a következőn keresztül:


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

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.

  1. Jelentkezzen be az Azure CLI-be.

    az login
    
  2. Szerezze be a személyes személyazonosságát.

    az ad signed-in-user show \
        --query id -o tsv
    
  3. 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átuma https://<YOUR-RESOURCE-NAME>.search.windows.net/van.
  • AZURE_CLIENT_ID: Ez a hitelesítéshez szükséges identitás.