Csatlakozás az Azure AI Search szolgáltatásba szerepköralapú hozzáférés-vezérléssel

Az Azure globális szerepköralapú hozzáférés-vezérlési engedélyezési rendszert biztosít a platformon futó összes szolgáltatáshoz. Az Azure AI Searchben az Azure-szerepkörök a következő célokra használhatók:

  • Síkműveletek vezérlése (szolgáltatásfelügyeleti feladatok az Azure Resource Manageren keresztül).

  • Adatsík-műveletek, például indexek létrehozása, betöltése és lekérdezése.

A felhasználónkénti hozzáférés a keresési eredményekhez (más néven sorszintű biztonsághoz vagy dokumentumszintű biztonsághoz) nem támogatott. Áthidaló megoldásként hozzon létre olyan biztonsági szűrőket, amelyek felhasználói identitás alapján vágják le az eredményeket, eltávolítva azokat a dokumentumokat, amelyekhez a kérelmezőnek nem kellene hozzáféréssel rendelkeznie.

Feljegyzés

Rövid megjegyzés a terminológiáról. A vezérlősík a Felügyeleti REST API-ban vagy azzal egyenértékű ügyfélkódtárakban támogatott műveletekre vonatkozik. Az adatsík a keresési szolgáltatásvégponton végzett műveletekre utal, például indexelésre vagy lekérdezésekre, vagy a Search REST API-ban vagy azzal egyenértékű ügyfélkódtárakban megadott bármely más műveletre.

A következő szerepkörök vannak beépítve. Ha ezek a szerepkörök nem elegendőek, hozzon létre egy egyéni szerepkört.

Szerepkör Sík Leírás
Tulajdonos Control & Data A keresési erőforrás vezérlősíkjának teljes hozzáférése, beleértve az Azure-szerepkörök hozzárendelését is. Csak a tulajdonosi szerepkör engedélyezheti vagy tilthatja le a hitelesítési beállításokat, illetve kezelheti a szerepköröket más felhasználók számára. Az előfizetés-rendszergazdák alapértelmezés szerint tagok.

Az adatsíkon ez a szerepkör ugyanazzal a hozzáféréssel rendelkezik, mint a keresési szolgáltatás közreműködői szerepköre. Ez magában foglalja az összes adatsík-művelethez való hozzáférést, kivéve a dokumentumok lekérdezésének vagy indexelésének lehetőségét.
Közreműködő Control & Data A vezérlősíkhoz való hozzáférés szintje megegyezik a tulajdonossal, és nincs lehetőség szerepkörök hozzárendelésére vagy a hitelesítési beállítások módosítására.

Az adatsíkon ez a szerepkör ugyanazzal a hozzáféréssel rendelkezik, mint a keresési szolgáltatás közreműködői szerepköre. Ez magában foglalja az összes adatsík-művelethez való hozzáférést, kivéve a dokumentumok lekérdezésének vagy indexelésének lehetőségét.
Olvasó Control & Data Olvasási hozzáférés a teljes szolgáltatásban, beleértve a keresési metrikákat, a tartalommetrikákat (felhasznált tárterület, objektumok száma) és az adatsík-erőforrások (indexek, indexelők stb.) objektumdefinícióit. Azonban nem tudja olvasni az API-kulcsokat, és nem tud tartalmat olvasni az indexekben.
Keresési szolgáltatás közreműködője Control & Data Írási-olvasási hozzáférés objektumdefiníciókhoz (indexek, aliasok, szinonimatérképek, indexelők, adatforrások és képességkészletek). Ez a szerepkör olyan fejlesztőknek szól, akik objektumokat hoznak létre, valamint olyan rendszergazdák számára, akik egy keresési szolgáltatást és annak objektumait kezelik, de nem férnek hozzá az index tartalmához. Ezzel a szerepkörsel létrehozhat, törölhet és listázhat indexeket, lekérheti az indexdefiníciókat, lekérheti a szolgáltatásinformációkat (statisztikákat és kvótákat), tesztelheti az elemzőket, szinonimatérképeket, indexelőket, adatforrásokat és készségkészleteket hozhat létre és kezelhet. Tekintse meg Microsoft.Search/searchServices/* az engedélyek listáját.
Keresési index adatszolgáltatója Adatok Olvasási-írási hozzáférés az indexekben lévő tartalmakhoz. Ez a szerepkör azoknak a fejlesztőknek vagy indextulajdonosoknak szól, akiknek importálni, frissíteniük vagy le kell kérdezniük egy index dokumentumgyűjteményét. Ez a szerepkör nem támogatja az indexek létrehozását vagy kezelését. Alapértelmezés szerint ez a szerepkör a keresési szolgáltatás összes indexéhez tartozik. A hatókör szűkítéséhez lásd : Hozzáférés biztosítása egyetlen indexhez .
Keresési index adatolvasója Adatok Írásvédett hozzáférés keresési indexek lekérdezéséhez. Ez a szerepkör a lekérdezéseket futtató alkalmazások és felhasználók számára készült. Ez a szerepkör nem támogatja az objektumdefiníciók olvasási hozzáférését. Nem olvashat például keresési indexdefiníciót, és nem kérhet le keresési szolgáltatási statisztikákat. Alapértelmezés szerint ez a szerepkör a keresési szolgáltatás összes indexéhez tartozik. A hatókör szűkítéséhez lásd : Hozzáférés biztosítása egyetlen indexhez .

Feljegyzés

Ha letiltja az Azure szerepköralapú hozzáférését, a vezérlősík beépített szerepkörei (Tulajdonos, Közreműködő, Olvasó) továbbra is elérhetők maradnak. A szerepköralapú hozzáférés letiltása csak a szerepkörökhöz társított adatkapcsolatú engedélyeket távolítja el. Ha az adatsík-szerepkörök le vannak tiltva, a keresési szolgáltatás közreműködője egyenértékű a vezérlősík-közreműködővel.

Korlátozások

  • A szerepköralapú hozzáférés-vezérlés bevezetése növelheti egyes kérések késését. A kérelemben használt szolgáltatáserőforrás (index, indexelő stb.) és a szolgáltatásnév minden egyedi kombinációja engedélyezési ellenőrzést indít el. Ezek az engedélyezési ellenőrzések akár 200 ezredmásodperc késést is adhatnak egy kéréshez.

  • Ritka esetekben, amikor a kérések számos különböző szolgáltatásnévből származnak, amelyek mindegyike különböző szolgáltatáserőforrásokat (indexeket, indexelőket stb.) céloz meg, az engedélyezési ellenőrzések szabályozást eredményezhetnek. A szabályozás csak akkor történne, ha a keresési szolgáltatás erőforrásának és a szolgáltatásnévnek több száz egyedi kombinációját használnák egy másodpercen belül.

Szerepköralapú hozzáférés konfigurálása adatsíkhoz

A következőkre vonatkozik: Keresési index adatszolgáltatója, Keresési index adatolvasója, Keresési szolgáltatás közreműködője

Ebben a lépésben konfigurálja a keresési szolgáltatást úgy, hogy felismerjen egy engedélyezési fejlécet az OAuth2 hozzáférési jogkivonatot biztosító adatkéréseken.

  1. Jelentkezzen be az Azure Portalra , és nyissa meg a keresési szolgáltatás oldalát.

  2. A bal oldali navigációs panelen válassza a Kulcsok lehetőséget.

    Képernyőkép a kulcsok oldaláról a hitelesítési beállításokkal.

  3. Válasszon egy API-hozzáférés-vezérlési lehetőséget. Mindkettőt javasoljuk, ha rugalmasságot szeretne, vagy alkalmazásokat szeretne migrálni.

    Lehetőség Leírás
    API-kulcs (alapértelmezett). A kérelem fejlécében rendszergazdai vagy lekérdezési API-kulcs szükséges az engedélyezéshez. A rendszer nem használ szerepköröket.
    Szerepköralapú hozzáférés-vezérlés A következő lépésben ismertetett feladat elvégzéséhez tagságra van szükség egy szerepkör-hozzárendelésben. Egy engedélyezési fejlécet is igényel.
    Mindkettő A kérelmek API-kulccsal vagy szerepköralapú hozzáférés-vezérléssel érvényesek.

A módosítás azonnal érvényes, de várjon néhány másodpercet a tesztelés előtt.

A keresési szolgáltatás műveleteire és tartalmára vonatkozó összes hálózati hívás tiszteletben tartja a választott beállítást: API-kulcsokat, tulajdonosi jogkivonatot, vagy bármelyiket, ha mindkettőt választja.

Ha engedélyezi a szerepköralapú hozzáférés-vezérlést a portálon, a hiba mód "http401WithBearerChallenge", ha az engedélyezés sikertelen.

Szerepkörök hozzárendelése

A szerepkör-hozzárendelések összesítőek és áthatóak az összes eszköz és ügyfélkódtár között. Szerepköröket az Azure szerepköralapú hozzáférés-vezérlési dokumentációjában ismertetett támogatott megközelítések bármelyikével hozzárendelhet.

Tulajdonosnak kell lennie, vagy Microsoft.Authorization/roleAssignments/write engedélyekkel kell rendelkeznie a szerepkör-hozzárendelések kezeléséhez.

A szerepkör-hozzárendelések a portálon szolgáltatásszintűek. Ha egyetlen indexhez szeretne engedélyeket adni, használja inkább a PowerShellt vagy az Azure CLI-t.

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a keresési szolgáltatáshoz.

  3. A bal oldali navigációs panelen válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  4. Válassza a + Hozzáadás>Szerepkör-hozzárendelés hozzáadása lehetőséget.

    Hozzáférés-vezérlési (IAM) lap, amelyen meg van nyitva a Szerepkör-hozzárendelés hozzáadása menü.

  5. Válasszon ki egy megfelelő szerepkört:

    • Tulajdonos
    • Közreműködő
    • Olvasó
    • Keresési szolgáltatás közreműködője
    • Keresési index adatszolgáltatója
    • Keresési index adatolvasója
  6. A Tagok lapon válassza ki a Microsoft Entra felhasználót vagy csoportdentitást.

  7. A szerepkör hozzárendeléséhez a Felülvizsgálat + hozzárendelés lapon válassza a Felülvizsgálat + hozzárendelés lehetőséget.

Szerepkör-hozzárendelések tesztelése

Szerepkör-hozzárendelések tesztelése ügyfél használatával. Ne feledje, hogy a szerepkörök halmozott és örökölt szerepkörök, amelyek hatóköre az előfizetésre vagy erőforráscsoportra terjed ki, nem törölhető vagy nem tagadható meg az erőforrás (keresési szolgáltatás) szintjén.

A hozzáférés tesztelése előtt győződjön meg arról, hogy az ügyfélalkalmazást a Microsoft Entra-azonosítóval regisztrálja, és rendelkezik szerepkör-hozzárendelésekkel.

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a keresési szolgáltatáshoz.

  3. Az Áttekintés lapon válassza az Indexek lapot:

    • A keresési szolgáltatás közreműködői bármilyen objektumot megtekinthetnek és létrehozhatnak, de nem tölthetnek be dokumentumokat, és nem kérdezhetnek le indexet. Az engedélyek ellenőrzéséhez hozzon létre egy keresési indexet.

    • A keresési index adatszolgáltatói betölthetik és lekérdezhetik a dokumentumokat. Az engedélyek ellenőrzéséhez használja a Kereséskezelőt a dokumentumok lekérdezéséhez. Az Adatok importálása varázslón kívül nincs betöltési dokumentumbeállítás a portálon. Mivel a varázsló objektumokat is létrehoz, a keresési szolgáltatás közreműködője, valamint a keresési index adatszolgáltatója szükséges.

    • A keresési index adatolvasói lekérdezhetik az indexet. Az engedélyek ellenőrzéséhez használja a Kereséskezelőt. Lekérdezéseket kell küldenie, és meg kell tekintenie az eredményeket, de nem szabad, hogy megtekintse az indexdefiníciót.

Tesztelés aktuális felhasználóként

Ha már közreműködője vagy tulajdonosa a keresési szolgáltatásnak, bemutathat egy tulajdonosi jogkivonatot a felhasználói identitáshoz az Azure AI Searchben való hitelesítéshez.

  1. Tulajdonosi jogkivonat lekérése az aktuális felhasználóhoz az Azure CLI használatával:

    az account get-access-token --scope https://search.azure.com/.default
    

    Vagy a PowerShell használatával:

    Get-AzAccessToken -ResourceUrl https://search.azure.com
    
  2. A Visual Studio Code új szövegfájljában illessze be az alábbi változókat:

    @baseUrl = PASTE-YOUR-SEARCH-SERVICE-URL-HERE
    @index-name = PASTE-YOUR-INDEX-NAME-HERE
    @token = PASTE-YOUR-TOKEN-HERE
    
  3. Illessze be, majd küldjön egy kérést a hozzáférés megerősítéséhez. Az alábbiakban lekérdezi a hotels-quickstart indexet

    POST https://{{baseUrl}}/indexes/{{index-name}}/docs/search?api-version=2023-11-01 HTTP/1.1
      Content-type: application/json
      Authorization: Bearer {{token}}
    
        {
             "queryType": "simple",
             "search": "motel",
             "filter": "",
             "select": "HotelName,Description,Category,Tags",
             "count": true
         }
    

Hozzáférés biztosítása egyetlen indexhez

Bizonyos esetekben érdemes lehet korlátozni egy alkalmazás hozzáférését egyetlen erőforráshoz, például egy indexhez.

A portál jelenleg nem támogatja a szerepkör-hozzárendeléseket ezen a részletességi szinten, de a PowerShell vagy az Azure CLI használatával is elvégezhető.

A PowerShellben használja a New-AzRoleAssignment parancsot, és adja meg az Azure-felhasználó vagy csoport nevét, valamint a hozzárendelés hatókörét.

  1. Töltse be a Azure modulokat és AzureAD a modulokat, és csatlakozzon az Azure-fiókjához:

    Import-Module -Name Az
    Import-Module -Name AzureAD
    Connect-AzAccount
    
  2. Szerepkör-hozzárendelés hozzáadása egy adott indexhez:

    New-AzRoleAssignment -ObjectId <objectId> `
        -RoleDefinitionName "Search Index Data Contributor" `
        -Scope  "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Search/searchServices/<search-service>/indexes/<index-name>"
    

Egyéni szerepkör létrehozása

Ha a beépített szerepkörök nem biztosítják az engedélyek megfelelő kombinációját, létrehozhat egy egyéni szerepkört a szükséges műveletek támogatásához

Ez a példa klónozza a keresési index adatolvasót , majd hozzáadja az indexek név szerinti listázásának lehetőségét. A keresési szolgáltatás indexeinek felsorolása általában rendszergazdai jognak minősül.

Ezek a lépések az Azure-beli egyéni szerepkörök Azure Portal használatával történő létrehozásából vagy frissítéséből származnak. A meglévő szerepkörből való klónozás támogatott a keresési szolgáltatás oldalán.

Ezek a lépések létrehoznak egy egyéni szerepkört, amely kibővíti a keresési lekérdezési jogosultságokat, hogy név szerint listázzák az indexeket. Az indexek listázása általában rendszergazdai függvénynek minősül.

  1. Az Azure Portalon keresse meg a keresési szolgáltatást.

  2. A bal oldali navigációs panelen válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. A műveletsávon válassza a Szerepkörök lehetőséget.

  4. Kattintson a jobb gombbal az Index keresése adatolvasóra (vagy egy másik szerepkörre), és válassza a Klónozás lehetőséget az egyéni szerepkör létrehozása varázsló megnyitásához.

  5. Az Alapszintű beállítások lapon adja meg az egyéni szerepkör nevét, például a "Search Index Data Explorer" nevet, majd kattintson a Tovább gombra.

  6. Az Engedélyek lapon válassza az Engedély hozzáadása lehetőséget.

  7. Az Engedélyek hozzáadása lapon keresse meg, majd válassza ki a Microsoft Keresés csempét.

  8. Állítsa be az egyéni szerepkör engedélyeit. A lap tetején, az alapértelmezett műveletek kijelölésével:

    • A Microsoft.Search/operations területen válassza az Olvasás: Az összes elérhető művelet listázása lehetőséget.
    • A Microsoft.Search/searchServices/indexek területen válassza az Olvasás : Index olvasása lehetőséget.
  9. Ugyanazon a lapon váltson az Adatműveletek elemre , és a Microsoft.Search/searchServices/indexes/documents területen válassza az Olvasás: Dokumentumok olvasása lehetőséget.

    A JSON-definíció a következő példához hasonlóan néz ki:

    {
     "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": []
             }
         ]
       }
     }
    
  10. Válassza a Véleményezés + létrehozás lehetőséget a szerepkör létrehozásához. Mostantól hozzárendelhet felhasználókat és csoportokat a szerepkörhöz.

API-kulcs hitelesítésének letiltása

A kulcshozzáférés vagy a helyi hitelesítés letiltható a szolgáltatásban, ha a keresési szolgáltatás közreműködője, a keresési index adatszolgáltatója, valamint a keresési index adatolvasó szerepköreit és a Microsoft Entra-hitelesítést használja. Az API-kulcsok letiltása miatt a keresési szolgáltatás elutasítja az összes olyan adattal kapcsolatos kérést, amely egy API-kulcsot ad át a fejlécben.

Feljegyzés

Rendszergazda API-kulcsok csak le vannak tiltva, nem törölhetők. A lekérdezési API-kulcsok törölhetők.

A funkciók letiltásához tulajdonosi vagy közreműködői engedélyekre van szükség.

A kulcsalapú hitelesítés letiltásához használja az Azure Portalt vagy a Felügyeleti REST API-t.

  1. Az Azure Portalon keresse meg a keresési szolgáltatást.

  2. A bal oldali navigációs panelen válassza a Kulcsok lehetőséget.

  3. Válassza a szerepköralapú hozzáférés-vezérlést.

A módosítás azonnal érvényes, de várjon néhány másodpercet a tesztelés előtt. Feltéve, hogy rendelkezik engedéllyel a szerepkörök tulajdonosi, szolgáltatásadminisztrátori vagy társadminisztrátori szerepkörökhöz való hozzárendeléséhez, a portál funkcióival tesztelheti a szerepköralapú hozzáférést.

Feltételes hozzáférés

A Microsoft Entra feltételes hozzáférését javasoljuk, ha vállalati szabályzatokat, például többtényezős hitelesítést szeretne kikényszeríteni.

Az Azure AI Search feltételes hozzáférési szabályzatának engedélyezéséhez kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure Portalra.

  2. Keresse meg a Microsoft Entra feltételes hozzáférését.

  3. Válassza a Szabályzatok lehetőséget.

  4. Válassza az Új szabályzat lehetőséget.

  5. A szabályzat Felhőalkalmazások vagy műveletek szakaszában vegye fel az Azure AI Search szolgáltatást felhőalkalmazásként attól függően, hogy hogyan szeretné beállítani a szabályzatot.

  6. Frissítse a szabályzat fennmaradó paramétereit. Adja meg például, hogy mely felhasználókra és csoportokra vonatkozik ez a szabályzat.

  7. Mentse a házirendet.

Fontos

Ha a keresési szolgáltatáshoz hozzárendelt egy felügyelt identitást, az adott keresési szolgáltatás felhőalkalmazásként jelenik meg, amely a feltételes hozzáférési szabályzat részeként belefoglalható vagy kizárható. A feltételes hozzáférési szabályzatok nem kényszeríthetők egy adott keresési szolgáltatásra. Ehelyett válassza ki az általános Azure AI Search felhőalkalmazást.

Szerepköralapú hozzáférés-vezérlési problémák elhárítása

A hitelesítéshez szerepköralapú hozzáférés-vezérlést használó alkalmazások fejlesztésekor gyakori problémák léphetnek fel:

  • Ha az engedélyezési jogkivonat egy felügyelt identitásból származik, és a megfelelő engedélyek nemrég lettek hozzárendelve, több órát is igénybe vehet, amíg ezek az engedély-hozzárendelések érvénybe lépnek.
  • A keresési szolgáltatás alapértelmezett konfigurációja csak kulcsalapú hitelesítés. Ha nem módosította az alapértelmezett kulcsbeállítást mindkettőre vagy szerepköralapú hozzáférés-vezérlésre, akkor a rendszer a mögöttes engedélyektől függetlenül automatikusan megtagadja a szerepköralapú hitelesítést használó összes kérést.