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