Sion
Sion
M365 운영 업무를 담당하고 있습니다. 배우고 경험한 것들을 조금씩 기록해나갑니다.

[Entra] 애플리케이션 등록 - 무인 스크립트

[Entra] 애플리케이션 등록 - 무인 스크립트

조직에서 M365 테넌트를 운영하면서, 로그 열람 및 수집 등을 위해 특정 사용자에게 관리자 권한을 일부 제공해야 하는 경우가 있습니다.
이 경우 보통 API 권한을 주거나(이전 포스팅), Powershell 명령어를 사용할 수 있는 권한을 주곤 하는데요.

본 포스팅에서는 이전 포스팅에 이어, 애플리케이션 생성을 통해 무인 스크립트를 구성하는 방법을 소개해보도록 하겠습니다.
ExchangeOnline 모듈을 사용하는 것을 가정합니다🙂

무인 스크립트

관리자 권한으로 Powershell 모듈에 연결하기 위해서는, 관리자 계정에 대한 자격증명 정보가 필요합니다.
다만 무인 스크립트를 구성하면, 자격증명 정보가 없이도 관리자 권한으로 명령어 실행이 가능합니다.

관련 상세 문서는 링크를 참고해주세요.

애플리케이션 생성

[Microsoft Entra 관리 센터] > [애플리케이션]> [엔터프라이즈 애플리케이션] 으로 이동합니다.
“새로운 애플리케이션” 을 눌러 애플리케이션을 생성합니다.

마찬가지로, 적절한 네이밍 규칙을 기반으로 애플리케이션 이름을 정해줍니다.

“지원되는 계정 유형”은 기본 항목으로 선택해주어도 무방합니다.
다중 테넌트와 사용이 필요한 경우, 두 번째/세 번째 항목을 선택해줍니다.

“등록” 버튼을 눌러 애플리케이션을 생성해줍니다.

매니페스트 수정

애플리케이션이 생성되었습니다.
왼쪽 항목의 “매니페스트” 를 클릭합니다.

위 화면과 같이 JSON 형식의 내용이 확인되는데요.
“다운로드” 버튼을 클릭하여 JSON 파일을 다운로드 받아줍니다.

JSON 파일을 열어서 확인합니다.
약 42번째 줄에 “requiredResourceAccess” 라는 속성값이 있는데, 해당 속성값을 아래 항목으로 대체시켜 줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"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"
            }
        ]
    }
],

파일을 저장하고, 다시 업로드합니다.
매니페스트의 각 속성에 대한 상세 정보는 다음 링크를 참고해주세요.

[API 사용 권한] 항목을 클릭합니다.
상기 사진과 같이, “Office 365 Exchange Online”의 “Exchange.ManageAsApp” 권한이 잘 들어가있는지 확인합니다.

권한이 잘 부여되었다면, “테넌트명 에 대한 관리자 동의 허용” 을 클릭합니다.

인증서 생성 및 연결

Powershell 모듈 연결 시, 자격증명 대신 사용할 수 있는 인증서를 생성해보겠습니다.

1
2
3
4
5
6
7
8
9
10
11
# 인증서 패스워드
$mypwd = ConvertTo-SecureString -String '패스워드' -Force -AsPlainText

# 인증서 생성 (2년)
$mycert = New-SelfSignedCertificate -DnsName "DNS명" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(2) -KeySpec KeyExchange

# 인증서 pfx 파일 추출
$mycert | Export-PfxCertificate -FilePath mycert.pfx -Password $mypwd

# 인증서 cer 파일 추출
$mycert | Export-Certificate -FilePath mycert.cer

상기 명령어를 통해, 자체 서명된 인증서 파일을 생성합니다.

[인증서 및 암호] > [인증서] 를 클릭합니다.
“인증서 업로드” 를 클릭하여, 생성된 cer 파일을 업로드합니다.

앱 역할 부여

마지막으로, 앱에 역할 할당을 진행해주면 설정은 마무리됩니다.

ExchangeOnline 모듈은 “Connect-ExhangeOnline” 및 “Connect-IPPSSession” 연결에 사용되는데요,
연결하고자 하는 서비스에 따라 아래와 같이 앱 역할을 부여하면 됩니다.

  • Connect-ExchangeOnline: [Microsoft Entra 역할 및 관리자] > “Exchange 관리자” > 앱 이름을 검색하여 추가합니다.
  • Connect-IPPSSession: [Microsoft Entra 역할 및 관리자] > “준수 관리자” > 앱 이름을 검색하여 추가합니다.

모듈 연결

권한이 필요한 사용자의 PC에, 인증서를 통해 모듈에 연결하는 작업을 진행해봅시다.

사용자에게 제공해야 하는 정보는 다음과 같습니다.

  • 인증서 파일
  • 인증서 패스워드
  • 인증서 지문(Thumbprint)
  • 애플리케이션 ID
  • 테넌트명

먼저, 사용자 PC에 인증서 파일을 설치합니다.
이때 인증서의 패스워드를 입력합니다.

그 후, 아래와 같은 Powershell 명령어를 통해 모듈에 연결하면 됩니다.

1
2
Connect-ExchangeOnline -CertificateThumbprint "인증서 지문" -Organization "테넌트명.onmicrosoft.com" -AppId "애플리케이션 ID"
Connect-IPPSSession -CertificateThumbprint "인증서 지문" -Organization "테넌트명.onmicrosoft.com" -AppId "애플리케이션 ID"