Я пробую OpenIddict 3.0 для использования в приложении единого входа. Я выполнил действия, описанные в документации, создал контроллер Authorize и добавил тестовое приложение. Когда я пытаюсь подключиться для авторизации, я получаю следующее исключение:
System.InvalidOperationException: запрос на авторизацию не был обработан. Для обработки запросов на авторизацию создайте класс, реализующий IOpenIddictServerHandler, и зарегистрируйте его, используя services.AddOpenIddict (). AddServer (). AddEventHandler () '.
В качестве альтернативы, включите сквозной режим для их обработки на более поздней стадии. .
Я не могу найти в документации или примерах приложений ничего, что объясняет, что это значит. Чего мне не хватает?
Вот мой код. В Startup.cs
:
services.AddOpenIddict()
.AddCore(o =>
{
o.UseEntityFrameworkCore().UseDbContext<ApplicationDbContext>();
})
.AddServer(o =>
{
o.SetTokenEndpointUris("/connect/token");
o.SetAuthorizationEndpointUris("/connect/authorize");
o.AllowAuthorizationCodeFlow();
o.RegisterScopes(OpenIddictConstants.Scopes.Email);
o.AcceptAnonymousClients();
o.AddDevelopmentEncryptionCertificate()
.AddDevelopmentSigningCertificate();
o.UseAspNetCore()
.EnableTokenEndpointPassthrough()
.DisableTransportSecurityRequirement();
})
.AddValidation(o =>
{
o.UseLocalServer();
o.UseAspNetCore();
});
И описание тестового приложения:
var descriptor = new OpenIddictApplicationDescriptor
{
ClientId = "test-app",
DisplayName = "Test Application",
PostLogoutRedirectUris = { new Uri("https://oidcdebugger.com/debug") },
RedirectUris = { new Uri("https://oidcdebugger.com/debug") }
};
Я тестирую с отладчиком OpenID Connect .