Não foi possível obter o token do portador do Azure AD para usar com o API App

Eu tenho um aplicativo MVC que precisa acessar o aplicativo API privado no Azure protegido com autenticação do Azure AD. Portanto, preciso obter o token de portador do Azure AD, transferi-lo paraZumo-Auth token e use-o para acessar o aplicativo API.

Eu estou passandoeste tutorial e tudo está funcionando bem até o momento em que preciso solicitar o token deauthContext. Aqui está o trecho de um código:

var authContext = new AuthenticationContext(
    "https://login.microsoftonline.com/MyADDomain.onmicrosoft.com");

ClientCredential credential = new ClientCredential(
    "04472E33-2638-FAKE-GUID-F826AF4928DB", 
    "OMYAPIKEY1x3BLAHEMMEHEHEHEHEeYSOMETHINGRc=");

// Get the AAD token.
var appIdUri = 
    "https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad";

//var appIdUri = "https://MyADDomain.onmicrosoft.com/MyAppName";
//var appIdUri = "https://MyADDomain.onmicrosoft.com/";
//var appIdUri = "https://graph.windows.net";

AuthenticationResult result = 
    authContext.AcquireToken(appIdUri, credential); // <-- can't get the token from AD

// downhill from here
var aadToken = new JObject();
aadToken["access_token"] = result.AccessToken;
var appServiceClient = new AppServiceClient(
    "https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/");

// Send the AAD token to the gateway and get a Zumo token
var appServiceUser = await appServiceClient.LoginAsync("aad", aadToken);

A linha comauthContext.AcquireToken(appIdUri, credential) é o que está causando problemas.

Como seappIdUri eu douhttps://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad, Recebo exceção:

400: AdalServiceException: AADSTS50001: Recurso 'https://MyAppGateway-814485545465FAKE4d5a4532cd.azurewebsites.net/login/aad'não está registrado para a conta.

Mas essa linha exata está na lista deReply Url no aplicativo AD

Quando tento usarhttps://MyADDomain.onmicrosoft.com/MyAppName ouhttps://MyADDomain.onmicrosoft.com/ ComoappIdUri Recebo uma mensagem de exceção diferente:

400: AdalServiceException: AADSTS50105: O aplicativo '04472E33-2638-FAKE-GUID-F826AF4928DB' não está atribuído a uma função do aplicativo 'https://MyADDomain.onmicrosoft.com/MyAppName'

Ou

400: AdalServiceException: AADSTS50105: O aplicativo '04472E33-2638-FAKE-GUID-F826AF4928DB' não está atribuído a uma função do aplicativo 'https://MyADDomain.onmicrosoft.com/'

Nos dois casos, tive aApp ID URI no aplicativo AD definido como "https://MyADDomain.onmicrosoft.com/MyAppName'ou'https://MyADDomain.onmicrosoft.com/' E os dois nomes na lista deReply URL.

Eventualmente, depois de várias tentativas eu coloqueihttps://graph.windows.net ComoappIdUri e recuperou o token do portador. Mas o token foi fornecido com data de validade no passado (cerca de 1 minuto no passado). Então não pude fazer mais nada com isso. E pegou401-Unauthenticated quando tentou usar o token para fazer login no API App.

o que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion