Функция Azure с аутентификацией в Dynamic 365 — Не удалось загрузить тип ‘System.Безопасность.Cryptography.SHA256Cng’

#c# #azure #function #authentication

#c# #azure #функция #аутентификация

Вопрос:

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

 var requestedToken = authenticationResult.Result.AccessToken;
  

При генерации возникла проблема idOne или произошло несколько ошибок. (Не удалось загрузить тип System.Security.Cryptography.SHA256Cng из сборки System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 )

 var aadInstance = "https://login.microsoftonline.com/";

string api = "https://interconservicesdev.crm.dynamics.com/api/data/v9.1";

AuthenticationParameters ap = AuthenticationParameters.CreateFromUrlAsync(
    new Uri(api)).Resu<

string organizationUrl = "https://interconservicesdevdev.crm.dynamics.com";
string clientId = "SOME_CLIENT_ID";
string secertKey = "SOME_SECRET_KEY";
string tenantId = "SOME_TENANT_ID";

log.Info("Organization Url : "   organizationUrl);
log.Info("Client Id : "   clientId);
log.Info("Client Key : "   secertKey);
log.Info("Tenant Id : "   tenantId);

var clientcred = new ClientCredential(clientId, secertKey);
string combineString = aadInstance   tenantId;
log.Info("Combine String : "   combineString);

var authenticationContext = new AuthenticationContext(combineString, false);

log.Info("Authority : "   authenticationContext.Authority);

//AuthenticationContext authenticationContext = new AuthenticationContext(authority, false);

var authenticationResult = authenticationContext.AcquireTokenAsync(organizationUrl, clientcred);
log.Info("Authentication Result : "   authenticationResult.IsCompleted   " "   authenticationResult.Id);

var requestedToken = authenticationResult.Result.AccessToken;
log.Info("Requested Token : "   requestedToken);

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

service = new OrganizationWebProxyClient(GetServiceUrl(organizationUrl), new TimeSpan(0, 180, 0), false);
log.Info("Service : "   service.SdkClientVersion);
service.HeaderToken = requestedToken;

log.Info("Header Token : "   requestedToken);
  

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

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

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

1. Привет, Роберт! Я настоятельно рекомендую вам отредактировать идентификаторы / ключи наших ваших сообщений и повернуть те, которые вы отобразили здесь.

2. Привет, SamaraSoucy, спасибо за ответ. Я не понимаю, что вы имеете в виду, поворачивая их. Ключ и идентификатор — это не то, что я добавил к этому сообщению.

3. В разделе Сертификаты и секреты находится доступ к вашим ключам на портале Azure. Удаление отображаемого здесь и создание нового предотвратит вредоносное использование. Рекомендуется менять ключи по расписанию или «поворачивать» их в качестве превентивной меры. Если это не настоящий секрет, тогда все в порядке. 🙂

4. У меня такая же проблема для точно такого же сценария, хотя я не могу выполнить развертывание из VisualStudio из-за ограничений безопасности организации. Любая помощь для решения проблемы с портала Azure?

Ответ №1:

Мне удалось решить мою проблему при переходе с версии 2017 на 2019.