diff --git a/MidrandBooksApi/MidrandBooksApi.csproj b/MidrandBooksApi/MidrandBooksApi.csproj index 6a4aed9..7601a3a 100644 --- a/MidrandBooksApi/MidrandBooksApi.csproj +++ b/MidrandBooksApi/MidrandBooksApi.csproj @@ -54,13 +54,13 @@ - + - + diff --git a/MidrandBooksApi/Payments/Endpoints/IdentityEndpoint.cs b/MidrandBooksApi/Payments/Endpoints/IdentityEndpoint.cs new file mode 100644 index 0000000..8276498 --- /dev/null +++ b/MidrandBooksApi/Payments/Endpoints/IdentityEndpoint.cs @@ -0,0 +1,23 @@ +using LiteCharms.Features.Abstractions; +using LiteCharms.Features.Api; +using LiteCharms.Features.Extensions; + +namespace MidrandBooksApi.Payments.Endpoints; + +[ApiVersionTarget(1)] +public class IdentityEndpoint : IEndpoint +{ + public void Map(IEndpointRouteBuilder builder) + { + builder.MapGet("security/test", () => + { + return Results.Ok(); + }) + .RequireAuthorization() + .WithDescription("Security test endpoint") + .WithName(typeof(IdentityEndpoint).ToEndpointName()) + .Produces(StatusCodes.Status200OK) + .WithTags("Security") + .MapToApiVersion(1); + } +} diff --git a/MidrandBooksApi/Program.cs b/MidrandBooksApi/Program.cs index 5df7539..6fc42ac 100644 --- a/MidrandBooksApi/Program.cs +++ b/MidrandBooksApi/Program.cs @@ -11,10 +11,8 @@ builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpoints(Assembly.GetExecutingAssembly()); builder.Services.AddApiServices(builder.Configuration); -builder.Services.AddAuthorization(); -builder.Services.AddAuthentication(); - builder.Services.AddMediator(); +builder.Services.AddAuthentic(builder.Configuration); builder.Services.AddScoped(typeof(IPipelineBehavior<,>), typeof(TelemetryPipelineBehavior<,>)); builder.Services.AddScoped(typeof(IPipelineBehavior<,>), typeof(LoggingPipelineBehavior<,>)); diff --git a/MidrandBooksApi/appsettings.json b/MidrandBooksApi/appsettings.json index b872baf..c2110f2 100644 --- a/MidrandBooksApi/appsettings.json +++ b/MidrandBooksApi/appsettings.json @@ -1,4 +1,11 @@ { + "AuthentikSettings": { + "Authority": "https://id.khongisa.co.za/application/o/midrand-books-api-uat/", + "IntrospectionUrl": "https://id.khongisa.co.za/application/o/introspect/", + "RequiredClaimName": "scope", + "RequiredClaimNameValue": "openid", + "RequireHttpsMetadata": true + }, "ValidPayfastHosts": [ "www.payfast.co.za", "sandbox.payfast.co.za", diff --git a/midrandbooksapi-uat.yml b/midrandbooksapi-uat.yml index 50e5033..15a663a 100644 --- a/midrandbooksapi-uat.yml +++ b/midrandbooksapi-uat.yml @@ -26,6 +26,11 @@ data: ValidPayfastHosts__4: "ips.payfast.co.za" ValidPayfastHosts__5: "api.payfast.co.za" ValidPayfastHosts__6: "payment.payfast.io" + AuthentikSettings__Authority: "https://id.khongisa.co.za/application/o/midrand-books-api-uat/" + AuthentikSettings__IntrospectionUrl: "https://id.khongisa.co.za/application/o/introspect/" + AuthentikSettings__RequiredClaimName: "scope" + AuthentikSettings__RequiredClaimNameValue: "openid" + AuthentikSettings__RequireHttpsMetadata: "true" --- apiVersion: v1 kind: Secret @@ -41,6 +46,8 @@ data: hasher-payfastpassphrase: OUdBSVIwdFdwaFgwcU8= bookshop-s3-accesskey: R0s1MTRkMmNlOGRjNjkyMzdhMDVjMDFlZWY= bookshop-s3-secretkey: ZWFhZmVkYTFhZWQ0MDllY2ZlNjA3MTRlY2RhNTQ5YjgyYmRmNWEzZGFmOWYxOGRkNjFmNjZiNDk3M2E2NDgyZQ== + authentik-clientid: aTZ5Z3I4NEhsbmh4RllxTEpWSjJIaGRsVnJPWUU0UG51clQ1Y1BRVw== + authentik-clientsecret: dHZQVU0zVnFmazJzcmE5OXM5bE4zWWxpMHlsYUdUNnZiUUJxZkg3S3ZTSWJUZUo2ZFpHQjEyTlc0TXhxRERXSmV4UDd2WGZqVEFadFIzajNpdkQ2Y1RKcjV4UTlTNHJwRm5TZlk0Rmk2OVJOd1J2S0hqOGhWcmQzd29icTZPREc= --- apiVersion: v1 kind: PersistentVolumeClaim