Ansluta till Azure Cognitive Search med rollbaserad åtkomstkontroll i Azure (Azure RBAC)

Azure tillhandahåller ett globalt rollbaserat auktoriseringssystem för åtkomstkontroll för alla tjänster som körs på plattformen. I Cognitive Search kan du:

  • Använd allmänt tillgängliga roller för tjänstadministration.

  • Använd nya förhandsgranskningsroller för databegäranden, inklusive att skapa, läsa in och köra frågor mot index.

Åtkomst per användare över sökresultat (kallas ibland säkerhet på radnivå eller säkerhet på dokumentnivå) stöds inte. Som en lösning kan du skapa säkerhetsfilter som trimmar resultat efter användaridentitet och tar bort dokument som beställaren inte ska ha åtkomst till.

Inbyggda roller omfattar allmänt tillgängliga roller och förhandsgranskningsroller. Om de här rollerna inte räcker till skapar du i stället en anpassad roll .

Roll Beskrivning och tillgänglighet
Ägare (Allmänt tillgängligt) Fullständig åtkomst till sökresursen, inklusive möjligheten att tilldela Azure-roller. Prenumerationsadministratörer är medlemmar som standard.

(Förhandsversion) Den här rollen har samma åtkomst som rollen Search Service-deltagare på dataplanet. Den innehåller åtkomst till alla dataplansåtgärder förutom möjligheten att köra frågor mot sökindex- eller indexdokumenten.
Deltagare (Allmänt tillgängligt) Samma åtkomstnivå som Ägare, minus möjligheten att tilldela roller eller ändra auktoriseringsalternativ.

(Förhandsversion) Den här rollen har samma åtkomst som rollen Search Service-deltagare på dataplanet. Den innehåller åtkomst till alla dataplansåtgärder förutom möjligheten att köra frågor mot sökindex- eller indexdokumenten.
Läsare (Allmänt tillgängligt) Begränsad åtkomst till partiell tjänstinformation. I portalen kan rollen Läsare komma åt information på sidan Tjänstöversikt, i avsnittet Essentials och på fliken Övervakning. Alla andra flikar och sidor är förbjudna.

Den här rollen har åtkomst till tjänstinformation: tjänstnamn, resursgrupp, tjänststatus, plats, prenumerationsnamn och ID, taggar, URL, prisnivå, repliker, partitioner och sökenheter. Den här rollen har också åtkomst till tjänstmått: söksvarstid, procentandel begränsade begäranden, genomsnittliga frågor per sekund.

Den här rollen tillåter inte åtkomst till API-nycklar, rolltilldelningar, innehåll (index eller synonymkartor) eller innehållsmått (förbrukad lagring, antal objekt).

(Förhandsversion) När du aktiverar RBAC-förhandsgranskningen för dataplanet har rollen Läsare läsbehörighet i hela tjänsten. På så sätt kan du läsa sökmått, innehållsmått (förbrukad lagring, antal objekt) och definitioner av dataplansresurser (index, indexerare osv.). Rollen Läsare har fortfarande inte åtkomst till att läsa API-nycklar eller läsa innehåll i index.
Search Service-deltagare (Allmänt tillgängligt) Den här rollen är identisk med rollen Deltagare och gäller för kontrollplansåtgärder.

(Förhandsversion) När du aktiverar RBAC-förhandsversionen för dataplanet ger den här rollen även fullständig åtkomst till alla dataplansåtgärder för index, synonymkartor, indexerare, datakällor och kompetensuppsättningar enligt definitionen i Microsoft.Search/searchServices/*. Den här rollen ger dig inte åtkomst till frågesökindex eller indexdokument. Den här rollen är avsedd för söktjänstadministratörer som behöver hantera söktjänsten och dess objekt, men utan möjlighet att visa eller komma åt objektdata.

Precis som deltagare kan medlemmar i den här rollen inte göra eller hantera rolltilldelningar eller ändra auktoriseringsalternativ. Om du vill använda förhandsgranskningsfunktionerna i den här rollen måste förhandsgranskningsfunktionen vara aktiverad för din tjänst enligt beskrivningen i den här artikeln.
Search Index Data Contributor (Förhandsversion) Ger fullständig dataplansåtkomst till innehåll i alla index i söktjänsten. Den här rollen är avsedd för utvecklare eller indexägare som behöver importera, uppdatera eller fråga dokumentsamlingen för ett index.
Dataläsare för sökindex (Förhandsversion) Ger skrivskyddad dataplansåtkomst till sökindex i söktjänsten. Den här rollen är avsedd för appar och användare som kör frågor.

Anteckning

Azure-resurser har begreppet kontrollplans- och dataplanskategorier för åtgärder. I Cognitive Search refererar "kontrollplan" till alla åtgärder som stöds i REST API för hantering eller motsvarande klientbibliotek. "Dataplanet" refererar till åtgärder mot söktjänstens slutpunkt, till exempel indexering eller frågor, eller någon annan åtgärd som anges i REST-API:et för sökning eller motsvarande klientbibliotek.

Förhandsgranskningsfunktioner och begränsningar

  • Rollbaserad åtkomstkontroll för dataplansåtgärder, till exempel att skapa ett index eller köra frågor mot ett index, finns för närvarande i offentlig förhandsversion och är tillgänglig enligt kompletterande användningsvillkor.

  • Det finns inga regionala begränsningar, nivå- eller prisbegränsningar för att använda Förhandsversion av Azure RBAC, men din söktjänst måste finnas i det offentliga Azure-molnet. Förhandsversionen är inte tillgänglig i Azure Government, Azure Tyskland eller Azure China 21Vianet.

  • Om du migrerar din Azure-prenumeration till en ny klient måste Förhandsversionen av Azure RBAC återaktiveras.

  • Införandet av rollbaserad åtkomstkontroll kan öka svarstiden för vissa begäranden. Varje unik kombination av tjänstresurs (index, indexerare osv.) och tjänstens huvudnamn som används för en begäran utlöser en auktoriseringskontroll. Dessa auktoriseringskontroller kan ge upp till 200 millisekunder svarstid för en begäran.

  • I sällsynta fall där begäranden kommer från ett stort antal olika tjänsthuvudnamn, alla riktade mot olika tjänstresurser (index, indexerare osv.), är det möjligt att auktoriseringskontrollerna resulterar i begränsningar. Begränsning skulle bara ske om hundratals unika kombinationer av söktjänstens resurs och tjänstens huvudnamn användes inom en sekund.

Registrera dig för förhandsversionen

Gäller för: Search Index Data Contributor, Search Index Data Reader, Search Service Contributor

Nya inbyggda förhandsgranskningsroller beviljar behörigheter för innehåll i söktjänsten. Även om inbyggda roller alltid visas i Azure Portal krävs förhandsversionsregistrering för att de ska fungera.

  1. Öppna Azure Portal och leta upp söktjänsten.

  2. Välj Nycklar i det vänstra navigeringsfönstret.

  3. I den blå banderollen som nämner förhandsversionen väljer du Registrera för att lägga till funktionen i din prenumeration.

    skärmbild av hur du registrerar dig för förhandsversionen i portalen

Du kan också registrera dig för förhandsversionen med hjälp av Azure Feature Exposure Control (AFEC) och söka efter rollbaserade Access Control för söktjänsten (förhandsversion). Mer information om hur du lägger till förhandsgranskningsfunktioner finns i Konfigurera förhandsgranskningsfunktioner i Azure-prenumeration.

Anteckning

När du lägger till förhandsversionen i prenumerationen registreras alla tjänster i prenumerationen permanent i förhandsversionen. Om du inte vill ha rollbaserad åtkomstkontroll för en viss tjänst kan du inaktivera den för dataplansåtgärder enligt beskrivningen i ett senare avsnitt.

Aktivera rollbaserad förhandsversion av åtkomstkontroll för dataplansåtgärder

Gäller för: Search Index Data Contributor, Search Index Data Reader, Search Service Contributor

I det här steget konfigurerar du söktjänsten så att den känner igen ett auktoriseringshuvud för databegäranden som tillhandahåller en OAuth2-åtkomsttoken.

  1. Logga in på Azure Portal och öppna söktjänstsidan.

  2. Välj Nycklar i det vänstra navigeringsfönstret.

  3. Välj en MEKANISM för API-åtkomstkontroll .

    Alternativ Status Beskrivning
    API-nyckel Allmänt tillgänglig (standard) Kräver en administratörs- eller fråge-API-nycklar i begärandehuvudet för auktorisering. Inga roller används.
    Rollbaserad åtkomstkontroll Förhandsgranskning Kräver medlemskap i en rolltilldelning för att slutföra uppgiften, vilket beskrivs i nästa steg. Det kräver också ett auktoriseringshuvud. Om du väljer det här alternativet begränsas du till klienter som stöder REST API för förhandsversionen 2021-04-30.
    Båda Förhandsgranskning Begäranden är giltiga med antingen en API-nyckel eller en auktoriseringstoken.

Alla nätverksanrop för söktjänståtgärder och innehåll respekterar det alternativ du väljer: API-nycklar för API-nycklar, en Azure RBAC-token för rollbaserad åtkomstkontroll eller API-nycklar och Azure RBAC-token lika för båda. Detta gäller både portalfunktioner och klienter som kommer åt en söktjänst programmatiskt.

Tilldela roller

Rolltilldelningar är kumulativa och genomgripande för alla verktyg och klientbibliotek. Du kan tilldela roller med någon av de metoder som stöds som beskrivs i dokumentationen om rollbaserad åtkomstkontroll i Azure.

Du måste vara ägare eller ha behörigheten Microsoft.Authorization/roleAssignments/write för att hantera rolltilldelningar.

Rolltilldelningar i portalen är tjänstomfattande. Om du vill bevilja behörigheter till ett enda index använder du PowerShell eller Azure CLI i stället.

  1. Öppna Azure-portalen.

  2. Gå till söktjänsten.

  3. Välj Access Control (IAM) i det vänstra navigeringsfönstret.

  4. Välj + Lägg till>Lägg till rolltilldelning.

    Sidan Åtkomstkontroll (IAM) med menyn Lägg till rolltilldelning öppen.

  5. Välj en tillämplig roll:

    • Ägare
    • Deltagare
    • Läsare
    • Search Service-deltagare (förhandsversion för dataplansbegäranden)
    • Search Index Data Contributor (förhandsversion)
    • Dataläsare för sökindex (förhandsversion)
  6. På fliken Medlemmar väljer du Azure AD användar- eller gruppidentitet.

  7. På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.

Testa rolltilldelningar

När du testar roller bör du komma ihåg att roller är kumulativa och ärvda roller som är begränsade till prenumerationen eller resursgruppen inte kan tas bort eller nekas på resursnivå (söktjänst).

  1. Öppna Azure-portalen.

  2. Gå till söktjänsten.

  3. På sidan Översikt väljer du fliken Index :

    • Medlemmar i deltagarrollen kan visa och skapa valfritt objekt, men kan inte köra frågor mot ett index med hjälp av Sökutforskaren.

    • Medlemmar i Search Index Data Reader kan använda Sökutforskaren för att fråga indexet. Du kan använda valfri API-version för att söka efter åtkomst. Du bör kunna utfärda frågor och visa resultat, men du bör inte kunna visa indexdefinitionen.

    • Medlemmar i Search Index Data Contributor kan välja Nytt index för att skapa ett nytt index. Om du sparar ett nytt index verifieras skrivåtkomsten till tjänsten.

Bevilja åtkomst till ett enda index

I vissa fall kanske du vill begränsa programmets åtkomst till en enskild resurs, till exempel ett index.

Portalen stöder för närvarande inte rolltilldelningar på den här detaljnivån, men det kan göras med PowerShell eller Azure CLI.

I PowerShell använder du New-AzRoleAssignment, anger Azure-användaren eller gruppnamnet och tilldelningens omfattning.

  1. Läs in Azure- och AzureAD-modulerna och anslut till ditt Azure-konto:

    Import-Module -Name Az
    Import-Module -Name AzureAD
    Connect-AzAccount
    
  2. Lägg till en rolltilldelning som är begränsad till ett enskilt index:

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

Skapa en anpassad roll

Om inbyggda roller inte ger rätt kombination av behörigheter kan du skapa en anpassad roll för att stödja de åtgärder du behöver

Det här exemplet klonar Search Index Data Reader och lägger sedan till möjligheten att lista index efter namn. Normalt anses en lista över index för en söktjänst vara en administrativ rättighet.

De här stegen härleds från Skapa eller uppdatera anpassade Azure-roller med hjälp av Azure Portal. Kloning från en befintlig roll stöds på en söktjänstsida.

De här stegen skapar en anpassad roll som utökar sökfrågerättigheterna så att den innehåller en lista över index efter namn. Vanligtvis betraktas listning av index som en administratörsfunktion.

  1. I Azure Portal navigerar du till söktjänsten.

  2. I det vänstra navigeringsfönstret väljer du Access Control (IAM).

  3. I åtgärdsfältet väljer du Roller.

  4. Högerklicka på Sök indexdataläsare (eller en annan roll) och välj Klona för att öppna guiden Skapa en anpassad roll .

  5. På fliken Grundläggande anger du ett namn för den anpassade rollen, till exempel "Sökindex Data Explorer" och väljer sedan Nästa.

  6. På fliken Behörigheter väljer du Lägg till behörighet.

  7. På fliken Lägg till behörigheter söker du efter och väljer sedan panelen Microsoft Search .

  8. Ange behörigheter för din anpassade roll. Överst på sidan använder du standardalternativet Åtgärder :

    • Under Microsoft.Search/operations väljer du Läs: Visa en lista över alla tillgängliga åtgärder.
    • Under Microsoft.Search/searchServices/indexes väljer du Läs: Läs index.
  9. På samma sida växlar du till Dataåtgärder och under Microsoft.Search/searchServices/indexes/documents väljer du Läs: Läsa dokument.

    JSON-definitionen ser ut som i följande exempel:

    {
     "properties": {
         "roleName": "search index data explorer",
         "description": "",
         "assignableScopes": [
             "/subscriptions/a5b1ca8b-bab3-4c26-aebe-4cf7ec4791a0/resourceGroups/heidist-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älj Granska + skapa för att skapa rollen. Nu kan du tilldela användare och grupper till rollen.

Inaktivera API-nyckelautentisering

API-nycklar kan inte tas bort, men de kan inaktiveras i din tjänst om du använder rollerna Search Service Contributor, Search Index Data Contributor och Search Index Data Reader och Azure AD autentisering. Om du inaktiverar API-nycklar nekar söktjänsten alla datarelaterade begäranden som skickar en API-nyckel i rubriken.

Ägar- eller deltagarbehörigheter krävs för att inaktivera funktioner.

Om du vill inaktivera nyckelbaserad autentisering använder du Azure Portal eller REST-API:et för hantering.

  1. I Azure Portal navigerar du till söktjänsten.

  2. I det vänstra navigeringsfönstret väljer du Nycklar.

  3. Välj Rollbaserad åtkomstkontroll.

Ändringen träder i kraft omedelbart. Förutsatt att du har behörighet att tilldela roller som ägare, tjänstadministratör eller medadministratör kan du använda portalfunktioner för att testa rollbaserad åtkomst.

Villkorlig åtkomst

Villkorsstyrd åtkomst är ett verktyg i Azure Active Directory som används för att framtvinga organisationsprinciper. Genom att använda principer för villkorsstyrd åtkomst kan du tillämpa rätt åtkomstkontroller när det behövs för att skydda din organisation. När du använder en Azure Cognitive Search-tjänst med rollbaserad åtkomstkontroll kan villkorsstyrd åtkomst framtvinga organisationsprinciper.

Om du vill aktivera en princip för villkorlig åtkomst för Azure Cognitive Search följer du stegen nedan:

  1. Logga in i Azure-portalen.

  2. Sök efter Azure AD villkorlig åtkomst.

  3. Välj Principer.

  4. Välj + Ny princip.

  5. I avsnittet Molnappar eller åtgärder i principen lägger du till Azure Cognitive Search som en molnapp beroende på hur du vill konfigurera principen.

  6. Uppdatera de återstående parametrarna för principen. Ange till exempel vilka användare och grupper som den här principen gäller för.

  7. Spara principen.

Viktigt

Om din söktjänst har en tilldelad hanterad identitet visas den specifika söktjänsten som en molnapp som kan inkluderas eller exkluderas som en del av principen för villkorsstyrd åtkomst. Principer för villkorsstyrd åtkomst kan inte tillämpas på en specifik söktjänst. Se i stället till att du väljer den allmänna Azure Cognitive Search molnappen.