-
Notifications
You must be signed in to change notification settings - Fork 54
Description
Describe the feature request?
The default configuration needed to initialize an API (or web) application can be reduced/simplified for basic use cases.
OktaWebApiOptionsshould allow the caller to set theIssuerinstead of requiring both theOktaDomainand theAuthorizationServerId(this could be done backward compatible and not affect existing users).
NOTE: Okta's API quick start guides will be using the
Issuerinstead of the Okta Domain.
-
Configurationparameters should be parsed from known configuration keysOkta:OktaDomain,Okta:AuthorizationServerId,Okta:Issuer, etç. automatically when possible. -
Consider adding a util method to configure the
AuthenticationOptionsas a single line.
For example, the current quick start looks similar to this:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultSignInScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddOktaWebApi(new OktaWebApiOptions(Configuration)
{
OktaDomain = Configuration["Okta:OktaDomain"]
});
services.AddAuthorization();This requires the developer to understand a number of things to configure the framework correctly.
Ideally, we could do something like:
services.AddAuthentication(options =>
{
Okta.AddAuthentication(options); // some sort of helper method
})
.AddOktaWebApi(new OktaWebApiOptions(Configuration)); // add a `OktaWebApiOptions` constructor to parse the config
services.AddAuthorization();If possible... we could reduce this even further to something like:
public void ConfigureServices(IServiceCollection services)
{
Okta.ConfigureApiServices(services, new OktaWebApiOptions(Configuration));
}This last option may make it too "magical" and more difficult to figure out the touchpoints when a developer needs to configure other authentication/authorization options?
NOTE: Take this all with a grain of salt 🧂, as I'm not sure what the equivalent idiomatic csharp would be.
.NET Version
💯
Provide a documentation link if applicable
No response
Additional Information?
No response