Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Funktionerna i Data API Builder 2.0 som beskrivs i det här avsnittet är för närvarande i förhandsversion och kan komma att ändras före allmän tillgänglighet. Mer information finns i Nyheter i version 2.0.
Med rollarv kan du definiera behörigheter en gång för en bredare roll och ha mer specifika roller som automatiskt ärver den åtkomsten. Utan att roller ärvs måste du upprepa behörighetsblocket för varje roll på varje entitet. Med rollarv definierar du åtkomst på anonymous en gång, och alla bredare roller får samma åtkomst.
Arvskedjan
Arvskedjan flödar från minst privilegierad till mest privilegierad:
named-role → authenticated → anonymous
| Befattning | Ärver från | Notes |
|---|---|---|
Namngiven roll (till exempel editor) |
authenticated |
Eller från anonymous om authenticated inte har konfigurerats |
authenticated |
anonymous |
Gäller när det inte finns något explicit authenticated block |
anonymous |
(ingen) | Kedjans bas; ingen reservlösning |
Kedjan innebär:
- Om en namngiven roll inte har något behörighetsblock, söker DAB efter ett
authenticatedblock. Om det inte finns någon återgår den tillanonymous. - Om
authenticatedinte har något behörighetsblock, använder DABanonymous-blocket. - Om det inte finns något behörighetsblock för
anonymous, avvisas begäran med403 Forbidden.
Hur arv hanteras
När DAB utvärderar en begäran avgör den den effektiva rollen och går sedan igenom arvskedjan för att hitta ett behörighetsblock:
- DAB identifierar den effektiva rollen från begäran (via
X-MS-API-ROLEhuvud, tokenanspråk eller standardvärden). - DAB söker efter ett explicit behörighetsblock i
entities.<name>.permissionssom motsvarar den effektiva rollen. - Om det inte finns något matchande block går DAB upp i kedjan:
authenticated→anonymous. - Det första matchande blocket som hittades innehåller behörigheterna för begäran.
- Om inget block matchar någon roll i kedjan returnerar DAB
403 Forbidden.
Anmärkning
DAB utvärderar behörigheter inom exakt en effektiv roll per begäran. Rollarv kombinerar inte behörigheter från flera roller.
Exempel
Minsta konfiguration: enkel behörighet för alla roller
Definiera en read behörighet för anonymous. Varje roll–authenticated och valfri namngiven roll – ärver den åtkomsten.
{
"entities": {
"Book": {
"source": "dbo.books",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] }
]
}
}
}
Gällande behörigheter för den här konfigurationen:
Entity: Book
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles | Inherit from: anonymous
Skiktad konfiguration: olika åtkomst per roll
När du behöver olika åtkomstnivåer per roll definierar du var och en explicit. Arv fyller bara i de roller som du inte konfigurerar.
{
"entities": {
"Order": {
"source": "dbo.orders",
"permissions": [
{ "role": "anonymous", "actions": [ "read" ] },
{ "role": "authenticated", "actions": [ "read", "create" ] },
{ "role": "admin", "actions": [ "*" ] }
]
}
}
}
Gällande behörigheter för den här konfigurationen:
Entity: Order
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read, Create
Role: admin | Actions: Create, Read, Update, Delete
Unconfigured roles | Inherit from: authenticated
Någon annan namngiven roll än admin– till exempel viewer eller support– ärver från authenticated och får read och create åtkomst.
Inget arv: helt blockerat
Om anonymous inte har något behörighetsblock och ingen annan roll i kedjan har ett, avvisas varje begäran till den entiteten.
{
"entities": {
"AuditLog": {
"source": "dbo.audit_log",
"permissions": [
{ "role": "admin", "actions": [ "read" ] }
]
}
}
}
I den här konfigurationen kan bara admin komma åt AuditLog.
authenticated och anonymous har inget block att ärva, så DAB avvisar begäranden från dessa roller med 403 Forbidden.
Viktigt!
DAB genererar en varning vid start när authenticated eller namngivna roller konfigureras på en entitet men providern Unauthenticated är aktiv. När Unauthenticated är aktiv aktiveras aldrig dessa roller. Mer information finns i Konfigurera den oautentiserade providern.
Visa gällande behörigheter
Använd dab configure --show-effective-permissions för att visa de fastställda behörigheterna för varje entitet, inklusive vilka roller som har ärvts från vilka. Det här kommandot är det snabbaste sättet att kontrollera att arv fungerar som förväntat utan att köra motorn.
dab configure --show-effective-permissions
Du kan också rikta in dig på en specifik konfigurationsfil:
dab configure --show-effective-permissions --config my-config.json
Exempel på utdata:
Entity: Book
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: anonymous
Entity: Order
Role: admin | Actions: Create, Read, Update, Delete
Role: anonymous | Actions: Read
Role: authenticated | Actions: Read (inherited from: anonymous)
Unconfigured roles inherit from: authenticated
Fullständiga alternativ finns i --show-effective-permissions.
Arv jämfört med explicita behörigheter
| Scenario | Recommendation |
|---|---|
| Alla roller ska ha samma åtkomst | Definiera en gång på anonymous; låt alla roller ärva |
| Autentiserade användare behöver mer åtkomst än anonyma | Definiera anonymous läsa, lägga till authenticated skapa/uppdatera |
En namngiven roll behöver bredare åtkomst än authenticated |
Definiera den namngivna rollen explicit. andra ärver från authenticated |
En namngiven roll behöver mindre åtkomst än authenticated |
Definiera den namngivna rollen explicit med de reducerade åtgärderna |
| En entitet måste vara helt privat | Bevilja endast den specifika namngivna rollen. lämna authenticated och anonymous odefinierad |