Cosmos.Authorization
3.2.0
dotnet add package Cosmos.Authorization --version 3.2.0
NuGet\Install-Package Cosmos.Authorization -Version 3.2.0
<PackageReference Include="Cosmos.Authorization" Version="3.2.0" />
<PackageVersion Include="Cosmos.Authorization" Version="3.2.0" />
<PackageReference Include="Cosmos.Authorization" />
paket add Cosmos.Authorization --version 3.2.0
#r "nuget: Cosmos.Authorization, 3.2.0"
#:package Cosmos.Authorization@3.2.0
#addin nuget:?package=Cosmos.Authorization&version=3.2.0
#tool nuget:?package=Cosmos.Authorization&version=3.2.0
Cosmos.Authorization
Autorización fine-grained (FGA) para servicios Cosmos. El paquete es el único lugar del ecosistema
que conoce al proveedor externo de autorización (hoy WorkOS FGA): hacia afuera solo se ve el puerto
IGrantedResourcesProvider.
Qué expone
IGrantedResourcesProvider— lista qué recursos (por suexternal_id) tiene concedidos una membresía bajo un recurso padre con un permiso (ListResourcesForMembershipAsync), chequea un permiso puntual sobre un recurso (CheckAsync) y crea recursos (CreateResourceAsync). La coherencia de la jerarquía la valida el proveedor de FGA. Los recursos cuelgan siempre de un tenant:CreateResourceAsyncrecibe eltenantIddel ecosistema y el paquete lo traduce a la identidad del proveedor.ResourceType— el árbol de tipos de recurso del modelo FGA de Cosmos:Subscription(raíz) →ResourceGroup→Resource. Cerrado a propósito: los tipos se declaran acá y cada uno conoce a su padre.Resource— una referencia a un recurso:ResourceById(id)oResourceByExternalId(resourceType, externalId). La misma referencia sirve de padre (listar, crear) y de objetivo (check).AgregarAutorizacionFga(apiKey)— extension deIServiceCollectionque registra el proveedor como singleton. Recibe la API key ya resuelta; de dónde sale es decisión del consumidor.
Uso
builder.Services.AgregarAutorizacionFga(apiKey);
Si el servicio corre en Azure y guarda la key en Key Vault, Cosmos.Authorization.Azure hace ese
paso: await builder.Services.AgregarAutorizacionFgaDesdeKeyVaultAsync(vaultUri, "WORKOS-API-KEY").
// ¿Puede este miembro leer este grupo de recursos?
var puede = await provider.CheckAsync(
membershipId,
new ResourceByExternalId(ResourceType.ResourceGroup, "ADPRO"),
"resource-group:read",
ct);
// ¿Qué grupos de recursos del producto puede leer? (descubrimiento, p. ej. para filtrar catálogos)
var concedidos = await provider.ListResourcesForMembershipAsync(
membershipId,
new ResourceByExternalId(ResourceType.Subscription, "co.sinco.cosmos.miservicio"),
"resource-group:read",
ct);
// Aprovisionamiento: crear un grupo de recursos bajo el producto.
await provider.CreateResourceAsync(
tenantId, ResourceType.ResourceGroup, "ADPRO",
new ResourceByExternalId(ResourceType.Subscription, "co.sinco.cosmos.miservicio"), ct);
Qué NO hace
- No cachea las respuestas: un permiso revocado se nota en la invocación siguiente.
- No interpreta los
external_id: qué significan (esquemas, módulos, recursos) es semántica del dominio consumidor.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- WorkOS.net (>= 6.2.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Cosmos.Authorization:
| Package | Downloads |
|---|---|
|
Cosmos.Authorization.Azure
Integración de Cosmos.Authorization con Azure Key Vault: registra la autorización FGA leyendo la API key del proveedor desde un secreto del vault, con la identidad administrada del servicio. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.2.0 | 163 | 8/26/2026 |
| 3.1.0 | 212 | 8/25/2026 |
| 0.0.1-rc.2 | 90 | 8/21/2026 |
| 0.0.1-RC.1 | 89 | 8/21/2026 |