Udap.Ssraa.Server
0.8.2
dotnet add package Udap.Ssraa.Server --version 0.8.2
NuGet\Install-Package Udap.Ssraa.Server -Version 0.8.2
<PackageReference Include="Udap.Ssraa.Server" Version="0.8.2" />
<PackageVersion Include="Udap.Ssraa.Server" Version="0.8.2" />
<PackageReference Include="Udap.Ssraa.Server" />
paket add Udap.Ssraa.Server --version 0.8.2
#r "nuget: Udap.Ssraa.Server, 0.8.2"
#:package Udap.Ssraa.Server@0.8.2
#addin nuget:?package=Udap.Ssraa.Server&version=0.8.2
#tool nuget:?package=Udap.Ssraa.Server&version=0.8.2
Udap.Ssraa.Server
SSRAA community-specific validators for UDAP token issuance with HL7 v3 PurposeOfUse enforcement.
Setup
builder.Services.AddUdapSsraaValidation(options =>
{
options.Communities.Add("udap://fhirlabs.net");
});
Multiple communities can share the same SSRAA rules:
builder.Services.AddUdapSsraaValidation(options =>
{
options.Communities.Add("udap://fhirlabs.net");
options.Communities.Add("udap://another-community.example.com");
});
What it enforces
| Rule | client_credentials |
authorization_code |
|---|---|---|
| Required extensions | hl7-b2b |
none |
Allowed purpose_of_use |
All 62 HL7 v3 codes | All 62 HL7 v3 codes |
Max purpose_of_use count |
unlimited | unlimited |
The allowed purpose_of_use codes come from the HL7 v3 PurposeOfUse value set (OID: 2.16.840.1.113883.5.8).
Customizing required extensions
The defaults match the SSRAA IG, but you can override per grant type:
builder.Services.AddUdapSsraaValidation(options =>
{
options.Communities.Add("udap://fhirlabs.net");
// Require hl7-b2b for both grant types (default only requires it for client_credentials)
options.AuthorizationCodeExtensionsRequired = ["hl7-b2b"];
// Or remove the client_credentials requirement
options.ClientCredentialsExtensionsRequired = null;
});
How it works
SsraaTokenValidator implements ICommunityTokenValidator. At token request time:
DefaultUdapAuthorizationExtensionValidatorresolves the client's community from the registration store- Iterates registered
ICommunityTokenValidatorimplementations SsraaTokenValidator.AppliesToCommunity()matches if the community is in the configured setGetValidationRules()returns the rules for the grant type- The framework enforces required extensions and validates
purpose_of_usecodes
See Udap.Server for the full auth server setup and the Udap.Auth.Server example for a working reference.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. 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
- BouncyCastle.Cryptography (>= 2.6.2)
- Duende.IdentityModel (>= 8.1.0)
- Duende.IdentityServer (>= 7.4.7)
- Duende.IdentityServer.AspNetIdentity (>= 7.4.7)
- Duende.IdentityServer.EntityFramework.Storage (>= 7.4.7)
- Duende.IdentityServer.Storage (>= 7.4.7)
- Hl7.Fhir.Base (>= 5.13.3)
- Hl7.Fhir.R4B (>= 5.13.3)
- Hl7.Fhir.Specification.R4B (>= 5.13.3)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 10.0.8)
- Microsoft.AspNetCore.DataProtection.Abstractions (>= 10.0.8)
- Microsoft.AspNetCore.DataProtection.EntityFrameworkCore (>= 10.0.8)
- Microsoft.Bcl.Memory (>= 10.0.8)
- Microsoft.EntityFrameworkCore (>= 10.0.8)
- Microsoft.Extensions.Configuration (>= 10.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Http (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.8)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.18.0)
- System.IdentityModel.Tokens.Jwt (>= 8.18.0)
- Udap.Server (>= 0.8.2)
- ZiggyCreatures.FusionCache (>= 2.6.0)
-
net8.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Duende.IdentityModel (>= 8.1.0)
- Duende.IdentityServer (>= 7.4.7)
- Duende.IdentityServer.AspNetIdentity (>= 7.4.7)
- Duende.IdentityServer.EntityFramework.Storage (>= 7.4.7)
- Duende.IdentityServer.Storage (>= 7.4.7)
- Hl7.Fhir.Base (>= 5.13.3)
- Hl7.Fhir.R4B (>= 5.13.3)
- Hl7.Fhir.Specification.R4B (>= 5.13.3)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 8.0.27)
- Microsoft.AspNetCore.DataProtection.Abstractions (>= 10.0.8)
- Microsoft.AspNetCore.DataProtection.EntityFrameworkCore (>= 8.0.27)
- Microsoft.Bcl.Memory (>= 10.0.8)
- Microsoft.EntityFrameworkCore (>= 9.0.16)
- Microsoft.Extensions.Configuration (>= 10.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Http (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.8)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.18.0)
- System.IdentityModel.Tokens.Jwt (>= 8.18.0)
- Udap.Server (>= 0.8.2)
- ZiggyCreatures.FusionCache (>= 2.6.0)
-
net9.0
- BouncyCastle.Cryptography (>= 2.6.2)
- Duende.IdentityModel (>= 8.1.0)
- Duende.IdentityServer (>= 7.4.7)
- Duende.IdentityServer.AspNetIdentity (>= 7.4.7)
- Duende.IdentityServer.EntityFramework.Storage (>= 7.4.7)
- Duende.IdentityServer.Storage (>= 7.4.7)
- Hl7.Fhir.Base (>= 5.13.3)
- Hl7.Fhir.R4B (>= 5.13.3)
- Hl7.Fhir.Specification.R4B (>= 5.13.3)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 9.0.16)
- Microsoft.AspNetCore.DataProtection.Abstractions (>= 10.0.8)
- Microsoft.AspNetCore.DataProtection.EntityFrameworkCore (>= 9.0.16)
- Microsoft.Bcl.Memory (>= 10.0.8)
- Microsoft.EntityFrameworkCore (>= 9.0.16)
- Microsoft.Extensions.Configuration (>= 10.0.8)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Http (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.8)
- Microsoft.IdentityModel.JsonWebTokens (>= 8.18.0)
- System.IdentityModel.Tokens.Jwt (>= 8.18.0)
- Udap.Server (>= 0.8.2)
- ZiggyCreatures.FusionCache (>= 2.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.