Microsoft Graph 애플리케이션 등록

Microsoft Graph를 사용하면 고객 사용자 계정 및 사용자 지정 정책을 포함하여 Azure AD B2C 테넌트 내의 많은 리소스를 관리할 수 있습니다. Microsoft Graph API를 호출하는 스크립트 또는 애플리케이션을 작성하여 다음과 같은 테넌트 관리 작업을 자동화할 수 있습니다.

  • 기존 사용자 저장소를 Azure AD B2C 테넌트로 마이그레이션합니다.
  • Azure DevOps에서 Azure Pipeline을 사용하여 사용자 지정 정책 배포 및 사용자 지정 정책 키 관리
  • 고유한 페이지에서 사용자 등록을 호스팅하고 백그라운드에서 Azure AD B2C 디렉터리에 사용자 계정을 만듭니다.
  • 애플리케이션 등록 자동화
  • 감사 로그 가져오기

다음 섹션에서는 Microsoft Graph API를 사용하여 Azure AD B2C 디렉터리의 리소스 관리를 자동화하기 위해 준비하는 데 도움이 됩니다.

Microsoft Graph API 상호 작용 모드

Azure AD B2C 테넌트에서 리소스를 관리하기 위해 Microsoft Graph API를 사용할 때 사용할 수 있는 두 가지 통신 모드가 있습니다.

  • 대화형 - 1회 실행 작업에 적합하며 B2C 테넌트의 관리자 계정을 사용하여 관리 작업을 수행합니다. 이 모드에서는 관리자가 Microsoft Graph API를 호출하기 전에 자격 증명을 사용하여 로그인해야 합니다.

  • 자동화 - 예약되거나 지속적으로 실행되는 작업에 적합한 이 방법은 관리 작업을 수행하는 데 필요한 권한으로 구성한 서비스 계정을 사용합니다. 애플리케이션 및 스크립트가 애플리케이션(클라이언트) IDOAuth 2.0 클라이언트 자격 증명 부여를 사용하여 인증에 사용하는 애플리케이션을 등록하여 Azure AD B2C에서 "서비스 계정"을 만듭니다. 이 경우 애플리케이션은 앞에서 설명한 대화형 방법의 관리자 사용자가 아니라 Microsoft Graph API를 호출하는 자체 역할을 합니다.

다음 섹션에 표시된 애플리케이션 등록을 만들어 자동화된 상호 작용 시나리오를 사용하도록 설정합니다.

Azure AD B2C 인증 서비스는 OAuth 2.0 클라이언트 자격 증명 부여 흐름(현재 공개 미리 보기)을 직접 지원하지만 Microsoft Graph API를 통해 Azure AD B2C 리소스를 관리하는 데 사용할 수 없습니다. 그러나 Azure AD B2C 테넌트의 애플리케이션에 대해 Microsoft Entra ID 및 Microsoft ID 플랫폼 /token 엔드포인트를 사용하여 클라이언트 자격 증명 흐름을 설정할 수 있습니다.

관리 애플리케이션 등록

스크립트 및 애플리케이션이 Microsoft Graph API와 상호 작용하여 Azure AD B2C 리소스를 관리하려면 먼저 필요한 API 권한을 부여하는 애플리케이션 등록을 Azure AD B2C 테넌트에 만들어야 합니다.

  1. Azure Portal에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
  3. Azure Portal에서 Azure AD B2C를 검색하고 선택합니다.
  4. 앱 등록을 선택한 다음, 새 등록을 선택합니다.
  5. 애플리케이션의 이름을 입력합니다. 예: managementapp1.
  6. 이 조직 디렉터리의 계정만을 선택합니다.
  7. 사용 권한에서 openid 및 offline_access 권한에 대한 관리자 동의 부여 확인란을 선택 해제합니다.
  8. 등록을 선택합니다.
  9. 애플리케이션 개요 페이지에 표시된 애플리케이션(클라이언트) ID를 기록합니다. 이후 단계에서 이 값을 사용합니다.

API 액세스 권한 부여

애플리케이션이 Microsoft Graph의 데이터에 액세스할 수 있도록 등록된 애플리케이션에 관련 애플리케이션 권한을 부여합니다. 애플리케이션의 유효 권한은 권한이 암시하는 전체 수준의 권한입니다. 예를 들어 Azure AD B2C 테넌트의 모든 사용자를 만들기, 읽기, 업데이트삭제하려면 User.ReadWrite.All 권한을 추가합니다.

참고 항목

User.ReadWrite.All 권한에는 사용자 계정 암호 업데이트 기능이 포함되어 있지 않습니다. 애플리케이션에서 사용자 계정 암호를 업데이트해야 하는 경우 사용자 관리자 역할을 부여합니다. 사용자 관리자 역할을 부여할 때 User.ReadWrite.All은 필요하지 않습니다. 사용자 관리자 역할에는 사용자를 관리하는 데 필요한 모든 항목이 포함됩니다.

애플리케이션에 여러 애플리케이션 권한을 부여할 수 있습니다. 예를 들어 애플리케이션에서 Azure AD B2C 테넌트의 그룹 또한 관리해야 하는 경우 Group.ReadWrite.All 권한도 추가합니다.

앱 등록

  1. 관리 아래에서 API 권한을 선택합니다.
  2. 구성된 사용 권한 아래에서 권한 추가를 선택합니다.
  3. Microsoft API 탭을 선택한 다음, Microsoft Graph를 선택합니다.
  4. 애플리케이션 권한 선택.
  5. 적절한 권한 그룹을 확장하고 관리 애플리케이션에 부여할 권한의 확인란을 선택합니다. 예:
    • 사용자>User.ReadWrite.All: 사용자 마이그레이션 또는 사용자 관리 시나리오에 사용됩니다.
    • 그룹>Group.ReadWrite.All: 그룹 만들기, 그룹 멤버 자격 읽기 및 업데이트, 그룹 삭제에 사용됩니다.
    • AuditLog>AuditLog.Read.All: 디렉터리의 감사 로그를 읽는데 사용됩니다.
    • 정책>Policy.ReadWrite.TrustFramework: CI/CD(연속 통합/지속적인 업데이트) 시나리오에 사용됩니다. 예를 들어 Azure Pipelines를 사용하는 사용자 지정 정책 배포가 있습니다.
  6. 권한 추가를 선택합니다. 안내에 따라 몇 분 정도 기다린 후 다음 단계를 진행하세요.
  7. (테넌트 이름)에 대한 관리자 동의 허용을 선택합니다.
  8. 클라우드 애플리케이션 관리자 역할이 할당된 Azure AD B2C 테넌트에서 계정으로 로그인한 다음, (테넌트 이름)에 대한 관리자 동의 허용을 선택합니다.
  9. 새로 고침을 선택한 다음, 상태 아래에 "...에 대해 허용됨"이 표시되는지 확인합니다. 권한이 전파되려면 몇 분 정도 걸릴 수 있습니다.

[선택 사항] 사용자 관리자 역할 부여

애플리케이션 또는 스크립트에서 사용자 암호를 업데이트해야 하는 경우 애플리케이션에 사용자 관리자 역할을 할당해야 합니다. 사용자 관리자 역할에는 애플리케이션에 부여하는 고정된 권한 집합이 있습니다.

사용자 관리자 역할을 추가하려면 다음 단계를 따르세요.

  1. Azure Portal에 로그인합니다.
  2. 여러 테넌트에 액세스할 수 있는 경우 상단 메뉴의 설정 아이콘을 선택하여 디렉터리 + 구독 메뉴에서 Azure AD B2C 테넌트로 전환합니다.
  3. Azure AD B2C를 검색하고 선택합니다.
  4. 관리 아래에서 역할 및 관리자를 선택합니다.
  5. 사용자 관리자 역할을 선택합니다.
  6. 할당 추가를 선택합니다.
  7. 선택 텍스트 상자에 이전에 등록한 애플리케이션의 이름 또는 ID를 입력합니다(예: managementapp1). 검색 결과에 표시되면 애플리케이션을 선택합니다.
  8. 추가를 선택합니다. 권한이 완전히 전파되는 데 몇 분 정도 걸릴 수 있습니다.

클라이언트 비밀 생성

애플리케이션은 토큰을 요청할 때 ID를 증명하기 위해 클라이언트 비밀을 필요로 합니다. 클라이언트 비밀을 추가하려면 다음 단계를 수행합니다.

  1. 관리에서 인증서 및 비밀을 선택합니다.
  2. 새 클라이언트 비밀을 선택합니다.
  3. 설명 상자에 클라이언트 암호에 대한 설명을 입력합니다. 예: clientsecret1.
  4. 만료에서 암호가 유효한 기간을 선택한 다음 추가를 선택합니다.
  5. 비밀의 을 기록합니다. 이후 단계에서 구성에 이 값을 사용합니다.

다음 단계

이제 관리 애플리케이션을 등록하고 필요한 권한을 부여했으므로 애플리케이션 및 서비스(예: Azure Pipelines)에서 자격 증명 및 사용 권한을 사용하여 Microsoft Graph API와 상호 작용할 수 있습니다.