Мы выполняем 30-дневный процесс смены ключа расшифровки Kerberos, автоматизированный с помощью «зашифрованного» пароля, хранящегося в текстовом файле, для создания необходимого объекта PSCredential для команды Powershell new-azureADSSOAuthenticationContext.
Это работает, но я хочу повысить общую безопасность и поэтому хочу исключить объект PSCredential для глобального администратора нашего клиента в Azure.
Я видел, что команду new-azureADSSOAuthenticationContext также можно передать с помощью маркера доступа (через параметр -token). Токен доступа, который я могу получить с помощью сертификата, хранящегося в гораздо более безопасном хранилище сертификатов компьютера, с помощью «Get-MsalToken».
На данный момент я создал приложение Azure, назначил его SecurityPrincipal ролью глобального администратора (в корпоративных приложениях), создал самозаверяющий сертификат (хранящийся в личном хранилище компьютера) и загрузил этот сертификат в приложение Azure.
Я получаю токен с помощью:
$Token = Get-MsalToken -ClientId $ClientId -TenantId $TenantId -ClientCertificate $Certificate -RedirectUri "http://bla.com"
Это работает, и я также могу использовать токен в контексте new-azureADSSOAuthenticationContext.
Но когда я затем вызываю Update-AzureADSSOForest -OnPremCredentials $OnpremCred, я получаю следующую ошибку:
При запуске под «новой» Powershell 7:
Линия |
133 | Update-AzureADSSOForest -OnPremCredentials $OnpremCred
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~
| Не удалось загрузить тип «System.ServiceModel.Web.WebChannelFactory`1» из сборки «System.ServiceModel.Web, версия = 4.0.0.0, культура = нейтральная,
| PublicKeyToken=31bf3856ad364e35'.
При запуске под «старым» Powershell 5.1:
Update-AzureADSSOForest: не удалось загрузить информацию об учетной записи компьютера. Сообщение об ошибке: запрос DesktopSsoNumOfDomains был сделан с недопустимым аутентифицированным токеном. Стоимость:''
В C:\Scripts\DEV-MIHA\KerberosKeyRollover\M365_Kerberos_Key_Rollover.ps1:133 символ:1
Подсказка: я прочитал несколько часов, посвященных общей проблеме, и до сих пор не нашел решения этой проблемы. За исключением того, что некоторые утверждают, что в настоящее время это невозможно.
Но, может быть, кому-то уже удалось то, чего я хочу добиться.
Предложения приветствуются. :-)