| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using System.Text;
- using Fido2NetLib;
- using Fido2NetLib.Objects;
- using Microsoft.AspNetCore.Mvc;
- using Passwordless;
- var builder = WebApplication.CreateBuilder(args);
- // Add services to the container.
- // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
- builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddSwaggerGen();
- builder.Services.AddFido2(options =>
- {
- options.ServerDomain = "localhost";
- options.ServerName = "FIDO2 Test";
- options.Origins = ["http://localhost:5172"];
- options.TimestampDriftTolerance = 300000;
- });
- var app = builder.Build();
- // Configure the HTTP request pipeline.
- if (app.Environment.IsDevelopment())
- {
- app.UseSwagger();
- app.UseSwaggerUI();
- }
- app.UseStaticFiles();
- app.UseHttpsRedirection();
- app.MapGet("/buildCredentialOptions", ([FromQuery] string login, IFido2 fido2) =>
- {
- var data = File.ReadAllText("./data/test.json");
- var loginDisplay = Encoding.UTF8.GetString(Convert.FromBase64String(login));
- var loginName = NameTransform.ToFileName(loginDisplay);
- var user = new Fido2User
- {
- DisplayName = loginDisplay,
- Id = Convert.FromBase64String(login),
- Name = loginName,
- };
- var authenticatorSelection = new AuthenticatorSelection
- {
- UserVerification = UserVerificationRequirement.Discouraged,
- RequireResidentKey = false,
- };
- var extensions = new AuthenticationExtensionsClientInputs
- {
- Extensions = true,
- UserVerificationMethod = false,
- };
-
- var options = fido2.RequestNewCredential(user, new List<PublicKeyCredentialDescriptor>(), authenticatorSelection, AttestationConveyancePreference.None, extensions);
-
- return options;
- })
- .WithName("BuildCredentialOptions")
- .WithOpenApi();
- app.Run();
|