[Entra] 애플리케이션 등록 - API
Microsoft Entra 는 통합 클라우드 ID 및 액세스 솔루션입니다.
사용자 및 그룹 관리뿐만 아니라, 애플리케이션에 대한 관리 또한 할 수 있는데요.
애플리케이션 추가를 통해 우리는 다음과 같은 작업들을 진행할 수 있습니다.
- Microsoft에서 제공하는 API를 사용
- 테넌트를 IdP로 하여 다른 앱과 연동 (SSO)
- 매니페스트 수정을 통한 기능 제공
본 포스팅에서는, 우선적으로 Microsoft에서 제공하는 API 사용을 위한 애플리케이션을 생성해보도록 하겠습니다.
애플리케이션 생성
[Microsoft Entra 관리 센터] > [애플리케이션]> [앱 등록] > [모든 애플리케이션] 으로 이동합니다.
“새 등록” 을 눌러 애플리케이션을 생성합니다.
적절한 네이밍 규칙을 기반으로, 애플리케이션 이름을 정해줍니다.
“지원되는 계정 유형”은 기본 항목으로 선택해주어도 무방합니다.
다중 테넌트와 사용이 필요한 경우, 두 번째/세 번째 항목을 선택해줍니다.
“등록” 버튼을 눌러 애플리케이션을 생성해줍니다.
API 사용 권한 추가
애플리케이션이 생성되었습니다.
왼쪽 항목의 “API 사용 권한” 을 클릭합니다.
화면과 같이, 기본적으로 “Microsoft Graph”의 User.Read 권한이 부여되어 있는 것을 확인할 수 있습니다.
저는 본 포스팅에서는 “Microsoft Graph” API의 “ServiceHealth.Read.All”과 “ServiceMessage.Read.All” 사용 권한을 추가해볼건데요,
해당 권한은 [Microsoft 관리 센터] 에서 불러오는 [서비스 상태] 에 대한 API 입니다.
“권한 추가” > “Microsoft Graph” > “애플리케이션 사용 권한” 클릭 > “ServiceHealth.Read.All”과 “ServiceMessage.Read.All” 권한을 선택하여 추가합니다.
User.Read 권한은 제거해도 무방합니다.
권한은 위임된 권한 과 애플리케이션 사용 권한 으로 나뉩니다.
위임된 권한은 사용자의 자격증명에 대한 정보가 필요한 권한이고, 애플리케이션 사용 권한은 별도 사용자 정보 없이 자체적으로 권한을 가지고 작업을 수행합니다.
관련 내용은 링크를 참고해주세요.
“테넌트명 에 대한 관리자 동의 허용” 을 클릭합니다.
해당 버튼을 누르지 않으면, 엔드 유저가 API 이용 시 권한 사용에 대한 동의를 직접 수락해야 합니다.
클라이언트 시크릿(Client Secret) 생성
“Microsoft Graph” API 를 호출할 수 있는 권한을 가진 애플리케이션을 생성하였습니다.
이번에는 토큰 발급을 위한 클라이언트 시크릿을 생성해보겠습니다.
왼쪽 항목의 [인증서 및 암호] > [클라이언트 비밀] 을 클릭합니다.
그리고 “새 클라이언트 암호” 를 클릭합니다.
적절한 설명을 입력하고, 만료 기간을 선택한 뒤 “추가” 를 클릭합니다.
위 사진과 같이 “값”과 “비밀 ID” 값이 추가되는데요, 토큰 발급에 꼭 필요한 정보이니 기입을 해둡시다.
만료 기간이 지나면 사용하지 못하므로, 만료 기간 전에 새 클라이언트 암호를 생성해야 합니다.
애플리케이션 속성 확인
[개요] 로 이동합니다.
사진과 같이 애플리케이션에 대한 여러가지 정보가 있는데요,
인증 및 API 사용을 위한 토큰 발급을 위해서는 애플리케이션(클라이언트) ID 와 디렉터리(테넌트) ID 값 또한 알아두어야 합니다.
API 테스트
API 사용을 위한 애플리케이션 생성 및 구성은 완료되었습니다.
실제로 API 호출을 진행해볼까요?
대표적인 REST API 툴인 Postman을 이용하거나, MS에서 제공하는 Graph Explorer를 사용하면 됩니다.
저는 Postman을 이용해 테스트를 진행해보았습니다.
적절한 정보를 기입해주고, 액세스 토큰을 발급해줍니다.
해당 토큰을 헤더에 삽입하여 호출을 진행하니, 정상적으로 결과가 반환되는 것으로 확인됩니다.