Skip to content

Add .NET 11 Passkeys sample - #776

Merged
jfversluis merged 3 commits into
dotnet:mainfrom
davidortinau:davidortinau-preview-7-passkeys-sample
Aug 11, 2026
Merged

Add .NET 11 Passkeys sample#776
jfversluis merged 3 commits into
dotnet:mainfrom
davidortinau:davidortinau-preview-7-passkeys-sample

Conversation

@davidortinau

@davidortinau davidortinau commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add a .NET MAUI 11 Passkeys client for Android, iOS, Mac Catalyst, and Windows
  • add a minimal ASP.NET Core Identity relying-party server that validates WebAuthn ceremonies
  • add deterministic dev-tunnel, Apple AASA, and Android Digital Asset Links setup
  • document platform prerequisites, the security boundary, and troubleshooting

Dependency

#775 merged the .NET 11 Preview 7 SDK and MAUI sample baseline. #778 pinned PR CI to the exact 11.0.100-preview.7.26381.103 SDK. #779 updated shared CI to Xcode 26.6, as required by the Preview 7 iOS and Mac Catalyst workloads. This branch is rebased onto those changes and the latest upstream main.

Validation

  • built the server and MAUI client for Android, iOS Simulator, and Mac Catalyst
  • exercised live health, AASA, Digital Asset Links, account, and passkey ceremony endpoints
  • verified the iOS simulator UI with MAUI DevFlow
  • verified that setup generates the local Associated Domains entitlement from the empty committed iOS base plist
  • reviewed origin validation, generated local configuration, app identity persistence, and the final entitlement fix

Final CI status

All required Preview 7 packages are public on NuGet.org. After #778 and #779 fixed the shared SDK and Xcode setup, CI exposed an unnecessary committed iOS keychain-access-groups entitlement. That made the hosted iOS Simulator build require a real Apple signing certificate. The base iOS plist is now empty, because the Passkeys API does not need that keychain group; Configure-Passkeys.ps1 still generates the ignored local Associated Domains entitlement for configured Apple builds.

The entitlement-fix run 31527010567 passed macOS, Windows, and CLA. The final ancestry-only rebase onto current main was proven byte-for-byte unchanged, and fresh run 31527938252 passed macOS and Windows. The PR is ready for review.

@davidortinau
davidortinau force-pushed the davidortinau-preview-7-passkeys-sample branch 2 times, most recently from 6fecfb7 to d6fb262 Compare August 11, 2026 15:55
@davidortinau
davidortinau force-pushed the davidortinau-preview-7-passkeys-sample branch from d6fb262 to 56c0fb3 Compare August 11, 2026 18:05
@davidortinau
davidortinau force-pushed the davidortinau-preview-7-passkeys-sample branch from 56c0fb3 to 326c814 Compare August 11, 2026 19:01
@davidortinau
davidortinau marked this pull request as ready for review August 11, 2026 19:23
@davidortinau
davidortinau marked this pull request as draft August 11, 2026 19:23
davidortinau and others added 3 commits August 11, 2026 14:23
Add a native MAUI client, ASP.NET Core relying-party server, and local-only cross-platform trust setup adapted from the Preview 7 implementation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Retain default cross-origin rejection when extending native origin validation, use an unmistakable Apple team placeholder, and reuse the generated application ID across setup reruns.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the unnecessary keychain access group from the base iOS entitlements and keep local Associated Domains generation working with an empty plist dictionary.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@davidortinau
davidortinau force-pushed the davidortinau-preview-7-passkeys-sample branch from a1e1fd3 to 0c653fd Compare August 11, 2026 19:27
@davidortinau
davidortinau marked this pull request as ready for review August 11, 2026 19:34
@davidortinau

Copy link
Copy Markdown
Contributor Author

@jfversluis Final release-day sample is green on macOS and Windows at 0c653fd1. The last CI fix removes an unnecessary committed iOS keychain entitlement while preserving generated local Associated Domains; the setup script and unsigned simulator build were revalidated. Passkeys docs are already published, so please review and merge to resolve the sample link.

@davidortinau

Copy link
Copy Markdown
Contributor Author

@conceptdev Release-day final dependency: #776 is green on macOS/Windows, current with main, and the Passkeys docs are already published. If available, please review and merge.

@jfversluis
jfversluis merged commit e78b475 into dotnet:main Aug 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants