Azure AD поддерживает проверку подлинности клиентов на основе сертификатов (Certificate Based Authentication, CBA). Вы можете использовать аутентификацию с помощью сертификатов для автоматического запуска ваших PowerShell скриптов без ввода пароля пользователеля и MFA аутентификации Azure . Благодаря сертификатам, вам не нужно заботиться о безопасном хранении паролей в PowerShell скриптах или использовании сторонних хранилищ (vault) через модуль SecretManagement .
В этом статье мы покажем, как использовать аутентификацию в Azure AD и Exchange Online для ваших PowerShell скриптов с помощью сертификатов.
Сначала нужно создать сертификат на вашем компьютере. Вы можете получить сертификат у вашего CA или выпустить самоподписанный сертификат. В нашем примере мы создадим самоподписанный сертификат в Windows с помощью командлета New-SelfSignedCertificate . Чтобы сгенерировать самоподписанный сертфикат со сроком действия действия три года, выполните:
$certvalid = (Get-Date).AddYears(3)
$newcert = New-SelfSignedCertificate -DnsName "test.remontka.com" -CertStoreLocation "cert:LocalMachineMy" -NotAfter $certvalid -KeySpec KeyExchange -FriendlyName "Azure AD PowerShell Auth cert"
$newcert|fl Subject,Thumbprint,NotBefore,NotAfter
Скопируйте значение отпечатка сертификата ( Thumbprint
).
Теперь экспортируйте сертификат в CER и PFX файлы:
$newcert | Export-Certificate -FilePath "C:PSazuread-auth.cer"
$newcert | Export-PfxCertificate -FilePath "C:PSazuread-auth.pfx" -Password $(ConvertTo-SecureString -String "MyPassW@rd321" -AsPlainText -Force)
Теперь нужно создать приложение в Azure AD
Теперь вы можете попробовать подключиться к Exchange Online из PowerShell скрипта на вашем компьютере с помощью сертификата. В данном примере на компьютере уже установлен модуль Exchange Online PowerShell .
Вам нужны значения следующих переменных (который вы скопировали ранее):
$certThumbprint = "7E82C3A560737C7894562593926E495777ECDB75"
$AzureAppID = "123456-1234-1234-1234-123456789"
$tenant="remontka.onmicrosoft.com"
Выполните следующую команду, чтобы подключиться к тенанту Exchnage Online с помощью сертификата:
Connect-ExchangeOnline -AppId $AzureAppID -CertificateThumbprint $certThumbprint -Organization $tenant
Как вы видите, при подключении не запрашивается пароль и не появляется окно Modern аутентификации .
Выведите список почтовых ящиков в вашем тенанте:
Get-EXOMailbox
Disconnect-ExchangeOnline -Confirm:$false
По аналогии вы можете настроить аутентификацию по сертификатам и для других модулей Microsoft 365. Главное правильно назначить разрешения для вашего приложения Azure.
Например, если вы используете модуль Teams PowerShell (4.7.1 и выше), то для аутентификации с помощью сертификата нужно использовать команду:
Connect-MicrosoftTeams -CertificateThumbprint $certThumbprint -ApplicationId $AzureAppID -TenantId $tenant
Для подключения к Azure AD из PowerShell ( версия модуля Azure AD 2.0.033 и выше) с помощью сертификата, используйте команду:
Connect-AzureAD -TenantId $tenant -ApplicationId $AzureAppID -CertificateThumbprint $certThumbprint
https://remontka.com/dostup-k-azure-microsoft-graph-api-powershell/
Вы можете импортировать сертификат на другой хост Windows с помощью PFX файла (содержим закрытый ключ, который вы защитили паролем). Можно импортировать сертификат из файла с помощью MMC консоли Certificates или из PowerShell:
$password = ConvertTo-SecureString -String "MyPassW@rd321" -Force -AsPlainText
Import-PfxCertificate -Password $password -FilePath "C:PSazuread-auth.pfx" -CertStoreLocation Cert:CurrentUserMy
После этого вы можете использовать аутентификацию в Azure с помощью сертификата для PowerShell скриптов и на этом компьютере.
Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…
Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…
Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…
Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…
Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…
Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…