Я реализую OAuth 2.0 для веб-api. Изначально единственным типом предоставления, который я бы хотел разрешить, является «пароль» для типа гранта для владельца ресурса. В будущем я могу расшириться до других типов субсидий на акции и даже создавать собственные. Чтобы реализовать, я создал в своем классе Startup.cs код ниже. Я не указываю конечную точку авторизации, а только конечную точку маркера.Настройка разрешенных типов грантов с помощью OAuthAuthorizationServer
public partial class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
public void ConfigureAuth(IAppBuilder app)
{
var myOAuthServerProvider = new MyOAuthServerProvider();
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
{
// mark true if you are not on https channel. This should never be true for Production.
AllowInsecureHttp = true,
//Enable a 60 minute expiration time.
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(60),
// Allows the authorization server to alter the response coming out so it can report a 401.
AuthenticationMode = AuthenticationMode.Active,
// Provider needs to be the custom class that performs our authentication.
Provider = myOAuthServerProvider,
// This specifies the endpoint path where you can generate a token.
TokenEndpointPath = new PathString("/api/token"),
});
}
}
Для класса MyOAuthServerProvider, я должен наследоваться от OAuthAuthorizationServerProvider и переопределить конкретные методы только позволяют типы грантов, которые я хочу, чтобы включить, или я должен быть вместо реализации MyOAuthServerProvider из интерфейса IOAuthAuthorizationServerProvider с нуля?
Спасибо! Должен ли я также переопределять GrantAuthorizationCode, GrantClientCredentials и GrantCustomExtension, чтобы либо выбросить исключение, либо вернуть что-то конкретное, чтобы предотвратить использование этих типов грантов? – tarun713
Ничего, просто увидели в документах, что поведение этих функций по умолчанию заключается в том, чтобы отклонить тип гранта. Я приму свой ответ. – tarun713
Есть ли способ установить 'grant_type' программно, а не передавать API? –