Можно ли изменить перенаправленный URI для приложения-функции Azure с помощью проверки подлинности службы приложений, доступ к которой осуществляется через конечную точку управления API?

У меня есть существующее приложение-функция Azure, настроенное с использованием аутентификации службы приложений с помощью AAD. При прямом доступе к веб-сайту службы приложений xxx.azurewebsites.net/xxx мне предлагается войти в систему, а при входе в систему выполняется перенаправление обратно на xxx.azurewebsites.net страницу.

Однако с тем же приложением-функцией, доступ к которому осуществляется через конечную точку APIM, я загружаю сайт xxx.azure-api.net/xxx, получаю запрос на вход, а затем перенаправляюсь обратно на страницу azurewebsites.net, а не на страницу azure-api.net.

Есть ли способ настроить это перенаправление? Я установил URI перенаправления в колонке «Аутентификация» регистраций приложений, однако это не имело никакого значения.

Дополнительная информация:

  • В первоначальном ответе 401 я вижу исходный URL-адрес в заголовках WWW-Authenticate Bearer realm="xxx.azurewebsites.net/xxx" ...



Ответы (1)


Нет, мы не можем настроить запрос на перенаправление на azure-api.net после входа в систему.

Что нам нужно знать, так это то, что если мы используем AD для защиты приложения-функции, он будет перенаправлять на страницу входа, когда мы запрашиваем URL-адрес функции. И после входа в систему он перенаправит обратно на URL-адрес функции и продолжит выполнение запроса.

Когда вы используете APIM для доступа к функции, APIM является просто интерфейсом. То же самое и с шагами выше после того, как вы запросите APIM api для доступа к функции. Таким образом, он не будет перенаправлять на azure-api.net, это сделано намеренно.

person Hury Shen    schedule 02.02.2021
comment
Спасибо за ответ, я смог изменить перенаправление, используя эту политику при первоначальном ответе. `` ‹Set-header name = location exists-action = override› ‹value› @ (context.Response.Headers.GetValueOrDefault (location,). Replace (context.Request.Url.Host, context.Request.OriginalUrl.Host )) ‹/Value› ‹/set-header› `` У меня все еще были другие проблемы, которые, я думаю, связаны с тем, что это противоречит дизайну, как вы указали. Решил сейчас использовать другой подход. - person kurtmkurtm; 05.02.2021