Доступ из функции Azure к службам анализа Azure с использованием управляемой идентификации и входа на основе токенов

#azure #azure-functions #azure-analysis-services #azure-managed-identity

#azure #azure-функции #azure-analysis-services #azure-managed-identity

Вопрос:

Мы пытаемся получить доступ из функции Azure (.Net 4.8) к службам Azure Analisys Services, используя управляемую идентификацию, чтобы получить действительный токен и пройти аутентификацию в AAS.

Это код, который мы используем:

 private static string GetToken()
{
            return new AzureServiceTokenProvider().GetAccessTokenAsync($"https://{ConfigurationManager.AppSettings["AASSRegion"]}.asazure.windows.net", ConfigurationManager.AppSettings["TenantId"]).Resu<
}

private static string GetConnectionString()
{
            return $"Provider=MSOLAP;"  
                $"Data Source=asazure://{ConfigurationManager.AppSettings["AASSRegion"]}.asazure.windows.net/{ConfigurationManager.AppSettings["AASSName"]}:rw;"  
                $"Initial Catalog=Example;"  
                $"Password={GetToken()};"  
                $"Persist Security Info=True;"  
                $"Impersonation Level=Impersonate";
}
  

После выполнения мы получаем действительный токен и генерируем действительную строку подключения, но когда мы пытаемся подключиться к AAS, мы получаем следующую ошибку 500:

Либо пользователь, ‘app:appid@tenantid ‘, не имеет доступа к базе данных ‘Example’, или база данных не существует

(В сообщении об ошибке указаны правильные идентификаторы приложения и клиента)

Управляемая идентификация разрешена в AAS, а ключи «AASRegion», «AASName» и «TenantId» хорошо настроены.

Appid имеет права администратора в роли AAS и участника RBAC.

Чего нам не хватает? Возможно ли подключиться к AAS с использованием управляемой идентификации?

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

1. Пожалуйста, обратитесь к статье: endjin.com/blog/2020/02 /…

2. Спасибо @JimXu, это статья, которую мы прочитали для реализации нашего решения.

Ответ №1:

Решаемая: проблема заключалась в том, что в AAS мы добавляем идентификатор объекта управляемой идентификации вместо идентификатора приложения. Вы можете увидеть оба в корпоративном приложении:

введите описание изображения здесь