У меня есть веб-сайт ASP.NET MVC 5 с интерфейсом, который аутентифицирует пользователей через AD FS 3.0 с использованием протокола WS-Federation. Пользователи регистрируются на странице входа в систему ACS, и все работает хорошо с этой целью.Приложение WebAPI с использованием OWIN и JWT
My backend - это приложение WebAPI, которое вызовет интерфейс. Они являются отдельными областями, но оба должны пройти аутентификацию на том же сервере AD FS. Разница заключается в том, что я хотел бы, чтобы проект WebAPI использовал токены JWT для аутентификации.
Вот WebAPI запуска:
var thumbprint = "** omitted on purpose for internet eyes... **";
certificateStore = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine);
certificateStore.Open(OpenFlags.ReadOnly);
var certificate = certificateStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false)[0];
certificateStore.Close();
var accessTokenFormat = new JwtFormat
(
// AllowedAudiences:
new[] { "urn:MySolution.WebAPI" },
//IssuerSecurityTokenProviders:
new IIssuerSecurityTokenProvider[]
{
new X509CertificateSecurityTokenProvider("https://myAdfsServer.com/adfs/oauth2/", certificate)
}
);
app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions
{
AccessTokenFormat = accessTokenFormat
});
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Active,
AccessTokenFormat = accessTokenFormat
});
Что я здесь отсутствует? Я готов много статей об этом, и каждый кажется близким, но просто что-то не хватает. Любая помощь чрезвычайно ценится.
EDIT 1: Из того, что я прочитал, JWT не является механизмом аутентификации. Итак, как мне аутентифицировать пользователей в моем WebAPI? В моем сценарии пользователи уже прошли аутентификацию во внешнем интерфейсе с использованием входа в ACS, однако бэкэнд вызывается интерфейсом, так что в этом случае не было бы входа в систему с помощью единого входа из AD FS?