다음을 통해 공유


Exchange Online PowerShell 및 보안 & 준수 PowerShell의 무인 스크립트에 대한 앱 전용 인증

Microsoft 365의 감사 및 보고 시나리오에는 Exchange Online PowerShell 및 Security & Compliance PowerShell의 무인 스크립트가 포함되는 경우가 많습니다. 과거에는 무인 로그인을 사용하려면 사용자 이름과 암호를 런타임에 액세스하는 로컬 파일이나 비밀 볼트에 저장해야 했습니다. 그러나 우리 모두가 알다시피 사용자 자격 증명을 로컬로 저장하는 것은 좋은 보안 관행이 아닙니다.

이 문서에 설명된 대로 CBA(인증서 기반 인증) 또는 앱 전용 인증은 Microsoft Entra 앱 및 자체 서명된 인증서를 사용하여 무인 스크립트 및 자동화 시나리오를 지원합니다.

참고

작동 방식

Exchange Online PowerShell 모듈은 Active Directory 인증 라이브러리를 사용하여 애플리케이션 ID, 테넌트 ID(조직) 및 인증서 지문을 사용하여 앱 전용 토큰을 가져옵니다. Microsoft Entra ID 내에 프로비전된 애플리케이션 개체에는 액세스 토큰에 반환되는 디렉터리 역할이 할당되어 있습니다. 세션의 RBAC(역할 기반 액세스 제어)는 토큰에서 사용할 수 있는 디렉터리 역할 정보를 사용하여 구성됩니다.

연결 예제

다음 예제에서는 앱 전용 인증과 함께 Exchange Online PowerShell 모듈을 사용하는 방법을 보여 줍니다.

중요

다음 연결 명령에서 조직의 기본 .onmicrosoft.com 도메인을 조직 매개 변수의 값으로 사용합니다.

다음 연결 명령에는 Exchange Online PowerShell에 연결보안 & 준수 PowerShell에 연결에 설명된 것과 동일한 여러 옵션이 있습니다. 예:

  • Microsoft 365 GCC High 또는 Microsoft 365 DoD 환경에는 다음과 같은 추가 매개 변수와 값이 필요합니다.

    • GCC High의 Connect-ExchangeOnline: -ExchangeEnvironmentName O365USGovGCCHigh.
    • GCC High의 Connect-IPPSSession: -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common.
    • DoD의 Connect-ExchangeOnline: -ExchangeEnvironmentName O365USGovDoD.
    • DoD의 Connect-IPPSSession: -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common.
  • Connect-IPPSSession 명령에 로그인 프롬프트가 표시되면 Connect-IPPSSession 명령 앞에 명령을 $Global:IsWindows = $true 실행합니다.

  • 인증서 지문을 사용하여 연결:

    참고

    CertificateThumbprint 매개 변수는 Microsoft Windows에서만 지원됩니다.

    명령을 실행하는 컴퓨터에 인증서를 설치해야 합니다. 사용자 인증서 저장소에 인증서가 설치 되어 있어야 합니다.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • 인증서 개체를 사용하여 연결:

    명령을 실행하는 컴퓨터에 인증서를 설치할 필요가 없습니다. 인증서 개체를 원격으로 저장할 수 있습니다. 스크립트를 실행할 때 인증서가 페치됩니다.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
  • 로컬 인증서를 사용하여 연결:

    참고

    ConvertTo-SecureString 명령을 사용하여 인증서의 암호를 로컬로 저장하면 자동화 시나리오에 대한 보안 연결 방법의 목적이 무효화됩니다. Get-Credential 명령을 사용하여 인증서 암호를 안전하게 묻는 메시지를 표시하는 것은 자동화 시나리오에 적합하지 않습니다. 즉, 로컬 인증서를 사용하여 연결하는 자동화 되고 안전한 방법은 없습니다.

    • Exchange Online PowerShell:

      Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      
    • Security & Compliance PowerShell:

      Connect-IPPSSession -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
      

앱 전용 인증 설정

응용 프로그램 개체를 사용하여 인증하려면 초기 온보딩이 필요합니다. 응용 프로그램 및 서비스 주체는 혼용하여 사용되지만, 서비스 주체가 수업 인스턴스 같은 것 처럼 응용 프로그램은 클래스 개체와 비슷합니다. 자세한 내용은 Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체를 참조하세요.

Microsoft Entra ID에서 애플리케이션을 만드는 방법에 대한 자세한 시각적 흐름은 를 참조하세요 https://aka.ms/azuread-app.

  1. Microsoft Entra ID에 애플리케이션을 등록합니다.

  2. 애플리케이션에 API 권한을 할당합니다.

    애플리케이션 개체에는 기본적으로 위임된 API 권한 Microsoft Graph>User.Read 가 있습니다. 애플리케이션 개체가 Exchange의 리소스에 액세스하려면 애플리케이션 API 권한 Office 365 Exchange Online>Exchange.ManageAsApp이 필요합니다.

  3. 3단계: 자체 서명된 인증서 만들기

    • Microsoft Entra ID의 앱 전용 인증의 경우 일반적으로 인증서를 사용하여 액세스를 요청합니다. 인증서 및 프라이빗 키가 있는 모든 사용자는 앱에 부여된 권한으로 앱을 사용할 수 있습니다.

    • 앱 전용 액세스 토큰을 요청하는 동안 Microsoft Entra ID에 대해 애플리케이션을 인증하는 데 사용되는 자체 서명된 X.509 인증서를 만들고 구성합니다.

    • 이 절차는 사용자 계정에 대한 암호를 생성하는 것과 유사합니다. 인증서에도 자체 서명할 수 있습니다. PowerShell에서 인증서를 생성하는 지침은 이 문서의 뒷부분에 있는 이 섹션 을 참조하세요.

      참고

      암호화: CNG(차세대) 인증서는 Exchange를 사용한 앱 전용 인증에 지원되지 않습니다. CNG 인증서는 기본적으로 최신 버전의 Windows에서 만들어집니다. CSP 키 공급자의 인증서를 사용해야 합니다. 이 섹션에서는 CSP 인증서를 만드는 두 가지 지원되는 방법을 설명합니다.

  4. Microsoft Entra 애플리케이션에 인증서 연결

  5. 애플리케이션에 Microsoft Entra 역할 할당

    응용 프로그램에 적절한 RBAC 역할이 할당 되어 있어야 합니다. 앱은 Microsoft Entra ID로 프로비전되므로 지원되는 기본 제공 역할을 사용할 수 있습니다.

1단계: Microsoft Entra ID에 애플리케이션 등록

참고

문제가 발생하면 필수 사용 권한을 확인하여 계정이 ID를 생성할 수 있는지 확인합니다.

  1. 에서 Microsoft Entra 관리 센터를 엽니다 https://portal.azure.com/.

  2. 페이지 맨 위에 있는 검색 상자에서 앱 등록 입력을 시작한 다음 서비스 섹션의 결과에서 앱 등록 선택합니다.

    Azure Portal 홈페이지의 검색 결과에서 앱 등록을 보여 주는 스크린샷.

    또는 앱 등록 페이지로 직접 이동하려면 를 사용합니다 https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.

  3. 앱 등록 페이지에서 새 등록을 선택합니다.

    App 등록 페이지에서 새 등록을 선택합니다.

    열리는 응용 프로그램 등록 페이지에서 다음 설정을 구성하세요.

    • 이름: 설명적인 것을 입력하세요. 예를 들어 ExO PowerShell CBA가 있습니다.

    • 지원되는 계정 유형: 이 조직 디렉터리의 계정만(<YourOrganizationName> 만 - 단일 테넌트) 이 선택되어 있는지 확인합니다.

      참고

      Exchange Online 위임 시나리오에 대한 애플리케이션 다중 테넌트를 만들려면 모든 조직 디렉터리에서 계정 값을 선택합니다(모든 Microsoft Entra 디렉터리 - 다중 테넌트).

    • 리디렉션 URI(선택 사항): 이 설정은 선택 사항입니다. 사용해야 하는 경우 다음 설정을 구성합니다.

      • 플랫폼: 을 선택합니다.
      • URI: 액세스 토큰이 전송되는 URI를 입력합니다.

      참고

      자동화된 애플리케이션에 네 이티브 애플리케이션을 사용할 수 없으므로 네이티브 애플리케이션에 대한 자격 증명을 만들 수 없습니다.

      응용 프로그램을 등록합니다.

    앱 등록 페이지에서 완료되면 등록을 선택합니다.

  4. 방금 등록한 앱의 개요 페이지로 이동합니다. 이 페이지를 열어 둡니다. 다음 단계에서 사용할 예정입니다.

2단계: 응용 프로그램에 API 사용 권한 할당

이 섹션에서 다음 방법 중 하나를 선택하여 앱에 API 권한을 할당합니다.

  • 포털에서 API 권한을 선택하고 할당합니다.
  • API 권한을 할당하도록 앱 매니페스트를 수정합니다. (Microsoft 365 GCC High 및 DoD 조직은 이 방법을 사용해야 함)

포털에서 API 권한 선택 및 할당

  1. 개요 페이지의 관리 섹션에서 API 권한을 선택합니다.

    애플리케이션 개요 페이지에서 API 권한을 선택합니다.

  2. API 권한 페이지에서 권한 추가를 선택합니다.

    애플리케이션의 API 권한 페이지에 대한 권한 추가를 선택합니다.

  3. 열리는 요청 API 권한 플라이아웃에서 조직에서 사용하는 API 탭을 선택하고 검색 상자에 Office 365 Exchange Online을 입력한 다음 결과에서 선택합니다.

    조직에서 사용하는 API 탭에서 Office 365 Exchange Online을 찾아 선택합니다.

  4. 애플리케이션에 어떤 유형의 권한이 필요한가요? 플라이아웃이 나타나면 애플리케이션 권한을 선택합니다.

  5. 표시되는 권한 목록에서 Exchange를 확장하고 Exchange.ManageAsApp을 선택한 다음 권한 추가를 선택합니다.

    애플리케이션 사용 권한 탭에서 Exchange.ManageAsApp 권한을 찾아 선택합니다.

  6. API 권한 페이지로 돌아가 서 Office 365 Exchange Online>Exchange.ManageAsApp 이 나열되고 다음 값이 포함되어 있는지 확인합니다.

    • 형식: 애플리케이션.

    • 관리자 동의 필요: .

    • 상태: 현재 잘못된 값은 조직에> 대해 <부여되지 않습니다.

      조직에> 대한 <관리자 동의 부여를 선택하고 열리는 확인 대화 상자를 읽은 다음 예를 선택하여 이 값을 변경합니다.

      Exchange.ManageAsApp 권한에는 관리자 동의가 필요하지만 부여되지 않았습니다.

      이제 조직에>대해 <상태 값이 부여됩니다.

      Exchange.ManageAsApp 권한에 대해 관리자 동의가 부여됩니다.

  7. 기본 Microsoft Graph>User.Read 항목에 대해 ...> 를 선택합니다.관리자 동의를 취소한 다음 확인 대화 상자에서 예를 선택하여 상태를 기본 빈 값으로 다시 반환합니다.

    관리자 동의가 기본 Microsoft Graph User.Read 권한에서 제거되었습니다.

  8. 앱 등록 페이지로 돌아가려면 현재 API 사용 권한 페이지를 닫으십시오(브라우저 탭이 아님). 향후 단계에서 앱 등록 페이지를 사용합니다.

API 권한을 할당하도록 앱 매니페스트 수정

참고

이 섹션의 절차는 Office 365 Exchange Online에서 필요한 애플리케이션 Exchange.ManageAsApp 권한과 함께 앱에 대한 기존 기본 권한(Microsoft Graph에서 위임된 User.Read 권한)을 추가합니다.

  1. 개요 페이지의 관리 섹션에서 매니페스트를 선택합니다.

    애플리케이션 개요 페이지에서 매니페스트를 선택합니다.

  2. 매니페스트 페이지에서 항목(줄 42 또는 약)을 찾고 requiredResourceAccess 항목을 다음 코드 조각과 같이 표시합니다.

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000002-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "dc50a0fb-09a3-484d-be87-e023b12c6440",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    참고

    Microsoft 365 GCC High 또는 DoD 환경은 보안 & 규정 준수 PowerShell에만 액세스할 수 있습니다. 항목에 다음 값을 requiredResourceAccess 사용합니다.

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000007-0000-0ff1-ce00-000000000000",
            "resourceAccess": [
                {
                    "id": "455e5cd2-84e8-4751-8344-5672145dfa17",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    

    매니페스트 페이지에서 완료되면 저장을 선택합니다.

  3. 매니페스트 페이지의 관리 섹션에서 API 권한을 선택합니다.

    매니페스트 페이지에서 API 권한을 선택합니다.

  4. API 권한 페이지에서 Office 365 Exchange Online>Exchange.ManageAsApp이 나열되고 다음 값이 포함되어 있는지 확인합니다.

    • 형식: 애플리케이션.

    • 관리자 동의 필요: .

    • 상태: Office 365 Exchange Online>Exchange.ManageAsApp 항목에 대해 <조직에> 현재 잘못된 값이 부여되지 않습니다.

      조직에> 대한 <관리자 동의 부여를 선택하고, 열리는 확인 대화 상자를 읽은 다음, 예를 선택하여 상태 값을 변경합니다.

      Exchange.ManageAsApp 권한에는 관리자 동의가 필요하지만 부여되지 않았습니다.

      이제 조직에>대해 <상태 값이 부여됩니다.

      Exchange.ManageAsApp 권한에 대해 관리자 동의가 부여됩니다.

  5. 기본 Microsoft Graph>User.Read 항목에 대해 ...> 를 선택합니다.관리자 동의를 취소한 다음 확인 대화 상자에서 예를 선택하여 상태를 기본 빈 값으로 다시 반환합니다.

    관리자 동의가 기본 Microsoft Graph User.Read 권한에서 제거되었습니다.

  6. 앱 등록 페이지로 돌아가려면 현재 API 사용 권한 페이지를 닫으십시오(브라우저 탭이 아님). 향후 단계에서 앱 등록 페이지를 사용합니다.

3단계: 자체 서명된 인증서 만들기

다음 방법 중 하나를 사용하여 자체 서명 된 x.509 인증서를 만듭니다.

  • (권장) 권한이 상승된 (관리자 권한으로 실행) Windows PowerShell 세션에서 New-SelfSignedCertificate, Export-CertificateExport-PfxCertificate cmdlet을 사용하여 자체 서명된 인증서를 요청하고 .cer.pfx(기본적으로 SHA1)로 내보냅니다. 예:

    # Create certificate
    $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange
    
    # Export certificate to .pfx file
    $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password (Get-Credential).password
    
    # Export certificate to .cer file
    $mycert | Export-Certificate -FilePath mycert.cer
    
  • Create-SelfSignedCertificate script 스크립트를 사용하여 SHA1 인증서를 생성합니다.

    .\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2021-01-06 -EndDate 2022-01-06
    

4단계: Microsoft Entra 애플리케이션에 인증서 연결

인증서를 응용 프로그램에 등록 한 후 개인 키(.pfx 파일) 또는 지문을 사용하여 인증을 할 수 있습니다.

  1. 2단계 끝의 앱 등록 페이지의 소유 애플리케이션 탭에서 애플리케이션을 선택합니다.

    앱 등록 페이지로 돌아가야 하는 경우 를 사용하여 https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps소유 애플리케이션 탭이 선택되어 있는지 확인한 다음 애플리케이션을 선택합니다.

    앱을 선택하는 앱 등록 페이지입니다.

  2. 열리는 애플리케이션 페이지에서 관리 섹션에서 인증서 & 비밀을 선택합니다.

    애플리케이션 속성 페이지에서 인증서 & 비밀을 선택합니다.

  3. 인증서 & 비밀 페이지에서 인증서 업로드를 선택합니다.

    인증서 & 비밀 페이지에서 인증서 업로드를 선택합니다.

    열리는 대화 상자에서 3단계에서 생성한 자체 서명된 인증서(.cer 파일)를 찾습니다.

    인증서로 이동한 다음 추가를 선택합니다.

    완료되면 추가를 선택합니다.

    이제 인증서 섹션에 인증서가 표시됩니다.

    인증서가 추가되었음을 보여주는 응용 프로그램 페이지입니다.

  4. 현재 인증서 및 비밀 페이지를 닫은 다음 앱 등록 페이지를 닫아 기본 https://portal.azure.com/ 페이지로 돌아갑니다. 다음 단계에서 사용할 수 있습니다.

1단계에서 Exchange Online 위임 시나리오에 대한 애플리케이션 다중 테넌트 시나리오를 만든 경우 애플리케이션이 각 테넌트 조직의 Exchange Online에서 cmdlet을 실행할 수 있도록 Exchange.ManageAsApp 권한에 대한 관리자 동의를 부여해야 합니다. 이렇게 하려면 각 고객 테넌트에서 관리자 동의 URL을 생성합니다. 다중 테넌트 애플리케이션을 사용하여 테넌트 조직의 Exchange Online에 연결하기 전에 고객 테넌트 관리자가 다음 URL을 열어야 합니다.

https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default

  • <tenant-id> 는 고객의 테넌트 ID입니다.
  • <client-id> 는 다중 테넌트 애플리케이션의 ID입니다.
  • 기본 범위는 애플리케이션 권한을 부여하는 데 사용됩니다.

URL 구문에 대한 자세한 내용은 디렉터리 관리자에게 권한 요청을 참조하세요.

5단계: 애플리케이션에 Microsoft Entra 역할 할당

두 가지 옵션 가운데 선택하십시오.

  • 애플리케이션에 Microsoft Entra 역할 할당
  • 서비스 주체를 사용하여 애플리케이션에 사용자 지정 역할 그룹 할당: 이 방법은 REST API 모드에서 Exchange Online PowerShell 또는 보안 & 준수 PowerShell에 연결할 때만 지원됩니다. 보안 & 준수 PowerShell은 v3.2.0 이상에서 REST API 모드를 지원합니다.

참고

두 메서드를 결합하여 권한을 할당할 수도 있습니다. 예를 들어 "Exchange 받는 사람 관리자" 역할에 Microsoft Entra 역할을 사용하고 사용자 지정 RBAC 역할을 할당하여 권한을 확장할 수도 있습니다.

Exchange Online 위임 시나리오의 다중 테넌트 애플리케이션의 경우 각 고객 테넌트에서 권한을 할당해야 합니다.

애플리케이션에 Microsoft Entra 역할 할당

지원되는 Microsoft Entra 역할은 다음 표에 설명되어 있습니다.

역할 Exchange Online
PowerShell
보안 및 규정 준수
PowerShell
준수 관리자
Exchange Administrator
Exchange 받는 사람 관리자
전역 Administrator ²
전역 읽기 권한자
기술 지원팀 관리자
보안 관리자
보안 읽기 권한자

1 전역 관리자 및 Exchange 관리자 역할은 Exchange Online PowerShell의 모든 작업에 필요한 권한을 제공합니다. 예:

  • 수신자 관리.
  • 보안 및 보호 기능. 예를 들어 스팸 방지, 맬웨어 방지, 피싱 방지 및 관련 보고서가 있습니다.

보안 관리자 역할에는 동일한 작업에 필요한 권한이 없습니다.

² Microsoft에서는 사용 권한이 가장 적은 역할을 사용하는 것이 좋습니다. 사용 권한이 낮은 계정을 사용하면 조직의 보안을 개선하는 데 도움이 됩니다. 전역 관리자는 기존 역할을 사용할 수 없는 경우 긴급 시나리오로 제한해야 하는 매우 권한 있는 역할입니다.

Microsoft Entra ID에서 역할을 할당하는 방법에 대한 일반적인 지침은 사용자에게 Microsoft Entra 역할 할당을 참조하세요.

참고

다음 단계는 Exchange Online PowerShell과 Security & Compliance PowerShell에서 약간 다릅니다. 두 환경에 대한 단계가 표시됩니다. 두 환경 모두에 대한 역할을 구성하려면 이 섹션의 단계를 반복하세요.

  1. https://portal.azure.com/Microsoft Entra 관리 센터에서 페이지 맨 위에 있는 검색 상자에 역할 및 관리자 입력을 시작한 다음 서비스 섹션의 결과에서 Microsoft Entra 역할 및 관리자를 선택합니다.

    Azure Portal 홈페이지의 검색 결과에서 Microsoft Entra 역할 및 관리자를 보여 주는 스크린샷

    또는 Microsoft Entra 역할 및 관리자 페이지로 직접 이동하려면 를 사용합니다 https://portal.azure.com/#view/Microsoft_AAD_IAM/AllRolesBlade.

  2. 열리는 역할 및 관리자 페이지에서 결과에서 역할 이름(확인란 아님)을 클릭하여 지원되는 역할 중 하나를 찾아 선택합니다.

    • Exchange Online PowerShell: 예를 들어 Exchange 관리자 역할을 찾아 선택합니다.

      역할 이름을 클릭하여 지원되는 Exchange Online PowerShell 역할을 찾아 선택합니다.

    • 보안 & 규정 준수 PowerShell: 예를 들어 준수 관리자 역할을 찾아 선택합니다.

      역할 이름을 클릭하여 지원되는 보안 & 준수 PowerShell 역할을 찾아 선택합니다.

  3. 열리는 할당 페이지에서 할당 추가를 선택합니다.

    • Exchange Online PowerShell:

      Exchange Online PowerShell에 대한 역할 할당 페이지에서 할당 추가를 선택합니다.

    • Security & Compliance PowerShell:

      보안 & 규정 준수 PowerShell에 대한 역할 할당 페이지에서 할당 추가를 선택합니다.

  4. 열리는 할당 추가 플라이아웃에서 1단계에서 생성한 앱을 찾아 선택합니다.

    할당 추가 플라이아웃에서 앱을 찾아 선택합니다.

    할당 추가 플라이아웃이 완료되면 추가를 선택합니다.

  5. 할당 페이지로 돌아가서 역할이 앱에 할당되었는지 확인합니다.

    • Exchange Online PowerShell:

      Exchange Online PowerShell에 대한 역할에 앱을 추가하기 위한 역할 할당 페이지.

    • Security & Compliance PowerShell:

      보안 & 규정 준수 PowerShell의 역할에 앱을 추가한 후의 역할 할당 페이지입니다.

서비스 주체를 사용하여 애플리케이션에 사용자 지정 역할 그룹 할당

참고

새 서비스 주체를 만드는 단계를 완료 하기 전에 Exchange Online PowerShell 또는 보안 & 준수 PowerShell에 연결해야 합니다. PowerShell에 연결하지 않고 새 서비스 주체를 만드는 것은 작동하지 않습니다(새 서비스 주체를 만들려면 Azure 앱 ID 및 개체 ID가 필요).

이 방법은 REST API 모드에서 Exchange Online PowerShell 또는 보안 & 준수 PowerShell에 연결하는 경우에만 지원됩니다. 보안 & 준수 PowerShell은 v3.2.0 이상에서 REST API 모드를 지원합니다.

사용자 지정 역할 그룹을 만드는 방법에 대한 자세한 내용은 Exchange Online에서 역할 그룹 만들기Microsoft Defender 포털에서 메일 & 공동 작업 역할 그룹 만들기를 참조하세요. 애플리케이션에 할당하는 사용자 지정 역할 그룹에는 기본 제공 역할과 사용자 지정 역할의 조합이 포함될 수 있습니다.

서비스 주체를 사용하여 애플리케이션에 사용자 지정 역할 그룹을 할당하려면 다음 단계를 수행합니다.

  1. Microsoft Graph PowerShell에서 다음 명령을 실행하여 1단계에서 등록한 Microsoft Entra 애플리케이션의 세부 정보를 변수에 저장합니다.

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $<VariableName1> = Get-MgServicePrincipal -Filter "DisplayName eq '<AppName>'"
    

    예:

    Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All
    
    $AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'ExO PowerShell CBA'"
    

    자세한 구문 및 매개 변수 정보는 Get-MgServicePrincipal을 참조하세요.

  2. 동일한 PowerShell 창에서 Exchange Online PowerShell 또는 보안 & 준수 PowerShell 에 연결하고 다음 명령을 실행하여 다음을 수행합니다.

    • Microsoft Entra 애플리케이션에 대한 서비스 주체 개체를 만듭니다.
    • 다음 단계에서 사용할 변수에 서비스 주체의 세부 정보를 저장합니다.
    New-ServicePrincipal -AppId $<VariableName1>.AppId -ObjectId $<VariableName1>.Id -DisplayName "<Descriptive Name>"
    
    $<VariableName2> = Get-ServicePrincipal -Identity "<Descriptive Name>"
    

    예:

    New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App ExO PowerShell CBA"
    
    $SP = Get-ServicePrincipal -Identity "SP for Azure AD App ExO PowerShell CBA"
    

    자세한 구문 및 매개 변수 정보는 New-ServicePrincipal을 참조하세요.

  3. Exchange Online PowerShell 또는 보안 & 준수 PowerShell에서 다음 명령을 실행하여 서비스 주체를 사용자 지정 역할 그룹의 구성원으로 추가합니다.

    Add-RoleGroupMember -Identity "<CustomRoleGroupName>" -Member <$<VariableName2>.Identity | $<VariableName2>.ObjectId | $<VariableName2>.Id>
    

    예:

    Add-RoleGroupMember -Identity "Contoso View-Only Recipients" -Member $SP.Identity
    

    구문과 매개 변수에 대한 자세한 내용은 Add-RoleGroupMember를 참조하십시오.