Skip to content

OAuth Handler let you use Signaturgruppen to authenticate users

License

Notifications You must be signed in to change notification settings

Toenn-Vaot/signaturgruppen.oauth

Repository files navigation

signaturgruppen oauth_repository example workflow

...

var authenticationBuilder = services.AddAuthentication();
authenticationBuilder.AddSignaturgruppen(SignaturgruppenDefaults.AuthenticationScheme, "signaturgruppen", options =>
{
  options.Options = new SignaturgruppenRequestOptions
  {
    Environment = (Configuration["Signaturgruppen:Environment"] == "Test") ? SignaturgruppenEnvironment.Test : SignaturgruppenEnvironment.Prod,
    Amr = new[] { SignaturgruppenAmrValues.MitidOtp, SignaturgruppenAmrValues.NemIdOtp },
    Locale = SignaturgruppenLocales.English
  };

  options.Events.OnRemoteFailure = ctx =>
  {
    var queryParams = ctx.Request.QueryString.ToString();
    if (ctx.Request.Method == "POST")
    {
      queryParams = QueryHelpers.AddQueryString("", ctx.Request.Form?.ToDictionary(p => p.Key, p => p.Value.ToString()));
    }

    ctx.Response.Redirect($"/Account/RemoteFailure{queryParams}");
    ctx.HandleResponse();
    return Task.FromResult(0);
  };

  options.AccessDeniedPath = CookieAuthenticationDefaults.AccessDeniedPath;
  options.ConfigureEnvironment(Configuration["Signaturgruppen:Environment"] == "Test" ? SignaturgruppenEnvironment.Test : SignaturgruppenEnvironment.Prod);
  options.SignInScheme = IdentityConstants.ExternalScheme;
  options.ClientId = Configuration["Signaturgruppen:Key"];
  options.ClientSecret = Configuration["Signaturgruppen:Secret"];
  options.AddScopesWithClaims(SignaturgruppenScopes.Ssn, SignaturgruppenScopes.Nemid, SignaturgruppenScopes.Mitid);
});

...

About

OAuth Handler let you use Signaturgruppen to authenticate users

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages