Аутентификация между сервисами с управляемой идентификацией в Azure - PullRequest
0 голосов
/ 25 апреля 2020

Из моей функции Azure Я пытаюсь получить доступ к конечной точке API другой пользовательской службы, которая была зарегистрирована как приложение в azure. У меня включена управляемая идентификация для моей функции azure. Я использую следующий код для получения токена:

var tokenIssuerAddress = @"uriOfServiceThatImTryingToConsume";
var tokenProvider = new AzureServiceTokenProvider("RunAs=App");
var accessToken = await tokenProvider.GetAccessTokenAsync(tokenIssuerAddress);

Этот кажется нормальным, так как я получаю токен на предъявителя. Но когда я затем пытаюсь вызвать саму службу с токеном:

using (var client = new HttpClient())
{
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", $"{accessToken}");
    var response = await client.GetAsync($"{uriOfServiceThatImTryingToConsume}{path}");
}

, я получаю 200 OK, но ответом является страница HTML, которая начинается со следующего:

<!-- Copyright (C) Microsoft Corporation. All rights reserved. -->
<!DOCTYPE html>
<html dir="ltr" class="" lang="en">

<head>
    <title>Sign in to your account</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes">
    <meta http-equiv="Pragma" content="no-cache">
    <meta http-equiv="Expires" content="-1">
    <link rel="preconnect" href="https://aadcdn.msftauth.net" crossorigin>
    <meta http-equiv="x-dns-prefetch-control" content="on">
    <link rel="dns-prefetch" href="//aadcdn.msftauth.net">
    <link rel="dns-prefetch" href="//aadcdn.msauth.net">

Почему я получаю страницу входа HTML в качестве ответа, когда использую токен на предъявителя, который получил? Я пропускаю шаг?

1 Ответ

0 голосов
/ 28 апреля 2020

Предполагая, что токен на предъявителя, который вы получаете, является действительным и того, что вы ожидаете (вы всегда можете декодировать его, чтобы увидеть его утверждения), тогда вам нужно предоставить более подробную информацию о специфике c услуга, которую вы звоните. Возможно, что для службы требуется 2FA или другая политика проверки подлинности, которая не соответствует вашему токену-носителю, и, следовательно, перенаправляет ее для продолжения проверки подлинности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...