#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 /. …