Udap.UI
0.9.14
dotnet add package Udap.UI --version 0.9.14
NuGet\Install-Package Udap.UI -Version 0.9.14
<PackageReference Include="Udap.UI" Version="0.9.14" />
<PackageVersion Include="Udap.UI" Version="0.9.14" />
<PackageReference Include="Udap.UI" />
paket add Udap.UI --version 0.9.14
#r "nuget: Udap.UI, 0.9.14"
#:package Udap.UI@0.9.14
#addin nuget:?package=Udap.UI&version=0.9.14
#tool nuget:?package=Udap.UI&version=0.9.14
Udap.UI
📦 Nuget Package: Udap.UI
This package provides Razor Pages and static assets for the authentication and consent UI used with Duende IdentityServer and UDAP. It includes pages for login, logout, consent, device authorization, CIBA, and grant management, along with support for UDAP Tiered OAuth flows.
Include this package in a server that already includes the Udap.Server package.
Bring your own UI
The pages are a reference look. Their protocol logic lives in services you can call from your own pages, so a host can replace the markup and styling entirely without copying page models:
builder.Services.AddUdapUI(options =>
{
options.Login.AllowRememberLogin = false;
options.Logout.ShowLogoutPrompt = false;
});
// Optional: sign users in against your own identity store instead of Duende TestUsers.
builder.Services.AddTransient<IUdapUserStore, MyUserStore>();
| Service | Use it for |
|---|---|
IUdapLoginService |
Login page model (providers, UDAP idp hint, local-login rules), credential sign-in, cancel, and SignInUserAsync for an already-verified user (passkey, registration). |
IUdapExternalLoginService |
Tiered OAuth and external OIDC challenge properties; the shared callback that finds or provisions the user and signs them in. |
IUdapLogoutService |
Logout prompt decision, local sign-out with the upstream sign-out scheme, logged-out page context. |
IUdapConsentService |
Consent page context and recording the user's decision. UdapScopeListBuilder builds the permission list for device and CIBA screens too. |
IUdapUserStore |
The user store behind login. Defaults to TestUserStoreAdapter over Duende's TestUserStore. |
Service calls return a UdapInteractionResult (redirect, native-client redirect, or show the page
with an error); this.ToActionResult(result) converts the redirecting kinds in a PageModel.
The built-in pages use these services too, and still work when AddUdapUI() is not called.
Plain-language permissions
UdapScopeLanguage.Describe(scope) words an OIDC, SMART App Launch (v1/v2) or UDAP scope for the person
granting consent, e.g. patient/MedicationDispense.rs reads "Your filled prescriptions: The app can look
at and search the medicines pharmacies have filled for you." It builds the wording from the scope's parts
(context, FHIR resource type, permissions), so a whole SMART scope catalog reads well without per-scope
descriptions, and flags scopes that can change records or reach beyond the patient's own records. Its
Technical text gives the breakdown for a "Plain language" / "Technical" switch. The example servers
(SecuredControls Auth, SecuredControls Identity) show both.
| 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
- Duende.IdentityServer (>= 8.0.9)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 10.0.12)
- Microsoft.Bcl.Memory (>= 10.0.12)
- Udap.Server (>= 0.9.14)
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.14 | 155 | 10/5/2026 |
| 0.9.13 | 84 | 10/4/2026 |
| 0.9.12 | 148 | 10/3/2026 |
| 0.9.11 | 110 | 9/20/2026 |
| 0.9.9 | 103 | 9/20/2026 |
| 0.9.8 | 105 | 9/20/2026 |
| 0.9.7 | 160 | 9/14/2026 |
| 0.9.6 | 114 | 9/11/2026 |
| 0.9.5 | 312 | 9/10/2026 |
| 0.9.5-preview001 | 99 | 9/10/2026 |
| 0.9.4 | 148 | 8/11/2026 |
| 0.9.3 | 179 | 7/25/2026 |
| 0.9.2 | 137 | 7/20/2026 |
| 0.9.1 | 179 | 7/10/2026 |
| 0.9.0 | 141 | 7/9/2026 |
| 0.8.5 | 169 | 6/16/2026 |
| 0.8.4 | 142 | 5/30/2026 |
| 0.8.3 | 175 | 5/29/2026 |
| 0.8.2 | 150 | 5/22/2026 |
| 0.8.1 | 147 | 5/20/2026 |