PowerShell: קביעת תצורה של אימות מבוסס אישור עבור Exchange Online (Azure)
מזהה Microsoft Entra (לשעבר Azure AD) תומך באימות מבוסס אישורים (CBA). משמעות הדבר היא שבאפשרותך להשתמש באימות אישור כדי להפעיל באופן אוטומטי את קבצי ה- Script של PowerShell ללא הזנת סיסמה וללא שימוש ב- Azure MFA. עם auth מבוסס אישורים, אינך צריך עוד לדאוג לגבי אחסון מאובטח של סיסמאות בקבצי script של PowerShell או שימוש באחסון כספת של צד שלישי באמצעות מודול SecretManagement.
כך ניתן להשתמש באישורים לצורך אימות מקבצי ה- Script של PowerShell מול מזהה Microsoft Entra (Azure AD) ו- Exchange Online.
תחילה עליך ליצור אישור ולהתקין אותו במחשב. באפשרותך להשיג אישור מרשות האישורים שלך או להנפיק אישור בחתימה עצמית. בדוגמה זו, ניצור אישור בחתימה עצמית באמצעות ה- cmdlet New-SelfSignedCertificate.
צור אישור בחתימה עצמית עם תקופת תוקף של 3 שנים:
$certvalid = (Get-Date).AddYears(3)
$newcert = New-SelfSignedCertificate -DnsName "pre_prod.a-d.site" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter $certvalid -KeySpec KeyExchange -FriendlyName "Azure Microsoft Entra ID PowerShell Auth cert"
$newcert|fl Subject,Thumbprint,NotBefore,NotAfterהעתק את הערך של טביעת האצבע של האישור.
לאחר מכן יצא את האישור לקבצי CER ו- PFX:
$newcert | Export-Certificate -FilePath "C:\PS\azure-auth.cer"
$newcert | Export-PfxCertificate -FilePath "C:\PS\azure-auth.pfx" -Password $(ConvertTo-SecureString -String "S3dPswrd@123" -AsPlainText -Force)עכשיו אתה צריך ליצור יישום ב- Azure Microsoft Entra:
היכנס לפורטל Azure ועבור אל מזהה Microsoft Entra -> רישומי אפליקציות -> רישום חדש;
ציין את שם האפליקציה (
testCertAuthPowerShell), בחר חשבונות בספריה ארגונית זו בלבד (דייר יחיד) ולחץ על הירשם;
העתק את ערך היישום (מזהה לקוח);
לאחר מכן הקצה הרשאות עבור האפליקציה שלך. עבור אל הרשאות API -> הוסף הרשאה. בדוגמה זו, נעניק הרשאות לניהול תצורת Exchange Online (ממשקי API שהארגון שלי משתמש בהם ->- Office 365 Exchange Online) Azure -> הרשאות יישום -> Exchange.ManageAsApp -> הוספת הרשאות -> הענקת הסכמת מנהל);
-
לאחר מכן עבור אל אישורים וסודות והעלה קובץ אישור בחתימה עצמית מהמחשב שלך;
לאחר מכן, הקצה את תפקיד מנהל Exchange ליישום שלך. עבור אל Azure Active Directory -> תפקידים ומנהלי מערכת -> בחר את תפקיד מנהל Exchange -> הוסף משימות -> בחר את היישום שלך מהרשימה (testCertAuthPowerShell).
לאחר מכן, באפשרותך לנסות להתחבר ל- Exchange Online מקובץ script של PowerShell במחשב באמצעות האישור. שים לב שבדוגמה זו, מודול Exchange Online PowerShell (EXO) כבר מותקן במחשב.
תזדקק לערכים של המשתנים הבאים (אלה שהעתקת קודם לכן):
$certThumbprint = "9CF05589A4B29BECEE6456F08A76EBC3DC2BC581"
$AzureAppID = "111111-2222-3333-4444-123456789"
$tenant="a-d.onmicrosoft.com"כעת באפשרותך להתחבר לדייר Exchange Online באמצעות האישור:
Connect-ExchangeOnline -AppId $AzureAppID -CertificateThumbprint $certThumbprint -Organization $tenantלא תהיה בקשת סיסמה ולא טופס אימות מודרני כאשר תתחבר למזהה Microsoft Entra.
פרט תיבות דואר בדייר Exchange שלך:
Get-EXOMailboxזכור להוסיף פקודה לנתק את הפעלת Exchange Online בסוף קובץ ה- Script של PowerShell:
Disconnect-ExchangeOnline -Confirm:$falseבאופן דומה, באפשרותך להגדיר אימות מבוסס אישור גם עבור שירותים אחרים של Microsoft 365. הדבר החשוב כאן הוא להקצות כראוי הרשאות עבור אפליקציית Azure שלך.
לדוגמה, אם אתה משתמש במודול Teams PowerShell, עליך להפעיל את הפקודה הבאה כדי לבצע אימות באמצעות אישור:
Connect-MicrosoftTeams -CertificateThumbprint $certThumbprint -ApplicationId $AzureAppID -TenantId $tenantכדי להשתמש במודול Azure AD PowerShell עם אישור כדי להתחבר למזהה Microsoft Entra:
Connect-AzureAD -TenantId $tenant -ApplicationId $AzureAppID -CertificateThumbprint $certThumbprintקבל מידע נוסף על יצירת יישומים ב- Azure, הקצאת הרשאות ושימוש ב- API של Microsoft Graph ב- PowerShell.
חוץ מזה, באפשרותך לייבא אישור למארח Windows אחר באמצעות קובץ PFX המכיל מפתח פרטי המוגן באמצעות סיסמה. השתמש ביישום ה- Snap-in MMC 'אישורים' או ב- PowerShell כדי לייבא את האישור:
$password = ConvertTo-SecureString -String "S3dPswrd@123" -Force -AsPlainText
Import-PfxCertificate -Password $password -FilePath "C:\PS\azure-auth.pfx" -CertStoreLocation Cert:\CurrentUser\Myלאחר מכן תוכל להשתמש באימות מבוסס אישור Azure בקבצי script של PowerShell במחשב זה.






