Может кто-нибудь объяснить создание и проверку токена OAuth2 JWT в .Net Core?Настройка OAuth2 JWT-токен для ADFS и .Net Core
ответ
Сначала вам необходимо настроить ADFS с идентификатором клиента и URL-адресом перенаправления, а затем получить токен JWT с сервера ADFS. Увидеть этот пост http://blog.scottlogic.com/2015/03/09/OAUTH2-Authentication-with-ADFS-3.0.html
После этого, если вы используете .Net Сердечник с JWT Носителем Знака вам необходимо сертификата подписи экспорта ADFS с помощью следующих команд Powershell:
$certRefs=Get-AdfsCertificate -CertificateType Token-Signing $certBytes=$certRefs[0].Certificate.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert) [System.IO.File]::WriteAllBytes("c:\foo.cer", $certBytes)
Затем в .Net начать ядро приложения, вы должны использовать пакет, Microsoft.AspNetCore.Authentication.JwtBearer и посмотреть на этот пост http://andrewlock.net/a-look-behind-the-jwt-bearer-authentication-middleware-in-asp-net-core/
код в Запускают классе: var signingKey = new X509SecurityKey(new System.Security.Cryptography.X509Certificates.X509Certificate2("YOUR-PATH/foo.cer"));
var tokenValidationParameters = new TokenValidationParameters
{
// The signing key must match!
ValidateIssuerSigningKey = true,
IssuerSigningKey = signingKey,
// Validate the JWT Issuer (iss) claim
ValidateIssuer = true,
ValidIssuer = "http://YOUR-ADFS/adfs/services/trust",
// Validate the JWT Audience (aud) claim
ValidateAudience = true,
ValidAudience = "https://YOUR-AUDIENCE/",
// Validate the token expiry
ValidateLifetime = true,
// If you want to allow a certain amount of clock drift, set that here:
ClockSkew = TimeSpan.Zero
};
app.UseJwtBearerAuthentication(new JwtBearerOptions
{
AutomaticAuthenticate = true,
AutomaticChallenge = true,
TokenValidationParameters = tokenValidationParameters
});
Пожалуйста, проверьте это ниже, ссылка поможет вам, но процедура такая же.
https://www.codeproject.com/Articles/1080899/How-to-get-Jwt-token-for-Logged-On-User-or-Applica
OAuth2 Авторизация Provider 1.0.0 NuGet пакет имеет метод (ValidateToken) для подтверждения заданного JWT маркеров, но он имеет зависимость сертификата (провайдер).
Установить сертификат в соответствии с доверенным корнем локального компьютера, который является вашим сертификатом adfs.
Пакет Nuget будет удостоверяющим личность установленным сертификатом на основе SubjectKeyIdentifier.