Я пытаюсь обернуть голову тем, как защитить ресурсы веб-API с помощью Azure Active Directory. В настоящее время у меня есть угловое приложение, которое перенаправляет пользователя на страницу входа в Azure AD и возвращает id_token взамен. Этот токен идентификатора используется в последующих вызовах как токен-носитель, и, похоже, он работает. Мой вопрос здесь.Аутентификация на предъявителя Windows Azure Active Directory
public void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = ConfigurationManager.AppSettings["ida:ClientId"],
ValidateIssuer = true
},
Tenant = ConfigurationManager.AppSettings["ida:TenantId"]
});
}
Похоже, что здесь мы проводим проверку маркера-носителя. Я действительно не понимаю, как это работает. Является ли связь с Azure AD при каждом вызове API? Если да, то это идеальный подход (с точки зрения производительности)? Если нет, как это мешает кому-то просто создать свой собственный токен и взломать API?
Я уверен, что есть некоторые важные знания, которые мне не хватает, чтобы понять это, поэтому, если у вас есть какие-либо ресурсы, которые я должен прочитать, чтобы лучше понять это, пожалуйста, предложите.
Спасибо!