احراز هویت فقط برنامه برای اسکریپت های بدون نظارت در مبادله آنلاین PowerShell و Security & Security PowerShell

  • 2022-02-20

سناریوهای حسابرسی و گزارش در مایکروسافت 365 اغلب شامل اسکریپت های بدون نظارت در مبادله آنلاین PowerShell و Security & Security PowerShell هستند. در گذشته ، علامت بدون توجه به شما ملزم به ذخیره نام کاربری و رمز عبور در یک پرونده محلی یا در یک طاق مخفی است که در زمان اجرا قابل دسترسی است. اما ، همانطور که همه ما می دانیم ، ذخیره اعتبار کاربر به صورت محلی یک عمل امنیتی خوب نیست.

تأیید هویت مبتنی بر گواهینامه (CBA) یا تأیید اعتبار فقط برنامه همانطور که در این مقاله توضیح داده شده است ، با استفاده از برنامه های تبلیغاتی Azure و گواهینامه های خود امضا شده ، از سناریوهای اسکریپت و اتوماسیون پشتیبانی نشده پشتیبانی می کند.

آیا می دانید که می توانید با استفاده از هویت های مدیریت شده در لاجورد ، به مبادله آنلاین PowerShell متصل شوید؟برای اتصال به مبادله PowerShell ، از هویت های مدیریت شده Azure استفاده کنید.

ویژگی ها و رویه های شرح داده شده در این مقاله به نسخه های زیر از ماژول Exchange Online PowerShell نیاز دارد:

  • Exchange Online PowerShell (Connect-ExchangeOnline): نسخه 2. 0. 3 یا بالاتر.
  • امنیت و انطباق PowerShell (Connect-IPPSSESSION): نسخه 2. 0. 6-PREVIEW5 یا بالاتر.

برای راهنمایی در مورد نحوه نصب یا به روزرسانی ماژول ، به نصب و نگهداری ماژول Exchange Online PowerShell مراجعه کنید. برای راهنمایی در مورد نحوه استفاده از ماژول در اتوماسیون لاجورد ، به مدیریت ماژول ها در اتوماسیون لاجورد مراجعه کنید.

نسخه 2. 0. 5 و پیش از این به عنوان ماژول Exchange Online PowerShell V2 (به طور خلاصه به عنوان ماژول Exo V2) شناخته می شود. نسخه 3. 0. 0 و بعد به عنوان ماژول Exchange Online PowerShell V3 (به طور خلاصه به عنوان ماژول EXO V3) شناخته می شود.

در مبادله PowerShell آنلاین ، شما نمی توانید از روشهای این مقاله با CMDLET های گروه Microsoft 365 زیر استفاده کنید:

می توانید از Microsoft Graph استفاده کنید تا بیشتر عملکردهای آن cmdlets را جایگزین کنید. برای اطلاعات بیشتر ، به کار با گروه ها در Microsoft Graph مراجعه کنید

در امنیت و انطباق PowerShell ، شما نمی توانید از روشهای این مقاله با CMDlets زیر استفاده کنید:

احراز هویت فقط برنامه از نمایندگی پشتیبانی نمی کند. اسکریپت بدون نظارت در سناریوهای هیئت با مدل برنامه امن پشتیبانی می شود. برای دریافت اطلاعات بیشتر، به اینجا رجوع شود.

چگونه کار می کند؟

ماژول Exchange Online PowerShell از کتابخانه احراز هویت اکتیو دایرکتوری برای واکشی یک توکن فقط برنامه با استفاده از شناسه برنامه، شناسه مستاجر (سازمان) و اثر انگشت گواهی استفاده می کند. شی برنامه ای که در داخل Azure AD ارائه شده است، یک نقش دایرکتوری به آن اختصاص داده شده است که در توکن دسترسی برگردانده می شود. کنترل دسترسی مبتنی بر نقش جلسه (RBAC) با استفاده از اطلاعات نقش دایرکتوری موجود در توکن پیکربندی می شود.

نمونه های اتصال

مثال‌های زیر نحوه استفاده از ماژول Exchange Online PowerShell با احراز هویت فقط برنامه را نشان می‌دهند:

در دستورات اتصال زیر، باید از دامنه . onmicrosoft. com برای مقدار پارامتر Organization استفاده کنید.

دستورات اتصال زیر دارای بسیاری از گزینه‌های مشابهی هستند که در Connect to Exchange Online PowerShell و Connect to Security & Compliance PowerShell توضیح داده شده است. مثلا:

در Exchange Online PowerShell با استفاده از ماژول EXO V3، می‌توانید سوئیچ UserRPSSession را برای استفاده از cmdlet‌های REST API یا cmdlet‌های اصلی راه دور PowerShell حذف یا اضافه کنید. برای اطلاعات بیشتر، به‌روزرسانی‌های نسخه 3. 0. 0 (ماژول EXO V3) را ببینید.

محیط‌های Microsoft 365 GCC High یا Microsoft 365 DoD به پارامترها و مقادیر اضافی زیر نیاز دارند:

  • Connect-ExchangeOnline در GCC High: -ExchangeEnvironmentName O365USGovGCCHigh.
  • Connect-IPPSSession در GCC High: -ConnectionUri https://ps. compliance. protection. office365. us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login. microsoftonline. us/common.
  • Connect-ExchangeOnline در وزارت دفاع: -ExchangeEnvironmentName O365USGovDoD.
  • Connect-IPPSSession در وزارت دفاع: -ConnectionUri https://l5. ps. compliance. protection. office365. us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login. microsoftonline. us/common.

اگر یک فرمان Connect-IPPSSession یک اعلان ورود به سیستم ارائه می دهد، این دستور را اجرا کنید: $Global:IsWindows = $true قبل از دستور Connect-IPPSSession.

با استفاده از اثر انگشت گواهی متصل شوید:

گواهی باید در رایانه ای که در آن فرمان را اجرا می کنید نصب شود. گواهی باید در فروشگاه گواهی کاربر نصب شود.

تبادل آنلاین PowerShell:

امنیت و انطباق PowerShell:

اتصال با استفاده از یک شی گواهی:

گواهی نیازی به نصب روی رایانه ای که در آن فرمان را اجرا می کنید، نیست. می توانید شی گواهی را از راه دور ذخیره کنید. گواهی زمانی که اسکریپت اجرا می شود واکشی می شود.

تبادل آنلاین PowerShell:

امنیت و انطباق PowerShell:

با استفاده از گواهی محلی متصل شوید:

استفاده از دستور ConvertTo-SecureString برای ذخیره رمز عبور گواهی به صورت محلی، هدف یک روش اتصال ایمن برای سناریوهای اتوماسیون را از بین می برد. استفاده از دستور Get-Credential برای درخواست رمز عبور گواهی به طور ایمن برای سناریوهای اتوماسیون ایده آل نیست. به عبارت دیگر، واقعاً هیچ راه خودکار و امنی برای اتصال با استفاده از گواهی محلی وجود ندارد.

تبادل آنلاین PowerShell:

امنیت و انطباق PowerShell:

احراز هویت فقط برنامه را تنظیم کنید

برای احراز هویت با استفاده از اشیاء برنامه، نصب اولیه لازم است. Application و Service Principal به جای یکدیگر استفاده می شوند، اما یک برنامه کاربردی مانند یک شی کلاس است در حالی که یک سرویس اصلی مانند یک نمونه از کلاس است. می توانید در مورد این موضوع در Application and Service Principal Objects در Azure Active Directory اطلاعات بیشتری کسب کنید.

برای یک جریان بصری دقیق درباره ایجاد برنامه‌های کاربردی در Azure AD، به https://aka. ms/azuread-app مراجعه کنید.

یک شی برنامه دارای مجوز پیش فرض User. Read است. برای اینکه شی برنامه به منابع دسترسی داشته باشد، باید مجوز برنامه Exchange. ManageAsApp را داشته باشد.

برای احراز هویت فقط برنامه در Azure AD، معمولاً از گواهی برای درخواست دسترسی استفاده می‌کنید. هر کسی که گواهی و کلید خصوصی آن را داشته باشد می تواند از برنامه و مجوزهای اعطا شده به برنامه استفاده کند.

یک گواهی X. 509 با امضای خود را ایجاد و پیکربندی کنید، که برای احراز هویت برنامه شما در برابر Azure AD استفاده می‌شود، در حالی که توکن دسترسی فقط برنامه را درخواست می‌کنید.

این شبیه به ایجاد رمز عبور برای حساب های کاربری است. گواهی را می توان خود امضا نیز کرد. برای دستورالعمل‌های مربوط به تولید گواهی‌ها در PowerShell، بخش پیوست را در ادامه این مقاله ببینید.

رمزنگاری: گواهی‌های نسل بعدی (CNG) برای احراز هویت فقط برنامه‌ای با Exchange پشتیبانی نمی‌شوند. گواهی های CNG به طور پیش فرض در نسخه های مدرن ویندوز ایجاد می شوند. باید از گواهی ارائه دهنده کلید CSP استفاده کنید. بخش ضمیمه دو روش پشتیبانی شده برای ایجاد گواهی CSP را پوشش می دهد.

برنامه باید نقش های RBAC مناسب را اختصاص داده باشد. از آنجا که برنامه ها در Azure AD ارائه شده اند، می توانید از هر یک از نقش های داخلی پشتیبانی شده استفاده کنید.

مرحله 1: برنامه را در Azure AD ثبت کنید

اگر با مشکل مواجه شدید، مجوزهای لازم را بررسی کنید تا تأیید کنید که حساب شما می‌تواند هویت را ایجاد کند.

در کادر جستجو در بالای صفحه، شروع به تایپ ثبت‌های برنامه کنید و سپس از نتایج در بخش خدمات، ثبت‌های برنامه را انتخاب کنید.

Screenshot that shows App registrations in the Search results on the home page of the Azure portal.

در صفحه ثبت نام برنامه ، روی ثبت نام جدید کلیک کنید.

Select New registration on the App registrations page.

در صفحه ثبت نام برنامه ای که باز می شود ، تنظیمات زیر را پیکربندی کنید:

نام: چیزی توصیفی وارد کنید. به عنوان مثال ، Exo PowerShell CBA.

انواع حساب پشتیبانی شده: تأیید کنید که حساب های موجود در این فهرست سازمانی (فقط - مستاجر مجرد) انتخاب می شود.

تغییر مسیر URI (اختیاری): در کادر اول ، تأیید کنید که وب انتخاب شده است. در کادر دوم ، URI را که در آن نشانه دسترسی ارسال می شود وارد کنید.

توجه داشته باشید که شما نمی توانید اعتبار خود را برای برنامه های بومی ایجاد کنید ، زیرا نمی توانید از این نوع برای برنامه های خودکار استفاده کنید.

Register an application.

پس از اتمام ، روی ثبت نام کلیک کنید.

صفحه برنامه را که برای باز کردن باز می گردید ، بگذارید. شما در مرحله بعدی از آن استفاده خواهید کرد.

مرحله 2: مجوزهای API را به برنامه اختصاص دهید

رویه های این بخش جایگزین هرگونه مجوزهای پیش فرض که به طور خودکار برای برنامه جدید پیکربندی شده است. این برنامه به مجوزهای پیش فرض جایگزین نیاز ندارد.

در صفحه برنامه تحت مدیریت ، مانیفست را انتخاب کنید.

Select Manifest on the application properties page.

در صفحه مانیفست که باز می شود ، ورودی مورد نیاز را پیدا کنید (در یا در مورد خط 47).

مقادیر نوع ResourceApPID ، ResourceAccess را اصلاح کنید ، همانطور که در قطعه کد زیر نشان داده شده است:

پس از اتمام ، روی ذخیره کلیک کنید.

هنوز در صفحه مانیفست ، تحت مدیریت ، مجوزهای API را انتخاب کنید.

Select API permissions on the application properties page.

در صفحه مجوزهای API که باز می شود ، مراحل زیر را انجام دهید:

API / نام مجوزها: Value Exchange. manageasapp نشان داده شده است.

در صورت لزوم ، جستجو برای تبادل Office 365 تحت APIS سازمان من در صفحه مجوزهای درخواست API استفاده می کند.

وضعیت: ارزش نادرست فعلی برای آن اعطا نمی شود و این مقدار باید تغییر کند.

Original incorrect API permissions.

Grant Admin Consent را انتخاب کنید ، گفتگوی تأیید را که باز می شود بخوانید و سپس روی YES کلیک کنید.

ارزش وضعیت اکنون باید برای آن اعطا شود.

Admin consent granted.

برای بازگشت به صفحه ثبت نام برنامه ، صفحه مجوزهای فعلی API (نه برگه مرورگر) را ببندید. شما در یک مرحله آینده از آن استفاده خواهید کرد.

مرحله 3: یک گواهینامه خود امضا کنید

با استفاده از یکی از روشهای زیر ، یک گواهی X. 509 خود امضا کنید:

(توصیه می شود) از CMDLET های جدید و صادر شده ، صادرات و صادرات- pfxcertificate در یک جلسه بلند (به عنوان مدیر) استفاده کنید تا یک گواهینامه خود امضا شده را درخواست کرده و آن را به . cer و . pfx (Sha1 به صورت پیش فرض) صادر کنید. مثلا:

برای تولید گواهینامه های SHA1 از اسکریپت Create-SelfSignedCertificate استفاده کنید.

مرحله 4: گواهینامه را به برنامه تبلیغات Azure وصل کنید

پس از ثبت گواهی در برنامه خود، می توانید از کلید خصوصی (فایل pfx.) یا اثر انگشت برای احراز هویت استفاده کنید.

در برگه برنامه های کاربردی در صفحه ثبت برنامه ها از انتهای مرحله 2، برنامه خود را انتخاب کنید.

اگر می خواهید به صفحه ثبت نام برنامه ها برگردید، از https://portal. azure. com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/ استفاده کنید~/RegisteredApps، بررسی کنید که برگه Owned applications انتخاب شده باشد و سپس برنامه خود را انتخاب کنید.

Apps registration page where you select your app.

در صفحه برنامه ای که باز می شود، در قسمت مدیریت، گواهی ها و اسرار را انتخاب کنید.

Select Certificates & Secrets on the application properties page.

در صفحه گواهی‌ها و اسرار که باز می‌شود، روی آپلود گواهی کلیک کنید.

Select Upload certificate on the Certificates & secrets page.

در گفتگوی باز شده، به گواهی خود امضا شده (فایل cer.) که در مرحله 3 ایجاد کردید، بروید.

Browse to the certificate and then click Add.

وقتی کارتان تمام شد، روی افزودن کلیک کنید.

اکنون گواهی در بخش گواهی ها نشان داده می شود.

Application page showing that the certificate was added.

برای بازگشت به صفحه اصلی https://portal. azure. com/ صفحه گواهینامه ها و اسرار فعلی را ببندید و سپس صفحه ثبت برنامه را ببندید. در مرحله بعد از آن استفاده خواهید کرد.

مرحله 5: نقش های Azure AD را به برنامه اختصاص دهید

شما دو گزینه دارید:

  • نقش‌های Azure AD را به برنامه اختصاص دهید: این روش در Exchange Online PowerShell و Security & Compliance PowerShell پشتیبانی می‌شود.
  • اختصاص دادن گروه‌های نقش سفارشی Exchange Online به برنامه: در حال حاضر، این روش فقط در Exchange Online PowerShell پشتیبانی می‌شود و فقط زمانی که در حالت REST API متصل می‌شوید (از سوئیچ UserRPSSession در فرمان Connect-ExchangeOnline استفاده نکنید).

همچنین می توانید هر دو روش را برای اختصاص مجوزها ترکیب کنید. مانند استفاده از نقش‌های Azure AD برای نقش «مدیر گیرنده تبادل» و نقش RBAC سفارشی خود را برای گسترش مجوزها اختصاص دهید.

نقش های Azure AD را به برنامه اختصاص دهید

نقش های پشتیبانی شده Azure AD در جدول زیر توضیح داده شده است:

نقش تبادل آنلاین PowerShell امنیت و انطباق PowerShell
مدیر انطباق
مدیر بورس *
مدیر گیرنده تبادل
مدیر جهانی *
خواننده جهانی
مدیر دفتر کمک
مدیر امنیت *
خواننده امنیتی

  • مدیریت گیرنده
  • ویژگی های امنیتی و حفاظتیبه عنوان مثال، ضد هرزنامه، ضد بدافزار، ضد فیشینگ و گزارش های مرتبط.

برای دستورالعمل‌های کلی در مورد تخصیص نقش‌ها در Azure AD، به مشاهده و اختصاص نقش‌های سرپرست در Azure Active Directory مراجعه کنید.

مراحل زیر برای Exchange Online PowerShell در مقابل Security & Compliance PowerShell کمی متفاوت است. مراحل هر دو محیط نشان داده شده است. برای پیکربندی نقش ها برای هر دو محیط، مراحل این قسمت را تکرار کنید.

در پورتال Azure AD در https://portal. azure. com/، تایپ نقش‌ها و مدیران را در کادر جستجو در بالای صفحه شروع کنید و سپس نقش‌ها و مدیران AD Azure را از نتایج در بخش خدمات انتخاب کنید.

Screenshot that shows Azure AD roles and administrators in the Search results on the on the home page of the Azure portal.

یا برای رفتن مستقیم به صفحه نقش‌ها و مدیران Azure AD، از https://portal. azure. com/#view/Microsoft_AAD_IAM/AllRolesBlade استفاده کنید.

در صفحه Roles and administrators که باز می شود، با کلیک بر روی نام نقش (نه چک باکس) در نتایج، یکی از نقش های پشتیبانی شده را پیدا کرده و انتخاب کنید.

Exchange Online PowerShell: برای مثال، نقش مدیر Exchange را پیدا کرده و انتخاب کنید.

Find and select a supported Exchange Online PowerShell role by clicking on the role name.

Security & Compliance PowerShell: به عنوان مثال، نقش Administrator Compliance را پیدا کرده و انتخاب کنید.

Find and select a supported Security & Compliance PowerShell role by clicking on the role name.

در صفحه تکالیف که باز می شود، روی افزودن تکالیف کلیک کنید.

Exchange Online PowerShell:

Select Add assignments on the role assignments page for Exchange Online PowerShell.

امنیت و انطباق PowerShell:

Select Add assignments on the role assignments page for Security & Compliance PowerShell.

در قسمت «افزودن تکالیف» که باز می‌شود، برنامه‌ای را که در مرحله 1 ایجاد کرده‌اید، پیدا کرده و انتخاب کنید.

Find and select your app on the Add assignments flyout.

وقتی کارتان تمام شد، روی افزودن کلیک کنید.

به صفحه تکالیف برگردید، بررسی کنید که نقش به برنامه اختصاص داده شده است.

Exchange Online PowerShell:

The role assignments page after to added the app to the role for Exchange Online PowerShell.

امنیت و انطباق PowerShell:

The role assignments page after to added the app to the role for Security & Compliance PowerShell.

گروه های نقش سفارشی Exchange Online را به برنامه اختصاص دهید

به یاد داشته باشید، این روش فقط در Exchange Online PowerShell پشتیبانی می‌شود و تنها زمانی که در حالت REST API متصل می‌شوید (از سوئیچ UserRPSSession در دستور Connect-ExchangeOnline استفاده نکنید).

برای اطلاعات در مورد ایجاد گروه های نقش سفارشی، به ایجاد گروه های نقش مراجعه کنید. گروه نقش سفارشی که به برنامه اختصاص می‌دهید می‌تواند حاوی هر ترکیبی از نقش‌های داخلی و سفارشی باشد.

برای اختصاص دادن گروه های نقش سفارشی Exchange Online به برنامه، مراحل زیر را انجام دهید:

در Azure Active Directory PowerShell for Graph، دستور زیر را اجرا کنید تا جزئیات برنامه Azure را که در مرحله 1 ثبت کرده اید در یک متغیر ذخیره کنید:

برای اطلاعات دقیق نحو و پارامتر، به Get-AzureADServicePrincipal مراجعه کنید.

در همان پنجره PowerShell، به Exchange Online PowerShell متصل شوید و دستورات زیر را اجرا کنید:

  • یک شی اصلی سرویس Exchange Online برای برنامه Azure ایجاد کنید.
  • جزئیات اصلی سرویس را در یک متغیر ذخیره کنید.

برای اطلاعات دقیق نحو و پارامتر، New-ServicePrincipal را ببینید.

در Exchange Online PowerShell، دستور زیر را اجرا کنید تا اصل سرویس را به عنوان عضوی از گروه نقش سفارشی اضافه کنید:

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.