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 скриптов и на этом компьютере.
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…