Проверка подлинности AAD с получением токена доступа

#authentication #azure-active-directory #azure-authentication

#проверка подлинности #azure-active-directory #azure-проверка подлинности

Вопрос:

Я пытаюсь получить токен доступа для пользователей powerbi, перейдя по этой ссылке — https://learn.microsoft.com/en-us/power-bi/developer/automation/walkthrough-push-data-get-token

Но я получаю сообщение об ошибке в этой строке кода

 var token = authContext.AcquireTokenAsync(resourceUri, clientID, new Uri(redirectUri)).Result.AccessToken;
  

Ошибка:

Не удается преобразовать идентификатор clinetID из ‘string’ в ‘microsoft.identitymodel.clients.activedirectory.clientcredential’

новый Uri (redirectUri) = не удается преобразовать из ‘System.uri’ в ‘microsoft.identitymodel.clients.activedirectory.Пользователь ‘

Код для получения токена доступа:

 using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
using System.Threading.Tasks;

namespace Service
{
    public class PowerbiService
    {
        private static string token = string.Empty;

        static void Main(string[] args)
        {

            //Get an authentication access token
            token = GetToken();

        }
        #region Get an authentication access token
        private static async Task<string> GetToken()
       {
        string clientID = "{Client_ID}";

            string redirectUri = "https://login.live.com/oauth20_desktop.srf";

           string resourceUri = "https://analysis.windows.net/powerbi/api";

           string authorityUri = "https://login.microsoftonline.net/common/";

           AuthenticationContext authContext = new AuthenticationContext(authorityUri);
           var token = authContext.AcquireTokenAsync(resourceUri, clientID, new Uri(redirectUri)).Result.AccessToken;

           Console.WriteLine(token);
           Console.ReadLine();

           return token;
       }

       #endregion
    }
}

  

Комментарии:

1. Похоже, что уже есть проблема с образцом, пожалуйста, обратитесь к этой проблеме GitHub

2. Не могли бы вы сказать мне, какой поток аутентификации вы хотите знать?

3. Вы запускаете код в консольном приложении?

4. @JimXu Я пытаюсь запустить это в функции Azure.

5. @bippan В соответствии с предоставленным вами кодом вам необходимо открыть окно для ввода имени пользователя и пароля. Но функция Azure неинтерактивная служба, она не может открыть для вас окно. Я предлагаю вам закодировать имя пользователя и пароль в вашем приложении; github.com/AzureAD/azure-activedirectory-library-for-dotnet /.