Szerepalapú hozzáférés-szabályozás konfigurálása Microsoft Entra ID segítségével Azure Cosmos DB fiókjához

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Feljegyzés

Ez a cikk az Adatsík-műveletek szerepköralapú hozzáférés-vezérléséről szól az Azure Cosmos DB-ben. Ha felügyeletisík-műveleteket használ, tekintse meg a felügyeletisík-műveletekre alkalmazott szerepköralapú hozzáférés-vezérlést .

Az Azure Cosmos DB egy beépített szerepköralapú hozzáférés-vezérlési rendszert tesz elérhetővé, amely lehetővé teszi a következőket:

  • Az adatkérések hitelesítése Microsoft Entra-identitással.
  • Az adatkérések engedélyezése részletes, szerepköralapú engedélymodellel.

Fogalmak

Az Azure Cosmos DB adatsík szerepköralapú hozzáférés-vezérlése olyan fogalmakra épül, amelyek gyakran megtalálhatók más szerepköralapú hozzáférés-vezérlési rendszerekben, például az Azure szerepköralapú hozzáférés-vezérlésében:

  • Az engedélymodell műveletkészletből áll; mindegyik művelet egy vagy több adatbázisműveletre van leképeződve. Néhány példa a műveletekre: elem olvasása, elem írása vagy lekérdezés végrehajtása.
  • Az Azure Cosmos DB-felhasználók az engedélyezett műveletek listáját tartalmazó szerepkör-definíciókat hoznak létre.
  • A szerepkördefiníciók szerepkör-hozzárendelésekkel rendelhetők hozzá adott Microsoft Entra-identitásokhoz. A szerepkör-hozzárendelés meghatározza azt a hatókört is, amelyre a szerepkördefiníció vonatkozik; jelenleg három hatókör létezik:
    • Egy Azure Cosmos DB-fiók,
    • Azure Cosmos DB-adatbázis,
    • Egy Azure Cosmos DB-tároló.

Diagram of common role-based access control concepts including role definitions, role assignments, and principals.

Engedélymodell

Fontos

Ez az engedélymodell csak az adatok olvasását és írását magában foglaló adatbázisműveleteket fedi le. Nem terjed ki semmilyen felügyeleti műveletre a felügyeleti erőforrásokon, beleértve a következőket:

  • Adatbázis létrehozása/cseréje/törlése
  • Tároló létrehozása/cseréje/törlése
  • Tároló átviteli sebességének olvasása/cseréje
  • Tárolt eljárások létrehozása/cseréje/törlése/olvasása
  • Triggerek létrehozása/cseréje/törlése/olvasása
  • Felhasználó által definiált függvények létrehozása/cseréje/törlése/olvasása

Nem használhat Azure Cosmos DB adatsík SDK-t a felügyeleti műveletek Microsoft Entra-identitással való hitelesítéséhez. Ehelyett azure-beli szerepköralapú hozzáférés-vezérlést kell használnia az alábbi lehetőségek egyikével:

Az Olvasási adatbázis és az Olvasási tároló metaadat-kérésnek minősül. Ezekhez a műveletekhez a következő szakaszban leírtak szerint lehet hozzáférni.

Ez a táblázat felsorolja az engedélymodell által közzétett összes műveletet.

Név Megfelelő adatbázisművelet(ek)
Microsoft.DocumentDB/databaseAccounts/readMetadata Fiók metaadatainak olvasása. Részletekért tekintse meg a metaadat-kérelmeket .
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/create Hozzon létre egy új elemet.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read Az egyes elemek beolvasása az azonosító és a partíciókulcs alapján (pontolvasás).
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/replace Meglévő elem cseréje.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/upsert "Upsert" egy elem. Ez a művelet létrehoz egy elemet, ha még nem létezik, vagy ha létezik, lecseréli az elemet.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/delete Elem törlése.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery SQL-lekérdezés végrehajtása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed Olvasás a tároló változáscsatornájából. SQL-lekérdezések végrehajtása az SDK-k használatával.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeStoredProcedure Tárolt eljárás végrehajtása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/manageConflicts Több írási régiós fiók ütközéseinek kezelése (vagyis elemek listázása és törlése az ütközéscsatornából).

Feljegyzés

Amikor lekérdezéseket hajt végre az SDK-kon keresztül, mindkettőre Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery és Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed engedélyekre is szükség van.

A helyettesítő karakterek tárolók és elemek szintjén egyaránttámogatottak:

  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
  • Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Metaadat-kérelmek

Az Azure Cosmos DB SDK-k írásvédett metaadat-kéréseket adnak ki az inicializálás során, és adott adatkéréseket szolgálnak ki. Ezek a kérések különböző konfigurációs adatokat kérnek le, például:

  • A fiók globális konfigurációja, amely magában foglalja azokat az Azure-régiókat, amelyekben a fiók elérhető.
  • A tárolók partíciókulcsa vagy indexelési szabályzata.
  • A tárolót alkotó fizikai partíciók és azok címei.

A fiókban tárolt adatok egyikét sem fogják lekérni.

Az engedélymodell optimális átláthatóságának biztosítása érdekében a művelet kifejezetten lefedi ezeket a Microsoft.DocumentDB/databaseAccounts/readMetadata metaadat-kérelmeket. Ezt a műveletet minden olyan helyzetben engedélyezni kell, ahol az Azure Cosmos DB-fiók az Azure Cosmos DB SDK-k egyikén keresztül érhető el. Hozzárendelhető (szerepkör-hozzárendeléssel) az Azure Cosmos DB-hierarchia bármely szintjén (azaz fiók, adatbázis vagy tároló).

A művelet által Microsoft.DocumentDB/databaseAccounts/readMetadata engedélyezett tényleges metaadat-kérelmek a művelet hatókörétől függnek:

Hatókör A művelet által engedélyezett kérelmek
Számla • Az adatbázisok listázása a fiók alatt
• A fiókban lévő összes adatbázis esetében az adatbázis hatókörében engedélyezett műveletek
Adatbázis • Adatbázis metaadatainak olvasása
• A tárolók listázása az adatbázis alatt
• Az adatbázis minden tárolója esetében a tároló hatókörében engedélyezett műveletek
Tároló • Tároló metaadatainak olvasása
• Fizikai partíciók listázása a tároló alatt
• Az egyes fizikai partíciók címének feloldása

Fontos

A művelet metaadatai nem tartalmazzák az átviteli sebességet.

Beépített szerepkör-definíciók

Az Azure Cosmos DB két beépített szerepkör-definíciót tesz elérhetővé:

Fontos

A szerepkördefiníciók itt az Azure Cosmos DB-specifikus szerepkördefiníciókra vonatkoznak. Ezek eltérnek az Azure szerepköralapú hozzáférés-vezérlési szerepkör-definícióitól.

ID (Azonosító) Név Belefoglalt műveletek
00000000-0000-0000-0000-000000000001 Cosmos DB beépített adatolvasó Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed
00000000-0000-0000-0000-000000000002 A Cosmos DB beépített adatszolgáltatója Microsoft.DocumentDB/databaseAccounts/readMetadata
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*

Egyéni szerepkör-definíciók létrehozása

Egyéni szerepkördefiníció létrehozásakor meg kell adnia a következőt:

  • Az Azure Cosmos DB-fiók neve.
  • A fiókot tartalmazó erőforráscsoport.
  • A szerepkördefiníció típusa: CustomRole.
  • A szerepkördefiníció neve.
  • Azon műveletek listája, amelyeket engedélyezni szeretne a szerepkör számára.
  • Egy vagy több hatókör, amelyhez a szerepkördefiníció hozzárendelhető; A támogatott hatókörök a következők:
    • / (fiókszintű),
    • /dbs/<database-name> (adatbázisszintű),
    • /dbs/<database-name>/colls/<container-name> (tárolószintű).

Feljegyzés

A leírt műveletek a következőkben érhetők el:

Az Azure PowerShell használata

Hozzon létre egy MyReadOnlyRole nevű szerepkört, amely csak olvasási műveleteket tartalmaz:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadOnlyRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed') `
    -AssignableScope "/"

Hozzon létre egy MyReadWriteRole nevű szerepkört, amely az összes műveletet tartalmazza:

New-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -Type CustomRole -RoleName MyReadWriteRole `
    -DataAction @( `
        'Microsoft.DocumentDB/databaseAccounts/readMetadata',
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*', `
        'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*') `
    -AssignableScope "/"

Listázza a saját azonosítóik lekéréséhez létrehozott szerepkördefiníciókat:

Get-AzCosmosDBSqlRoleDefinition -AccountName $accountName `
    -ResourceGroupName $resourceGroupName
RoleName         : MyReadWriteRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

RoleName         : MyReadOnlyRole
Id               : /subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAcc
                   ounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>
Type             : CustomRole
Permissions      : {Microsoft.Azure.Management.CosmosDB.Models.Permission}
AssignableScopes : {/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAc
                   counts/<myCosmosAccount>}

Az Azure CLI-vel

Hozzon létre egy MyReadOnlyRole nevű szerepkört, amely csak olvasási műveleteket tartalmaz egy role-definition-ro.json nevű fájlban:

{
    "RoleName": "MyReadOnlyRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ]
    }]
}
resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-ro.json

Hozzon létre egy MyReadWriteRole nevű szerepkört, amely egy role-definition-rw.json nevű fájl összes műveletét tartalmazza:

{
    "RoleName": "MyReadWriteRole",
    "Type": "CustomRole",
    "AssignableScopes": ["/"],
    "Permissions": [{
        "DataActions": [
            "Microsoft.DocumentDB/databaseAccounts/readMetadata",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
            "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ]
    }]
}
az cosmosdb sql role definition create --account-name $accountName --resource-group $resourceGroupName --body @role-definition-rw.json

Listázza a saját azonosítóik lekéréséhez létrehozott szerepkördefiníciókat:

az cosmosdb sql role definition list --account-name $accountName --resource-group $resourceGroupName
[
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/*",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/*"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadWriteRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  },
  {
    "assignableScopes": [
      "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>"
    ],
    "id": "/subscriptions/<mySubscriptionId>/resourceGroups/<myResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>",
    "name": "<roleDefinitionId>",
    "permissions": [
      {
        "dataActions": [
          "Microsoft.DocumentDB/databaseAccounts/readMetadata",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/items/read",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/executeQuery",
          "Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/readChangeFeed"
        ],
        "notDataActions": []
      }
    ],
    "resourceGroup": "<myResourceGroup>",
    "roleName": "MyReadOnlyRole",
    "sqlRoleDefinitionGetResultsType": "CustomRole",
    "type": "Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions"
  }
]

Az Azure Resource Manager-sablonok használata

Az Azure Resource Manager-sablonok szerepkördefiníciók létrehozásához való használatával kapcsolatos hivatkozásért és példákért lásd: Microsoft.DocumentDB databaseAccounts/sqlRoleDefinitions.

Szerepkör-hozzárendelések létrehozása

Beépített vagy egyéni szerepkördefiníciókat társíthat a Microsoft Entra-identitásokhoz. Szerepkör-hozzárendelés létrehozásakor meg kell adnia a következőt:

  • Az Azure Cosmos DB-fiók neve.

  • A fiókot tartalmazó erőforráscsoport.

  • A hozzárendelni kívánt szerepkördefiníció azonosítója.

  • Annak az identitásnak a fő azonosítója, amelyhez a szerepkördefiníciót hozzá kell rendelni.

  • A szerepkör-hozzárendelés hatóköre; A támogatott hatókörök a következők:

    • / (fiókszintű)
    • /dbs/<database-name> (adatbázisszintű)
    • /dbs/<database-name>/colls/<container-name> (tárolószintű)

    A hatókörnek meg kell egyeznie a szerepkördefiníció hozzárendelhető hatóköreinek egyikének almappájával.

Feljegyzés

Ha szerepkör-hozzárendelést szeretne létrehozni egy szolgáltatásnévhez, mindenképpen használja annak objektumazonosítóját a Microsoft Entra ID portál panel Nagyvállalati alkalmazások szakaszában található módon.

Feljegyzés

A leírt műveletek a következőkben érhetők el:

Az Azure PowerShell használata

Szerepkör hozzárendelése identitáshoz:

$resourceGroupName = "<myResourceGroup>"
$accountName = "<myCosmosAccount>"
$readOnlyRoleDefinitionId = "<roleDefinitionId>" # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
$principalId = "<aadPrincipalId>"
New-AzCosmosDBSqlRoleAssignment -AccountName $accountName `
    -ResourceGroupName $resourceGroupName `
    -RoleDefinitionId $readOnlyRoleDefinitionId `
    -Scope "/" `
    -PrincipalId $principalId

Az Azure CLI-vel

Szerepkör hozzárendelése identitáshoz:

resourceGroupName='<myResourceGroup>'
accountName='<myCosmosAccount>'
readOnlyRoleDefinitionId='<roleDefinitionId>' # as fetched above
# For Service Principals make sure to use the Object ID as found in the Enterprise applications section of the Azure Active Directory portal blade.
principalId='<aadPrincipalId>'
az cosmosdb sql role assignment create --account-name $accountName --resource-group $resourceGroupName --scope "/" --principal-id $principalId --role-definition-id $readOnlyRoleDefinitionId

Bicep-/Azure Resource Manager-sablonok használata

Bicep-sablonnal végzett beépített hozzárendelés esetén:

resource sqlRoleAssignment 'Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments@2023-04-15' = {
  name: guid(<roleDefinitionId>, <aadPrincipalId>, <databaseAccountResourceId>)
  parent: databaseAccount
  properties:{
    principalId: <aadPrincipalId>
    roleDefinitionId: '/${subscription().id}/resourceGroups/<databaseAccountResourceGroup>/providers/Microsoft.DocumentDB/databaseAccounts/<myCosmosAccount>/sqlRoleDefinitions/<roleDefinitionId>'
    scope: <databaseAccountResourceId>
  }
}

Az Azure Resource Manager-sablonok szerepkör-hozzárendelések létrehozására való használatával kapcsolatos hivatkozásért és példákért lásd: Microsoft.DocumentDB databaseAccounts/sqlRoleAssignments.

Az SDK inicializálása a Microsoft Entra-azonosítóval

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés alkalmazásbeli használatához frissítenie kell az Azure Cosmos DB SDK inicializálásának módját. A fiók elsődleges kulcsának átadása helyett egy osztálypéldányt TokenCredential kell átadnia. Ez a példány biztosítja az Azure Cosmos DB SDK számára a Microsoft Entra-jogkivonat lekéréséhez szükséges környezetet a használni kívánt identitás nevében.

A példányok létrehozásának TokenCredential módja meghaladja a jelen cikk hatókörét. Az ilyen példányok sokféleképpen hozhatók létre a használni kívánt Microsoft Entra-identitás típusától függően (felhasználónév, szolgáltatásnév, csoport stb.). A legfontosabb, hogy a példánynak TokenCredential meg kell oldania azt az identitást (egyszerű azonosítót), amelyhez a szerepköreit hozzárendelte. Példákat találhat egy osztály létrehozására TokenCredential :

Az alábbi példák egy egyszerű szolgáltatást használnak egy ClientSecretCredential példányhoz.

A .NET-ben

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a .NET SDK V3-ban.

TokenCredential servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
CosmosClient client = new CosmosClient("<account-endpoint>", servicePrincipal);

A Javában

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a Java SDK V4-ben.

TokenCredential ServicePrincipal = new ClientSecretCredentialBuilder()
    .authorityHost("https://login.microsoftonline.com")
    .tenantId("<azure-ad-tenant-id>")
    .clientId("<client-application-id>")
    .clientSecret("<client-application-secret>")
    .build();
CosmosAsyncClient Client = new CosmosClientBuilder()
    .endpoint("<account-endpoint>")
    .credential(ServicePrincipal)
    .build();

JavaScriptben

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlése jelenleg támogatott a JavaScript SDK V3-ban.

const servicePrincipal = new ClientSecretCredential(
    "<azure-ad-tenant-id>",
    "<client-application-id>",
    "<client-application-secret>");
const client = new CosmosClient({
    endpoint: "<account-endpoint>",
    aadCredentials: servicePrincipal
});

Pythonban

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlését a Python SDK 4.3.0b4-s és újabb verziói támogatják.

aad_credentials = ClientSecretCredential(
    tenant_id="<azure-ad-tenant-id>",
    client_id="<client-application-id>",
    client_secret="<client-application-secret>")
client = CosmosClient("<account-endpoint>", aad_credentials)

Kérelmek hitelesítése a REST API-n

A REST API engedélyezési fejlécének létrehozásakor állítsa a típusparamétert Microsoft Entra ID-ra, a kivonat-aláírást (sig) pedig az OAuth-jogkivonatra az alábbi példában látható módon:

type=aad&ver=1.0&sig=<token-from-oauth>

Az Adatkezelő használata

Feljegyzés

Az Azure Portalon közzétett adatkezelő még nem támogatja az Azure Cosmos DB szerepköralapú hozzáférés-vezérlését. Ha a Microsoft Entra-identitást szeretné használni az adatok feltárásakor, ehelyett az Azure Cosmos DB Explorert kell használnia.

Amikor az Azure Cosmos DB Explorert az adott ?feature.enableAadDataPlane=true lekérdezési paraméterrel éri el, és bejelentkezik, a rendszer a következő logikát használja az adatok eléréséhez:

  1. A fiók elsődleges kulcsának lekérésére irányuló kérést a rendszer a bejelentkezett identitás nevében kísérli meg. Ha ez a kérés sikeres, a rendszer az elsődleges kulcsot használja a fiók adatainak eléréséhez.
  2. Ha a bejelentkezett identitás nem tudja lekérni a fiók elsődleges kulcsát, a rendszer közvetlenül ezt az identitást használja az adathozzáférés hitelesítéséhez. Ebben a módban az identitást megfelelő szerepkör-definíciókkal kell hozzárendelni az adathozzáférés biztosításához.

Adatkérések naplózása

Az Azure Cosmos DB szerepköralapú hozzáférés-vezérlés használatakor a diagnosztikai naplók identitás- és engedélyezési információkkal bővülnek az egyes adatműveletekhez. Ezzel a kiegészítéssel részletes naplózást végezhet, és lekérheti az Azure Cosmos DB-fiókba küldött minden adatkéréshez használt Microsoft Entra-identitást.

A DataPlaneRequests naplókategória további információi két további oszlopból állnak:

Szerepköralapú hozzáférés-vezérlés kényszerítése egyetlen hitelesítési módszerként

Olyan helyzetekben, amikor az ügyfeleket kizárólag szerepköralapú hozzáférés-vezérléssel szeretné kikényszeríteni az Azure Cosmos DB-hez való csatlakozásra, letilthatja a fiók elsődleges/másodlagos kulcsait. Ha így tesz, a rendszer aktívan elutasítja az elsődleges/másodlagos kulcsot vagy erőforrás-jogkivonatot használó bejövő kéréseket.

Használjon Azure Resource Manager-sablonokat

Az Azure Cosmos DB-fiók Azure Resource Manager-sablonokkal történő létrehozásakor vagy frissítésekor állítsa a tulajdonságot a disableLocalAuth következőre true:

"resources": [
    {
        "type": " Microsoft.DocumentDB/databaseAccounts",
        "properties": {
            "disableLocalAuth": true,
            // ...
        },
        // ...
    },
    // ...
 ]

Korlátok

  • Azure Cosmos DB-fiókonként legfeljebb 100 szerepkördefiníciót és 2000 szerepkör-hozzárendelést hozhat létre.
  • Szerepkördefiníciókat csak az Azure Cosmos DB-fiókhoz tartozó Microsoft Entra-bérlőhöz tartozó Microsoft Entra-identitásokhoz rendelhet.
  • A Microsoft Entra-csoportfeloldás jelenleg nem támogatott a több mint 200 csoporthoz tartozó identitások esetében.
  • A Microsoft Entra-jogkivonat jelenleg fejlécként van átadva az Azure Cosmos DB szolgáltatásnak küldött minden egyes kéréssel, növelve a teljes hasznos adatméretet.

Gyakori kérdések

Ez a szakasz a szerepköralapú hozzáférés-vezérléssel és az Azure Cosmos DB-sel kapcsolatos gyakori kérdéseket tartalmazza.

Mely Azure Cosmos DB API-k támogatják az adatsíkok szerepköralapú hozzáférés-vezérlését?

Jelenleg csak a NoSQL API támogatott.

Elvégezhető a szerepkör-definíciók és szerepkör-hozzárendelések kezelése az Azure Portalon?

Az Azure Portal szerepkör-kezelési támogatása még nem érhető el.

Az Azure Cosmos DB API for NoSQL mely SDK-jai támogatják a szerepköralapú hozzáférés-vezérlést?

A .NET V3, Java V4, JavaScript V3 és Python V4.3+ SDK-k jelenleg támogatottak.

Az Azure Cosmos DB SDK-k automatikusan frissítik a Microsoft Entra-jogkivonatot, amikor lejár?

Igen.

Le lehet tiltani a fiók elsődleges/másodlagos kulcsainak használatát a szerepköralapú hozzáférés-vezérlés használatakor?

Igen, tekintse meg a szerepköralapú hozzáférés-vezérlés kényszerítését egyetlen hitelesítési módszerként.

Következő lépések