Как получить доступ к веб-API из другого веб-приложения, которое находится в том же Azure AD?
Я разместил один веб-API ProductInfo
на azure and register that application into Azure AD.
у меня есть другой web app UIProduct
и это веб-приложение want to access the web api ProductInfo
оба находятся в одном домене и в одном и том же Azure AD.
Как я могу получить доступ к веб-API ProductInfo
от web app UIProduct
? есть ли токен, который мне нужно сгенерировать снова?
Любой пример кода будет полезен. Пример кода взят по этой ссылке
После успешного входа я нахожусь на домашней странице, затем я нажимаю на странице, где я пишу это
public async System.Threading.Tasks.Task<ActionResult> About()
{
AuthenticationResult result = null;
string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, new NaiveSessionCache(userObjectID));
ClientCredential credential = new ClientCredential(clientId, clientSecret);
result = await authContext.AcquireTokenSilentAsync("App ID URI", credential, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://demotest.azurewebsites.net/api/getdata");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
HttpResponseMessage response = await client.SendAsync(request);
получение исключения - "Не удалось получить токен в автоматическом режиме, так как токен не был найден в кэше. Вызвать метод AcquireToken"
1 ответ
Вам нужно зарегистрировать оба приложения на портале Azure как веб-приложения /API.
Затем в вашем веб-API установите App ID URI
а также создавать любые области видимости, которые вы хотели бы выставить. Если это единственный клиент, который вы будете использовать, вы можете просто иметь Access
охват, но имейте в виду, это то, что конечные пользователи увидят, соглашаясь на ваше приложение.
В своем веб-приложении вы сможете установить Required Permissions
для этого нового веб-API и области. Это указывает на то, что клиенту необходимо получить согласие на использование этого веб-API, и ему могут быть предоставлены маркеры доступа.
Этот пример кода описывает именно этот сценарий.
Документ по основам веб-API также охватывает некоторую концептуальную информацию, относящуюся к этому сценарию.