Как получить доступ к веб-API из другого веб-приложения, которое находится в том же Azure AD? - PullRequest
0 голосов
/ 09 октября 2018

Я разместил один веб-интерфейс 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 Ответ

0 голосов
/ 09 октября 2018

Вам нужно зарегистрировать оба приложения на портале Azure в качестве веб-приложений / API.

Затем в своем веб-API установите App ID URI, а также создайте любые области, которые вы хотите выставить.Если это единственный клиент, который вы будете использовать, вы можете иметь только область действия Access, но имейте в виду, что именно это увидят конечные пользователи при согласии на ваше приложение.

В вашемвеб-приложение, тогда вы сможете установить Required Permissions для этого нового веб-API и области.Это указывает на то, что клиент должен получить согласие на использование этого веб-API, и ему могут быть предоставлены маркеры доступа.

Этот пример кода описывает именно этот сценарий.

Основы веб-API документ также охватывает некоторую концептуальную информацию, относящуюся к этому сценарию

...