Azure Identity выдает ошибку 401 при использовании CSOM в Visual Studio ⇐ C#
Azure Identity выдает ошибку 401 при использовании CSOM в Visual Studio
У меня есть веб-задание Azure .NET Core 6 для создания новых сайтов MS Teams и SharePoint Online. При выполнении он сначала создает запись журнала в списке SharePoint, чтобы мы могли отслеживать состояние запроса. Я аутентифицируюсь с помощью пакета Azure Identity (DefaultAzureCredential):
public async Task GetClientContext (строка siteUrl, ILogger logger = null) { logger?.LogInformation($"Пытаемся получить новый токен для создания контекста для {siteUrl}"); вар _tenantUrl = новый Uri(siteUrl).GetLeftPart(UriPartial.Authority); // Настраиваем прослушиватель для мониторинга зарегистрированных событий. использование прослушивателя AzureEventSourceListener = AzureEventSourceListener.CreateConsoleLogger(); var tokenCredential = новый DefaultAzureCredential( новый DefaultAzureCredentialOptions() { ExcludeEnvironmentCredential = true, ExcludeManagedIdentityCredential = true, ExcludeSharedTokenCacheCredential = true, ExcludeVisualStudioCredential = true, ExcludeVisualStudioCodeCredential = true, ExcludeAzureCliCredential = true, ExcludeAzurePowerShellCredential = true, ExcludeInteractiveBrowserCredential = ложь, Диагностика = { IsLoggingEnabled = правда, IsLoggingContentEnabled = правда, } } ); var _accessToken = ожидайте tokenCredential.GetTokenAsync( новый TokenRequestContext(области: новая строка[] { $"{_tenantUrl}/.default" }) { } ); вар AuthenticationManager = новый AuthenticationManager (); var _clientContext = authenticationManager.GetAccessTokenContext(siteUrl, _accessToken.Token); вернуть _clientContext; } В целях тестирования я использую интерактивный вход в браузер. Я вхожу в систему под своей учетной записью администратора, у которой есть активная роль администратора SharePoint (которая была активирована через PIM). Я также добавил дополнительное ведение журнала, чтобы попытаться выяснить, что происходит, но, похоже, токен извлекается правильно:
[Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68 -611880beb898] Проверка информации о клиенте, возвращаемой с сервера.. [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Сохранение ответа токена кэшировать.. [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [Обнаружение региона] ] Не использовать региональную власть. [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение AT в кеше и удаление перекрывающихся AT... [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Поиск областей для полномочий в кеше, которые пересекаются с https://.sharepoint.com/.default [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Пересекающиеся записи области кол-во - 1 [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Соответствующие записи после фильтрация по пользователю - 1 [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение токена идентификатора и учетной записи в кеше... [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение RT в кэше... [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] IsLegacyAdalCacheEn в состоянии: да [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Не пишет FRT в устаревшем кэше ADAL. [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] === Получение токена успешно завершено: [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Срок действия AT : 20.09.2023 16:35:07 +00:00, области действия: https://.sharepoint.com/user_impersonation https://.sharepoint.com/.default. источник: IdentityProvider [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Полученный токен доступа с хоста login.microsoftonline.com. [Информационный] Azure-Identity: InteractiveBrowserCredential.GetToken выполнен успешно. Области: [ https://.sharepoint.com/.default ] ParentRequestId: ExpiresOn: 2023-09-20T16:35:07.2740536+00:00 [Информационный] Azure-Identity: выбраны учетные данные DefaultAzureCredential: Azure.Identity.InteractiveBrowserCredential. [Информационный] Azure-Identity: DefaultAzureCredential.GetToken выполнен успешно. Области: [ https://.sharepoint.com/.default ] ParentRequestId: ExpiresOn: 2023-09-20T16:35:07.2740536+00:00 Я не понимаю, что получаю сообщение об ошибке, как только выполняю запрос CSOM, например:
private void UpdateListItem() { если (ListItem!= ноль) { //... установка значений полей СписокЭлемент.Обновление(); Контекст.ВыполнитьЗапрос(); //
У меня есть веб-задание Azure .NET Core 6 для создания новых сайтов MS Teams и SharePoint Online. При выполнении он сначала создает запись журнала в списке SharePoint, чтобы мы могли отслеживать состояние запроса. Я аутентифицируюсь с помощью пакета Azure Identity (DefaultAzureCredential):
public async Task GetClientContext (строка siteUrl, ILogger logger = null) { logger?.LogInformation($"Пытаемся получить новый токен для создания контекста для {siteUrl}"); вар _tenantUrl = новый Uri(siteUrl).GetLeftPart(UriPartial.Authority); // Настраиваем прослушиватель для мониторинга зарегистрированных событий. использование прослушивателя AzureEventSourceListener = AzureEventSourceListener.CreateConsoleLogger(); var tokenCredential = новый DefaultAzureCredential( новый DefaultAzureCredentialOptions() { ExcludeEnvironmentCredential = true, ExcludeManagedIdentityCredential = true, ExcludeSharedTokenCacheCredential = true, ExcludeVisualStudioCredential = true, ExcludeVisualStudioCodeCredential = true, ExcludeAzureCliCredential = true, ExcludeAzurePowerShellCredential = true, ExcludeInteractiveBrowserCredential = ложь, Диагностика = { IsLoggingEnabled = правда, IsLoggingContentEnabled = правда, } } ); var _accessToken = ожидайте tokenCredential.GetTokenAsync( новый TokenRequestContext(области: новая строка[] { $"{_tenantUrl}/.default" }) { } ); вар AuthenticationManager = новый AuthenticationManager (); var _clientContext = authenticationManager.GetAccessTokenContext(siteUrl, _accessToken.Token); вернуть _clientContext; } В целях тестирования я использую интерактивный вход в браузер. Я вхожу в систему под своей учетной записью администратора, у которой есть активная роль администратора SharePoint (которая была активирована через PIM). Я также добавил дополнительное ведение журнала, чтобы попытаться выяснить, что происходит, но, похоже, токен извлекается правильно:
[Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68 -611880beb898] Проверка информации о клиенте, возвращаемой с сервера.. [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Сохранение ответа токена кэшировать.. [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [Обнаружение региона] ] Не использовать региональную власть. [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение AT в кеше и удаление перекрывающихся AT... [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Поиск областей для полномочий в кеше, которые пересекаются с https://.sharepoint.com/.default [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Пересекающиеся записи области кол-во - 1 [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Соответствующие записи после фильтрация по пользователю - 1 [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение токена идентификатора и учетной записи в кеше... [Informational] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] [SaveTokenResponseAsync] Сохранение RT в кэше... [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] IsLegacyAdalCacheEn в состоянии: да [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Не пишет FRT в устаревшем кэше ADAL. [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] === Получение токена успешно завершено: [Информационное] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Срок действия AT : 20.09.2023 16:35:07 +00:00, области действия: https://.sharepoint.com/user_impersonation https://.sharepoint.com/.default. источник: IdentityProvider [Информационный] Azure-Identity: False MSAL 4.54.1.0 MSAL.NetCore .NET 6.0.22 Microsoft Windows 10.0.22621 [2023-09-20 15:12:01Z - 7bfc4350-99cb-47b7-8d68-611880beb898] Полученный токен доступа с хоста login.microsoftonline.com. [Информационный] Azure-Identity: InteractiveBrowserCredential.GetToken выполнен успешно. Области: [ https://.sharepoint.com/.default ] ParentRequestId: ExpiresOn: 2023-09-20T16:35:07.2740536+00:00 [Информационный] Azure-Identity: выбраны учетные данные DefaultAzureCredential: Azure.Identity.InteractiveBrowserCredential. [Информационный] Azure-Identity: DefaultAzureCredential.GetToken выполнен успешно. Области: [ https://.sharepoint.com/.default ] ParentRequestId: ExpiresOn: 2023-09-20T16:35:07.2740536+00:00 Я не понимаю, что получаю сообщение об ошибке, как только выполняю запрос CSOM, например:
private void UpdateListItem() { если (ListItem!= ноль) { //... установка значений полей СписокЭлемент.Обновление(); Контекст.ВыполнитьЗапрос(); //
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение