![]() |
VOOZH | about |
dotnet add package Udap.Metadata.Server --version 0.8.5
NuGet\Install-Package Udap.Metadata.Server -Version 0.8.5
<PackageReference Include="Udap.Metadata.Server" Version="0.8.5" />
<PackageVersion Include="Udap.Metadata.Server" Version="0.8.5" />Directory.Packages.props
<PackageReference Include="Udap.Metadata.Server" />Project file
paket add Udap.Metadata.Server --version 0.8.5
#r "nuget: Udap.Metadata.Server, 0.8.5"
#:package Udap.Metadata.Server@0.8.5
#addin nuget:?package=Udap.Metadata.Server&version=0.8.5Install as a Cake Addin
#tool nuget:?package=Udap.Metadata.Server&version=0.8.5Install as a Cake Tool
This package provides the .well-known/udap metadata endpoint for FHIR resource servers and other UDAP-secured APIs. It includes an extension method for service registration, middleware for dynamic metadata serving, and a built-in FileCertificateStore implementation of ICertificateStore.
For multi-domain metadata support (serving signed metadata for multiple domains within a single community), see .
Program.cs can be as simple as:
using Udap.Metadata.Server;
var builder = WebApplication.CreateBuilder(args);
builder.Services
.AddControllers()
.AddUdapMetadataServer(builder.Configuration);
var app = builder.Build();
app.UseUdapMetadataServer();
app.MapControllers();
app.Run();
You can provide your own certificate store implementation:
builder.Services.AddSingleton<ICertificateStore, MyCustomCertificateStore>();
dotnet add package Udap.Metadata.Server
Add the AddUdapMetadataServer service extension and UseUdapMetadataServer middleware to Program.cs:
builder.Services
.AddControllers()
.AddUdapMetadataServer(builder.Configuration);
// ...
// Place before UseRouting() and UseAuthentication() so metadata
// requests are handled anonymously
app.UseUdapMetadataServer();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
By default, AddUdapMetadataServer registers UdapMetadataOptionsProvider which reads the metadata options file path from AppSettings:
"UdapMetadataOptionsFile": "udap.metadata.options.json"
udap.metadata.options.json:
{
"UdapVersionsSupported": [ "1" ],
"UdapProfilesSupported": [ "udap_dcr", "udap_authn", "udap_authz", "udap_to" ],
"ScopesSupported": [ "openid", "system/*.read", "user/*.read", "patient/*.read" ],
"UdapCertificationsSupported": [ "http://MyUdapCertification", "http://MyUdapCertification2" ],
"UdapCertificationsRequired": [ "http://MyUdapCertification" ],
"GrantTypesSupported": [ "authorization_code", "refresh_token", "client_credentials" ],
"UdapMetadataConfigs": [
{
"Community": "http://localhost",
"SignedMetadataConfig": {
"AuthorizationEndpoint": "https://securedcontrols.net:5001/connect/authorize",
"TokenEndpoint": "https://securedcontrols.net:5001/connect/token",
"RegistrationEndpoint": "https://securedcontrols.net:5001/connect/register"
}
}
]
}
The UdapMetadataOptions class defines the configurable properties:
["1"])["udap_dcr", "udap_authn"])["hl7-b2b", "tefca-ias"])Any extra properties in your udap.metadata.options.json file not listed above will be loaded and made available in the published metadata via the ExtensionData dictionary.
To serve UDAP metadata, certificates are loaded through an implementation of ICertificateStore. Below is the built-in file-based implementation:
builder.Services.Configure<UdapFileCertStoreManifest>(builder.Configuration.GetSection("UdapFileCertStoreManifest"));
builder.Services.AddSingleton<ICertificateStore, FileCertificateStore>();
Configure certificate paths in appsettings.json. The community name links UdapMetadataConfigs to UdapFileCertStoreManifest. Community names are constrained as a URI.
"UdapFileCertStoreManifest": {
"Communities": [
{
"Name": "http://localhost",
"IssuedCerts": [
{
"FilePath": "CertStore/issued/weatherApiClientLocalhostCert.pfx",
"Password": "udap-test"
}
]
}
]
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 1 NuGet packages that depend on Udap.Metadata.Server:
| Package | Downloads |
|---|---|
|
Udap.Metadata.Vonk.Server
Package Description |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.8.5 | 70 | 6/16/2026 |
| 0.8.4 | 98 | 5/30/2026 |
| 0.8.3 | 101 | 5/29/2026 |
| 0.8.2 | 114 | 5/22/2026 |
| 0.8.1 | 101 | 5/20/2026 |
| 0.8.0 | 117 | 5/15/2026 |
| 0.7.13 | 104 | 5/15/2026 |
| 0.7.12 | 289 | 4/1/2026 |
| 0.7.11 | 113 | 3/31/2026 |
| 0.7.10 | 113 | 3/31/2026 |
| 0.7.9 | 122 | 3/31/2026 |
| 0.7.8 | 114 | 3/30/2026 |
| 0.7.7 | 116 | 3/30/2026 |
| 0.7.6 | 117 | 3/30/2026 |
| 0.7.5 | 121 | 3/30/2026 |
| 0.7.4 | 114 | 3/29/2026 |
| 0.7.3 | 122 | 3/29/2026 |
| 0.7.2 | 122 | 3/28/2026 |
| 0.7.1 | 115 | 3/23/2026 |
| 0.7.0 | 116 | 3/22/2026 |