리소스에 액세스할 수 있는 Microsoft Entra 애플리케이션 및 서비스 주체 만들기

이 문서에서는 역할 기반 액세스 제어와 함께 사용할 수 있는 Microsoft Entra 애플리케이션 및 서비스 주체를 만드는 방법을 알아봅니다. Microsoft Entra ID에 새 애플리케이션을 등록하면 앱 등록을 위한 서비스 주체가 자동으로 만들어집니다. 서비스 주체는 Microsoft Entra 테넌트의 앱 ID입니다. 리소스에 대한 액세스는 서비스 주체에 할당된 역할로 제한되므로 액세스할 수 있는 리소스와 해당 수준을 제어할 수 있습니다. 보안상 이유로 사용자 ID를 통해 로그인할 수 있게 하는 대신, 항상 자동화된 도구에서 서비스 주체를 사용하는 것이 좋습니다.

이 문서에서는 Azure Portal에서 단일 테넌트 애플리케이션을 만듭니다. 이 예제는 한 조직 내에서 사용되는 기간 업무 애플리케이션에 적용할 수 있습니다. Azure PowerShell 또는 Azure CLI를 사용하여 서비스 주체를 만들 수도 있습니다.

Important

서비스 주체를 만드는 대신 애플리케이션 ID에 Azure 리소스에 대한 관리 ID를 사용하는 것이 좋습니다. 코드가 관리 ID를 지원하는 서비스에서 실행되고 Microsoft Entra 인증을 지원하는 리소스에 액세스하는 경우에는 관리 ID를 사용하는 방법이 더 좋습니다. Azure 리소스에 대한 관리 ID 및 이것이 지원되는 서비스를 알아보려면 Azure 리소스에 대한 관리 ID란?을 참조하세요.

앱 등록, 애플리케이션 개체 및 서비스 주체 간의 관계에 대한 자세한 내용은 Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체를 참조하세요.

필수 조건

Microsoft Entra 테넌트에 애플리케이션을 등록하려면 다음이 필요합니다.

앱을 등록하는 데 필요한 권한

Microsoft Entra 테넌트에 애플리케이션을 등록하고 Azure 구독의 역할을 애플리케이션에 할당하려면 충분한 권한이 있어야 합니다. 이러한 작업을 완료하려면 Application.ReadWrite.All 권한이 필요합니다.

Microsoft Entra ID로 애플리케이션을 등록하고 서비스 주체 만들기

이 문서의 단계는 시작하는 포털에 따라 약간 다를 수 있습니다.

  1. 최소한 클라우드 애플리케이션 관리자Microsoft Entra 관리 센터에 로그인합니다.

  2. ID>애플리케이션>앱 등록으로 이동한 다음 새 등록을 선택합니다.

  3. 애플리케이션 이름을 지정합니다(예: "example-app").

  4. 애플리케이션을 사용할 수 있는 사용자를 결정하는, 지원되는 계정 유형을 선택합니다.

  5. URI 리디렉션에서, 생성할 애플리케이션 형식에 을 선택합니다. 액세스 토큰이 전송되는 URI를 입력합니다.

  6. 등록을 선택합니다.

    Type a name for your application.

Microsoft Entra 애플리케이션과 서비스 주체를 만들었습니다.

애플리케이션에 역할 할당

구독의 리소스에 액세스하려면 역할을 애플리케이션에 할당해야 합니다. 애플리케이션에 적합한 권한을 제공하는 역할을 결정합니다. 사용 가능한 역할에 대한 자세한 내용을 알아보려면 Azure 기본 제공 역할을 참조하세요.

구독, 리소스 그룹 또는 리소스 수준에서 범위를 설정할 수 있습니다. 권한은 하위 수준의 범위로 상속됩니다.

  1. Azure Portal에 로그인합니다.

  2. 애플리케이션을 할당하려는 범위 수준을 선택합니다. 예를 들어 구독 범위에서 역할을 할당하려면 구독을 검색하고 선택합니다. 찾고 있는 구독이 표시되지 않으면 전역 구독 필터를 선택합니다. 포털에 대해 원하는 구독이 선택되었는지 확인합니다.

  3. 액세스 제어(IAM)를 선택합니다.

  4. 추가를 선택한 다음, 역할 할당 추가를 선택합니다.

  5. 역할 탭에서 목록의 애플리케이션에 할당할 역할을 선택합니다. 예를 들어 애플리케이션이 인스턴스 다시 부팅, 시작 및 중지 같은 작업을 실행하게 하려면 Contributor 역할을 선택합니다.

  6. 다음을 선택합니다.

  7. 멤버 탭에서 액세스 할당을 선택한 다음 사용자, 그룹 또는 서비스 주체를 선택합니다.

  8. 멤버 선택을 선택합니다. 기본적으로 Microsoft Entra 애플리케이션은 사용 가능한 옵션에 표시되지 않습니다. 애플리케이션을 찾으려면 해당 이름으로 검색합니다.

  9. 선택 단추를 선택한 다음, 검토 + 할당을 선택합니다.

    Screenshot showing role assignment.

서비스 주체가 설정되었습니다. 서비스 주체 사용을 시작하여 스크립트나 앱을 실행할 수 있습니다. 서비스 주체를 관리하려면(권한, 사용자가 동의한 권한, 사용자가 동의한 항목 확인, 권한 검토, 로그인 정보 확인 등) 엔터프라이즈 애플리케이션으로 이동하세요.

다음 섹션에서는 프로그래밍 방식으로 로그인할 때 필요한 값을 가져오는 방법을 보여 줍니다.

애플리케이션에 로그인합니다.

프로그래밍 방식으로 로그인하는 경우에는 테넌트 ID와 애플리케이션 ID를 인증 요청으로 전달합니다. 인증서 또는 인증 키도 필요합니다. 디렉터리(테넌트) ID 및 애플리케이션 ID를 가져오려면:

  1. ID>애플리케이션>앱 등록으로 이동한 다음 애플리케이션을 선택합니다.
  2. 앱의 개요 페이지에서 디렉터리(테넌트) ID 값을 복사하고 애플리케이션 코드에 저장합니다.
  3. 애플리케이션(클라이언트) ID를 복사하고 애플리케이션 코드에 저장합니다.

인증 설정

서비스 주체에 사용할 수 있는 인증 유형에는 암호 기반 인증(애플리케이션 비밀) 및 인증서 기반 인증의 두 가지 유형이 있습니다. 인증 기관에서 발급한 신뢰할 수 있는 인증서를 사용하는 것이 좋지만 애플리케이션 비밀을 만들거나 테스트용 자체 서명된 인증서를 만들 수도 있습니다.

인증서 파일을 업로드하려면:

  1. ID>애플리케이션>앱 등록으로 이동한 다음 애플리케이션을 선택합니다.
  2. 인증서 및 비밀을 선택합니다.
  3. 인증서를 선택하고 인증서 업로드를 선택한 다음 업로드할 인증서 파일을 선택합니다.
  4. 추가를 선택합니다. 인증서가 업로드되고 지문, 시작 날짜 및 만료 값이 표시됩니다.

애플리케이션 등록 포털에서 애플리케이션에 인증서를 등록한 후, 기밀 클라이언트 애플리케이션 코드가 인증서를 사용하도록 설정합니다.

옵션 2: 테스트 전용 - 자체 서명된 인증서 만들기 및 업로드

원한다면 테스트 용도로만 사용해야 하는 자체 서명된 인증서를 만들어도 됩니다. 자체 서명된 인증서를 만들려면 Windows PowerShell을 열고 다음 매개 변수와 함께 New-SelfSignedCertificate를 실행하여 컴퓨터의 사용자 인증서 저장소에 인증서를 만듭니다.

$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My"  -KeyExportPolicy Exportable -KeySpec Signature

Windows 제어판에서 액세스할 수 있는 사용자 인증서 관리 MMC 스냅인을 사용하여 이 인증서를 파일로 내보냅니다.

  1. 시작 메뉴에서 실행 을 선택한 다음 certmgr.msc를 입력합니다. 현재 사용자에 대한 인증서 관리자 도구가 표시됩니다.
  2. 인증서를 보려면 왼쪽 창의 인증서 - 현재 사용자에서 개인 디렉터리를 확장합니다.
  3. 생성한 인증서를 마우스 오른쪽 단추로 클릭하고 모든 작업 -> 내보내기를 선택합니다.
  4. 인증서 내보내기 마법사의 지시를 따릅니다.

인증서를 업로드하는 방법:

  1. ID>애플리케이션>앱 등록으로 이동한 다음 애플리케이션을 선택합니다.
  2. 인증서 및 비밀을 선택합니다.
  3. 인증서를 선택하고, 인증서 업로드를 선택한 다음, 인증서(내보낸 기존 인증서 또는 자체 서명된 인증서)를 선택합니다.
  4. 추가를 선택합니다.

애플리케이션 등록 포털에서 애플리케이션에 인증서를 등록한 후, 기밀 클라이언트 애플리케이션 코드가 인증서를 사용하도록 설정합니다.

옵션 3: 새 클라이언트 암호 만들기

인증서를 사용하지 않도록 선택했다면 새 클라이언트 암호를 만들 수 있습니다.

  1. ID>애플리케이션>앱 등록으로 이동한 다음 애플리케이션을 선택합니다.
  2. 인증서 및 비밀을 선택합니다.
  3. 클라이언트 암호를 선택한 다음, 새 클라이언트 암호를 선택합니다.
  4. 비밀에 대한 설명과 기간을 제공합니다.
  5. 추가를 선택합니다.

클라이언트 암호를 저장한 후 클라이언트 암호의 값이 표시됩니다. 이 값은 한 번만 표시되므로 이 값을 복사하여 애플리케이션이 검색할 수 있는 위치, 즉 일반적으로 애플리케이션이 소스 코드에서 clientId, 또는 authoruty와 같은 값을 보관하는 위치에 저장하세요. 애플리케이션으로 로그인하려면 애플리케이션의 클라이언트 ID와 함께 비밀 값을 제공해야 합니다.

Screenshot showing the client secret.

리소스에 대한 액세스 정책 구성

애플리케이션이 액세스해야 하는 리소스에 대한 추가 권한을 구성해야 할 수도 있습니다. 예를 들어 키, 비밀 또는 인증서에 대한 액세스 권한을 애플리케이션에 부여하려면 키 자격 증명 모음의 액세스 정책을 업데이트해야 합니다.

액세스 정책을 구성하려면:

  1. Azure Portal에 로그인합니다.

  2. 키 자격 증명 모음을 선택하고 액세스 정책을 선택합니다.

  3. 액세스 정책 추가를 선택하고 애플리케이션에 부여할 키, 비밀과 인증서 권한을 선택합니다. 앞에서 만든 서비스 주체를 선택합니다.

  4. 추가를 선택하여 액세스 정책을 추가합니다.

  5. 저장합니다.

    Add access policy

다음 단계