Authagonal.AwsProvider
0.4.0
dotnet add package Authagonal.AwsProvider --version 0.4.0
NuGet\Install-Package Authagonal.AwsProvider -Version 0.4.0
<PackageReference Include="Authagonal.AwsProvider" Version="0.4.0" />
<PackageVersion Include="Authagonal.AwsProvider" Version="0.4.0" />
<PackageReference Include="Authagonal.AwsProvider" />
paket add Authagonal.AwsProvider --version 0.4.0
#r "nuget: Authagonal.AwsProvider, 0.4.0"
#:package Authagonal.AwsProvider@0.4.0
#addin nuget:?package=Authagonal.AwsProvider&version=0.4.0
#tool nuget:?package=Authagonal.AwsProvider&version=0.4.0
Authagonal.AwsProvider
AWS implementation of the Authagonal storage and clustering seams — the counterpart to
Authagonal.Storage (Azure). 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: foundation +
IClientStore,ISigningKeyStore,IGrantStore, clustering, and secrets are implemented. The remaining stores (user, MFA, OIDC/SAML/SSO, SCIM, roles, scopes, revoked tokens, provisioning apps, user provisions) are a mechanical port of the same patterns.
| 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.4.0)
- AWSSDK.DynamoDBv2 (>= 4.0.21.5)
- AWSSDK.S3 (>= 4.0.25)
- AWSSDK.SecretsManager (>= 4.0.5.6)
- Microsoft.AspNetCore.DataProtection (>= 10.0.9)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
-
net9.0
- Authagonal.Core (>= 0.4.0)
- AWSSDK.DynamoDBv2 (>= 4.0.21.5)
- AWSSDK.S3 (>= 4.0.25)
- AWSSDK.SecretsManager (>= 4.0.5.6)
- Microsoft.AspNetCore.DataProtection (>= 9.0.17)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.9)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.9)
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.4.0 | 46 | 6/17/2026 |