Вопрос или проблема
У меня есть следующий скрипт PowerShell на MacOS, но нет четкого способа установить этот флаг в значение false ни с помощью set-spotenant
, ни с помощью Set-PnPTenant
.
cd /Users/user/.local/share/powershell/Modules
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
#Запрос учетных данных
#Register-PnPEntraIDApp -ApplicationName "PnP Management Shell" -Tenant <tenantId> -Interactive
$clientId = "<clientid>"
$clientSecret = "<secret>"
$adminUrl = "https://<domain>-admin.sharepoint.com"
Import-Module PnP.PowerShell -UseWindowsPowerShell
Connect-PnPOnline -Url $adminUrl -ClientId $clientId -ClientSecret $clientSecret # соединение прошло успешно
set-spotenant -DisableCustomAppAuthentication $false # не работает
Set-PnPTenant -DisableCustomAppAuthentication $true # не работает
Ошибки с set-spotenant
:
Термин 'set-spotenant' не распознается как имя командлета, функции, скриптового файла или исполняемой программы. Проверьте правописание имени, или, если был указан путь, убедитесь, что путь указан верно, и попробуйте снова.
Ошибки с Set-PnPTenant
:
Удаленный сервер вернул ошибку: (401) Не авторизован.
Есть ли обходной путь через пользовательский интерфейс, чтобы мне не пришлось проходить через трудности использования PowerShell?
Ответ или решение
Настройка DisableCustomAppAuthentication для Azure через PowerShell на MacOS
Введение
Настройка флага DisableCustomAppAuthentication
в Azure может оказаться не совсем тривиальной задачей, особенно когда вы работаете из PowerShell на MacOS. В данном ответе мы подробно рассмотрим проблемы, с которыми вы можете столкнуться при использовании команд Set-Spotenant
и Set-PnPTenant
, и предложим возможное решение.
Проблема с командой set-spotenant
Ошибка:
The term 'set-spotenant' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Анализ: Сообщение об ошибке указывает на то, что команда set-spotenant
не распознана. Это может быть связано с тем, что данная команда не поддерживается на MacOS или модуль, содержащий эту команду, не был загружен корректно. Убедитесь, что вы используете правильный модуль. Команды Set-Spotenant
доступны только в библиотеке Microsoft.Online.SharePoint.PowerShell, к которой можно получить доступ только из Windows PowerShell/Windows.
Проблема с командой Set-PnPTenant
Ошибка:
The remote server returned an error: (401) Unauthorized.
Анализ: Данная ошибка указывает на то, что учетные данные, которые используются для подключения, не имеют достаточных прав для изменения настройки флага. Убедитесь, что ваш клиентский ID и секрет имеют необходимые разрешения для выполнения этой операции. Как минимум, учетная запись должна иметь доступ администратора на уровне тенанта в Azure AD и SharePoint.
Возможные решения
-
Проверьте права доступа:
Убедитесь, что учетная запись, под которой вы подключаетесь, действительно имеет право на выполнение этой операции. Чтобы проверить разрешения, вы можете использовать Azure Portal и убедиться, что ваш идентификатор клиента (Client ID) зарегистрирован с нужными правами. -
Использование Azure Portal для отключения
DisableCustomAppAuthentication
:
Если вы сталкиваетесь с проблемами в PowerShell, рассмотрите возможность изменения настроек через Azure Portal. Для этого:- Перейдите в Azure Portal.
- Откройте раздел Azure Active Directory.
- Перейдите в раздел App registrations и выберите приложение, для которого хотите изменить настройки.
- Измените нужные параметры в разделе настроек приложения.
-
Перемещение в Windows:
Если использование PowerShell на MacOS продолжает вызывать проблемы, возможно, стоит рассмотреть возможность выполнения скриптов из Windows среды. Это может быть сделано через VM или отказоустойчивую настройку Windows. -
Использование других инструментов для управления:
Существуют и другие инструменты для управления настройками SharePoint и Azure. Рассмотрите использование Microsoft Graph API, который может дать больший доступ к настройкам и более гибкие возможности по сравнению с PowerShell.
Заключение
Хотя применение PowerShell для настройки Azure может значительно ускорить процесс администрирования, проблемы совместимости на разных ОС и недостаток прав могут усложнить задачу. Использование Azure Portal может быть более интуитивным и менее подверженным ошибкам маршрутом. Поддерживайте ваши учетные записи и модули в актуальном состоянии, чтобы минимизировать возникающие проблемы.