ASP.NET Core 5 с ASP.NET Identity 3.0, я использую как веб-страницы, так и apis. Я использую OpenIddict для выдачи маркера JWT и для аутентификации. Мой код выглядит так:Авторизовать через токен JWT
X509Certificate2 c = new X509Certificate2(@"tokensign.p12", "MyCertificatePassword");
services.AddOpenIddict<WebUser, IdentityRole<int>, WebDbContext, int>()
.EnableTokenEndpoint("/api/customauth/login")
.AllowPasswordFlow()
.UseJsonWebTokens()
.AddSigningCertificate(c);
Если отключить UseJsonWebTokens(), я могу генерировать маркер и авторизации успешно. Однако я не уверен, что мой сертификат проверяет возвращаемые токены.
И когда включено UseJsonWebTokens, я могу выпустить токен JWT в этой конечной точке. Однако я не могу аутентифицировать какой-либо запрос!
Я использую следующий код в конфигурации приложения:
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
RequireHttpsMetadata = false,
Authority = "http://localhost:60000/",
Audience = "http://localhost:60000/",
});
app.UseOAuthValidation();
app.UseIdentity();
app.UseOpenIddict();
app.UseMvcWithDefaultRoute();
- Как я могу принудить запрос быть подтвержден с моим сертификатом, чтобы убедиться, что маркер JWT не подделан.
- Каковы правильные настройки, которые позволят проверить и авторизировать мой токен JWT, учитывая, что, если я не использую JWT, я получаю разрешение успешно.
Пожалуйста, не ставьте теги под вопрос! http://stackoverflow.com/help/tagging – Tseng