@@ -0,0 +1,6 @@
|
||||
## Authentik Token Request
|
||||
POST {{authority}}
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
Accept-Encoding: identity
|
||||
|
||||
grant_type={{grantType}}&client_id={{clientId}}&client_secret={{clientSecret}}&username={{username}}&password={{password}}&scope={{scope}}
|
||||
@@ -11,26 +11,31 @@ public static class Api
|
||||
|
||||
public static IServiceCollection AddAuthentic(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var configSection = configuration.GetSection(nameof(AuthentikSettings));
|
||||
|
||||
var authOptions = new AuthentikSettings();
|
||||
configSection.Bind(authOptions);
|
||||
|
||||
configuration.GetSection("Authentik").Bind(authOptions);
|
||||
|
||||
services.Configure<AuthentikSettings>(configuration.GetSection(nameof(AuthentikSettings)));
|
||||
services.Configure<AuthentikSettings>(configSection);
|
||||
|
||||
services.AddAuthentication(OAuth2IntrospectionDefaults.AuthenticationScheme)
|
||||
.AddOAuth2Introspection(options =>
|
||||
.AddOAuth2Introspection(OAuth2IntrospectionDefaults.AuthenticationScheme, options =>
|
||||
{
|
||||
options.Authority = options.Authority;
|
||||
options.ClientId = options.ClientId;
|
||||
options.ClientSecret = options.ClientSecret;
|
||||
options.Authority = authOptions.Authority;
|
||||
options.ClientId = authOptions.ApiResourceName;
|
||||
options.ClientSecret = authOptions.ApiResourceSecret;
|
||||
|
||||
options.DiscoveryPolicy.RequireHttps = authOptions.RequireHttpsMetadata;
|
||||
options.EnableCaching = true;
|
||||
options.CacheDuration = TimeSpan.FromMinutes(10);
|
||||
});
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(authOptions.RequiredClaimName) && !string.IsNullOrWhiteSpace(authOptions.RequiredClaimNameValue))
|
||||
services.AddAuthorizationBuilder().AddPolicy("ApiScope", policy =>
|
||||
{
|
||||
services.AddAuthorizationBuilder()
|
||||
.AddPolicy("ApiScope", policy =>
|
||||
policy.RequireClaim(authOptions.RequiredClaimName, authOptions.RequiredClaimNameValue));
|
||||
}
|
||||
else
|
||||
services.AddAuthorization();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user