From 076b193b1714383e83d8aa80253cddfd1d695b92 Mon Sep 17 00:00:00 2001 From: Tim Date: Sat, 26 Apr 2025 20:45:22 +0200 Subject: Add oidc discovery endpoint --- VPNAuth.Server/Api/Oidc.cs | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'VPNAuth.Server/Api/Oidc.cs') diff --git a/VPNAuth.Server/Api/Oidc.cs b/VPNAuth.Server/Api/Oidc.cs index e8ff3c0..366fabf 100644 --- a/VPNAuth.Server/Api/Oidc.cs +++ b/VPNAuth.Server/Api/Oidc.cs @@ -1,4 +1,5 @@ -using VPNAuth.Server.Responses; +using System.Net; +using VPNAuth.Server.Responses; namespace VPNAuth.Server.Api; @@ -73,4 +74,27 @@ public static class Oidc await context.Response.WriteAsJsonAsync(userInfoResponse); } + + public static async Task DiscoveryHandler(HttpContext context) + { + if (!context.Request.Host.HasValue) + { + context.Response.StatusCode = StatusCodes.Status400BadRequest; + return; + } + + var serverAddress = context.Request.IsHttps ? "https://" : "http://" + context.Request.Host.Value; + + await context.Response.WriteAsJsonAsync(new OidcDiscovery + { + Issuer = serverAddress + "/", + AuthorizationEndpoint = $"{serverAddress}/auth", + TokenEndpoint = $"{serverAddress}/access-token", + UserInfoEndpoint = $"{serverAddress}/user-info", + JwksUri = "", + ResponseTypesSupported = ["code"], + SubjectTypesSupported = [], + IdTokenSigningAlgValuesSupported = ["RS256"] + }); + } } -- cgit v1.2.3