В настоящее время мы работаем с нашим веб-API, используя службу приложений Azure. До сих пор аутентификация не использовалась и не требовалась. Теперь мы хотели бы добавить аутентификацию для одного нового метода.
Встроенная аутентификация Azure описана здесь . Поскольку мы хотим, чтобы данные запрашивались другим сервером (не работающим в Azure) без взаимодействия с пользователем, решение для сервера-демона считается . Чтобы это работало, необходимо создать регистрацию приложения для приложения-демона в Azure AD и отредактировать приложение, созданное встроенной аутентификацией для веб-API.
Необходим следующий код, который требует нескольких пакетов NuGet.
public void Configuration(IAppBuilder app)
{
ConfigureAuth(app);
}
private void ConfigureAuth(IAppBuilder app)
{
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Tenant = <tenant>,
TokenValidationParameters = new TokenValidationParameters
{
ValidAudience = <API address>
}
});
}
Есть ли способ объединить эти два подхода и иметь сервер deamon, который получает токен JWT, используя свою регистрацию в Azure AD (этот бит у нас есть), и этот токен проверяется встроенной аутентификацией (без использования код выше) службы приложений?
С кодом выше все работает, но после его удаления токен JWT демона не распознается. В обоих случаях (с / без кода) можно вручную войти с помощью встроенной аутентификации на <appAddress>/.auth/login/aad
. Описана встроенная аутентификация для работы с токенами JWT, но она не работает.