Authagonal.AwsProvider
0.9.1
dotnet add package Authagonal.AwsProvider --version 0.9.1
NuGet\Install-Package Authagonal.AwsProvider -Version 0.9.1
<PackageReference Include="Authagonal.AwsProvider" Version="0.9.1" />
<PackageVersion Include="Authagonal.AwsProvider" Version="0.9.1" />
<PackageReference Include="Authagonal.AwsProvider" />
paket add Authagonal.AwsProvider --version 0.9.1
#r "nuget: Authagonal.AwsProvider, 0.9.1"
#:package Authagonal.AwsProvider@0.9.1
#addin nuget:?package=Authagonal.AwsProvider&version=0.9.1
#tool nuget:?package=Authagonal.AwsProvider&version=0.9.1
Authagonal.AwsProvider
AWS implementation of the Authagonal storage and clustering seams, the counterpart to
Authagonal.AzureProvider. All cloud-vendor coupling lives here; Authagonal.Core and
Authagonal.Protocol stay vendor-neutral.
| Authagonal seam | AWS service | Notes |
|---|---|---|
Stores (IUserStore, IGrantStore, ISigningKeyStore, …) |
DynamoDB | One table per Azure table; composite key pk+sk mirrors PartitionKey/RowKey. |
Leader election (ILeaseProvider) |
DynamoDB conditional-write lease | No native lease primitive; a conditional PutItem gives single-holder semantics. |
Cluster event bus (IClusterEventBus) |
DynamoDB append-log + poll | Mirrors the Azure table-log bus. At-least-once, unordered. |
Secrets (ISecretProvider) |
Secrets Manager | Substitute for Azure Key Vault; references stored as sm:{name}. |
Single-use grant redemption uses a conditional DeleteItem (attribute_exists + ReturnValues=ALL_OLD)
in place of Azure's ETag/If-Match delete, the same anti-replay guarantee. The grant expiry index is
re-keyed (pk = exp_{shard}, sk = {yyyy-MM-dd}#{hashedKey}) so the cleanup sweep can range-scan the
sort key, since DynamoDB cannot range-query a partition key.
Credentials resolve via the standard AWS chain (env / EC2 instance role / IRSA), so there's no
managed-identity-vs-connection-string split, pass a configured IAmazonDynamoDB.
services.AddDynamoStorage(dynamoDbClient);
services.AddSecretsManager(secretsManagerClient);
// clustering:
builder.UseAwsDynamo(dynamoDbClient); // auth nodes (leader + bus)
builder.UseAwsDynamoBus(dynamoDbClient); // portal/admin nodes (bus only)
Status: every
Authagonal.Corestore and clustering interface has a DynamoDB implementation (users, grants, clients, MFA, OIDC/SAML/SSO, SCIM, roles, scopes, revoked tokens, provisioning, replay caches, change-log capture).Authagonal.Backupremains Azure-only.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Authagonal.Core (>= 0.9.1)
- AWSSDK.DynamoDBv2 (>= 4.0.101.3)
- AWSSDK.S3 (>= 4.0.101.3)
- AWSSDK.SecretsManager (>= 4.0.100.5)
- Microsoft.AspNetCore.DataProtection (>= 10.0.10)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
-
net9.0
- Authagonal.Core (>= 0.9.1)
- AWSSDK.DynamoDBv2 (>= 4.0.101.3)
- AWSSDK.S3 (>= 4.0.101.3)
- AWSSDK.SecretsManager (>= 4.0.100.5)
- Microsoft.AspNetCore.DataProtection (>= 9.0.18)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.9.1 | 31 | 7/18/2026 |
| 0.9.0 | 30 | 7/18/2026 |
| 0.8.2 | 32 | 7/18/2026 |
| 0.8.1 | 45 | 7/18/2026 |
| 0.8.0 | 32 | 7/18/2026 |
| 0.7.11 | 42 | 7/16/2026 |
| 0.7.10 | 38 | 7/16/2026 |
| 0.7.9 | 44 | 7/15/2026 |
| 0.7.8 | 39 | 7/15/2026 |
| 0.7.7 | 37 | 7/15/2026 |
| 0.7.6 | 44 | 7/15/2026 |
| 0.7.4 | 58 | 7/14/2026 |
| 0.7.3 | 60 | 7/14/2026 |
| 0.7.2 | 92 | 7/13/2026 |
| 0.7.1 | 98 | 7/12/2026 |
| 0.7.0 | 92 | 7/12/2026 |
| 0.6.6 | 87 | 7/12/2026 |
| 0.6.5 | 89 | 7/11/2026 |
| 0.6.4 | 92 | 7/11/2026 |
| 0.6.3 | 92 | 7/11/2026 |