Один из источников данных для этой службы приложений находится в другой службе приложений в том же клиенте Azure. Назовем это Legacy
Я решил раскрыть некоторые функциональные возможности Legacy, которые я предоставляю через API, который я для этой цели мы добавили: Legacy API.
Поэтому Legacy API может вызываться только нашей командой разработчиков (для тестирования и для устранения неполадок) и Shiny API. Его абоненты являются «доверенными».
В старом мире я бы настроил IIS на использование проверки подлинности Windows, используя учетную запись, управляемую группой. Эквивалентом Azure является управляемое удостоверение, назначаемое системой.
Я думаю, что клиентский код в Shiny API должен быть примерно таким, но я не могу найти правильный способ настройки Legacy API
Код: Выделить всё
// In Shiny API.
// Used to authenticate to Legacy API
private async Task Authenticate(HttpClient httpClient)
{
var NcoLegacyApiApplicationId = "";
var creds = new DefaultAzureCredential();
var token = await creds.GetTokenAsync(new TokenRequestContext(new[] { NcoLegacyApiApplicationId }));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Token);
}
Я попробовал несколько вещей, но они ни к чему не привели:
- Нужно ли мне что-то делать что-то в коде Legacy API, или я могу сделать это с помощью конфигурации только?
- Я настроил поставщика удостоверений Microsoft для проверки подлинности. Но здесь я могу добавлять только пользователей активного каталога; идентификатор, назначенный системой Shiny API, там был недоступен. Как авторизовать Shiny API?
- Я также создал регистрацию для устаревшего приложения. Необходимо ли это?
- Решит ли что-нибудь использование gRPC вместо REST?
Подробнее здесь: https://stackoverflow.com/questions/733 ... vice-using