엔터프라이즈 바인딩 만들기

EMM 콘솔을 통해 새 조직을 등록하려면 엔터프라이즈 결합을 만들어야 합니다. Enterprises 리소스는 EMM과 조직 간의 바인딩을 나타냅니다. 이 인스턴스의 인스턴스를 사용하여 조직을 대신하여 작업을 호출합니다.

Play EMM API는 엔터프라이즈 결합 인스턴스를 만드는 세 가지 방법을 제공합니다.

  • 관리 Google 도메인 가입 - 다른 두 가지 방법 대신 이 방법을 사용할 수 있습니다. 기존의 관리형 Google 도메인과 조직이 있으며 Google을 처음 사용하는 조직은 동일한 가입 UI를 사용합니다. 사용자가 UI를 거치는 여정은 사용자의 상황과 요구에 따라 달라집니다. 조직은 EMM 토큰을 미리 얻을 필요가 없습니다.

  • 관리 Google Play 계정 가입: 조직에서 관리 Google Play 계정을 사용하려고 합니다. Google의 Android 가입 UI를 EMM 콘솔과 통합하면 조직에서 EMM에 바인딩하는 엔터프라이즈 결합 인스턴스를 빠르게 만들 수 있습니다. 이렇게 하면 사용자 및 기기의 관리 Google Play 계정이 사용 설정됩니다. API 문서에서는 이 접근 방식을 EMM에서 시작된이라고 합니다. 이 방법은 지원 중단되고 앞의 관리형 Google 도메인 가입 방법으로 대체됩니다.

  • 관리 Google 도메인 등록 - 조직에 기존 관리 Google 도메인이 있습니다. IT 관리자는 Google에서 도메인 소유권을 확인하고, EMM 토큰을 가져오고, 엔터프라이즈 서비스 계정을 만드는 등의 여러 수동 작업을 완료합니다. API 문서에서는 이 접근 방식을 Google에서 시작한 방법이라고도 합니다.

Enterprises 리소스를 사용하여 EMM 콘솔에서 두 가지 방법 중 하나를 지원할 수 있습니다. 표 1에는 조직을 EMM에 결합하기 위한 이 리소스의 관련 필드와 작업이 나와 있습니다.

표 1: Enterprises API 및 대체 바인딩 프로세스

 기업용 Managed Google Play 계정관리 Google 도메인 설명
필드
id 조직의 고유 식별자로, enrollcompleteSignup 호출에서 반환됩니다.
kind 고정 문자열 값 &nbspandroidenterprise#enterprise 보십시오를 사용하여 리소스 유형을 식별합니다.
이름 enterprise 객체와 연결된 조직입니다.
primaryDomain설정되지 않음 기업용 Managed Google Play 계정은 Google 도메인 모델에 연결되어 있지 않으므로 이 필드는 관리 Google 도메인에만 관련이 있습니다.
관리자[]설정되지 않음EMM에서 시작한 가입 프로세스를 사용하여 Android에 가입하는 IT 관리자가 엔터프라이즈 결합의 관리자 (소유자)가 됩니다. IT 관리자는 관리 Google Play Console을 사용하여 조직의 다른 사용자를 관리 작업에 참여하도록 초대할 수 있습니다. 관리 Google Play 고객센터를 참고하세요.
admin[].email 설정되지 않음
방법
completeSignup completionTokenenterpriseToken가 주어지면 응답 본문에 Enterprises 리소스가 반환됩니다.
generateSignupUrl callbackUrl이 주어지면 URL과 completionToken이 반환됩니다.
enroll 요청과 함께 토큰이 제출된 EMM에 호출자를 등록합니다.
getServiceAccount 서비스 계정과 사용자 인증 정보를 반환합니다.
setAccount 기업으로 API를 인증하는 데 사용할 계정을 설정합니다.
unenroll EMM은 등록 해제를 사용하여 두 가지 유형의 엔터프라이즈에 대한 바인딩을 해제할 수 있습니다. ESA 사용자 인증 정보가 아닌 MSA용 EMM 사용자 인증 정보를 사용하여 호출해야 합니다.

관리 Google Play 계정 가입

이 가입 방법은 지원 중단되었습니다. 대신 관리형 Google 도메인 가입 방법을 사용하세요.

관리 Google 도메인 가입

EMM 콘솔에서 가입 절차를 통합할 수 있습니다.

관리 Google Play 계정 관리자 가입
그림 1. 관리 Google 도메인 가입 워크플로

IT 관리자가 엔터프라이즈 생성 프로세스를 시작합니다. 이를 위해 IT 관리자는 다음을 수행합니다.

  1. EMM 콘솔에 로그인합니다.
  2. Android 구성 (예: Android 구성)을 클릭하거나 선택하면 Google에서 호스팅하는 가입 UI로 리디렉션됩니다.
  3. 가입 UI에서 기업에 관한 세부정보를 제공합니다.
  4. EMM 콘솔로 리디렉션됩니다.

이제 IT 관리자의 이메일 주소가 관리 Google 도메인의 관리자 계정인 Google 계정에 연결됩니다.

권장사항: Google 보안 가이드라인을 따라 관리자 계정을 안전하게 보호하세요.

기본 요건

IT 관리자용

  • EMM 콘솔에 대한 액세스 권한 및 콘솔에서 적절한 선택을 하는 데 필요한 권한 (예: 메뉴 선택으로 Android 관리)

  • 직장 이메일 주소. 이 주소는 Gmail.com과 같은 공유 도메인이 아니라 조직이 소유한 도메인의 일부여야 합니다.

EMM 콘솔

관리 Google 도메인 가입 절차를 구현하려면 EMM 콘솔에서 다음 작업을 할 수 있어야 합니다.

  • Play EMM API에서 호출을 호출할 때 MSA 사용자 인증 정보를 사용합니다. MSA는 조직의 엔터프라이즈 서비스 계정 (ESA)이 설정될 때까지 IT 관리자를 대신하여 많은 작업을 호출하는 데 사용됩니다.

  • 보안 URL을 통해 Google에서 제공하는 외부 사이트로 연결되는 리디렉션을 처리하여 가입 과정을 시작하고 등록 프로세스를 완료합니다.

  • 등록 후 ESA 사용자 인증 정보로 구성할 수 있습니다. EMM 콘솔을 사용하여 특정 조직의 사이트 내에서 많은 기업을 만들 수 있으므로 각 enterpriseId를 자체 서비스 계정 및 사용자 인증 정보와 연결할 방법이 필요합니다. Enterprises.getServiceAccount를 호출하고 Serviceaccountkeys API를 사용하여 키 관리를 처리하여 조직의 서비스 계정을 만드는 것이 좋습니다. 자세한 내용은 프로그래매틱 방식으로 엔터프라이즈 서비스 계정 만들기를 참조하세요.

Android 가입 프로세스에서는 런타임에 콘솔에서 사용할 보안 (https) 서비스를 제공해야 합니다. 이 보안 서비스의 URL은 로컬 URL일 수 있으며, 시스템이 이를 파싱할 수 있도록 형식이 올바르다면 세션 또는 기타 고유 식별 정보를 포함할 수 있습니다. 예를 들면 다음과 같습니다.

https://localhost:8080/enrollmentcomplete?session=12345

등록 프로세스

가입 절차는 5분 이내에 완료됩니다. 아래 단계에서는 callbackUrl를 호스팅하는 서버가 작동 중이라고 가정합니다. 또한 이 단계에서는 인증된 IT 관리자가 옵션을 선택하면 가입 프로세스를 시작하는 UI 구성요소가 콘솔에 포함되어 있다고 가정합니다(예: Android 관리가 옵션으로 있는 메뉴 선택).

기업용 Managed Google Play 계정을 등록하는 12단계 프로세스
그림 2. 관리형 Google 도메인에 바인딩을 만드는 12단계 프로세스
  1. IT 관리자가 EMM 콘솔에서 등록 요청을 시작합니다.

  2. callbackURL를 유일한 매개변수로 사용하여 Enterprises.generateSignupUrl를 호출합니다. 예:

    https://localhost:8080/enrollcomplete?session=12345

  3. 응답에는 가입 URL (30분 동안 유효)과 완료 토큰이 포함됩니다. 완료 토큰을 추출하여 저장합니다.

    권장사항: 완료 토큰을 가입을 시작한 IT 관리자와 연결하세요.

  4. generateSignupURL 응답에서 url를 추출합니다.

  5. 4단계에서 추출한 URL로 리디렉션합니다.

  6. IT 관리자는 가입 UI의 설정 흐름에 따라 엔터프라이즈 결합을 만듭니다.

    1. IT 관리자는 자신과 조직에 대한 세부정보를 입력하고 아직 Google 계정이 없는 경우 비밀번호를 설정합니다.

    2. IT 관리자에게 EMM 이름이 표시되고 조직이 이 EMM에 결합됨을 확인합니다.

    3. IT 관리자가 Google 서비스 약관에 동의합니다.

  7. 가입 UI가 2단계에서 지정한 URL을 기반으로 콜백 URL을 생성합니다.

  8. 가입 UI가 IT 관리자를 콜백 URL로 리디렉션합니다. 엔터프라이즈 토큰을 추출하여 URL에 저장합니다. 예:

    https://localhost:8080/enrollcomplete?session=12345&enterpriseToken=5h3jCC903lop1

  9. Enterprises.completeSignup를 호출하여 completionToken (3단계) 및 enterpriseToken (8단계)을 전달합니다.

  10. 이 호출은 응답 본문에 Enterprises 인스턴스를 반환합니다. 나중에 사용할 수 있도록 id, name, 관리자 이메일 (있는 경우)을 저장합니다.

  11. ESA (엔터프라이즈 서비스 계정)를 만듭니다. ESA 사용자 인증 정보는 이메일 주소와 비공개 키 형식을 취합니다. ESA를 만드는 방법에는 두 가지가 있습니다.

    • 권장사항: Play EMM API를 사용하여 프로그래매틱 방식으로 ESA를 생성합니다.
    • IT 관리자에게 Google API 콘솔에서 ESA를 만들도록 지시하는 페이지를 표시합니다. 자세한 내용은 서비스 계정 만들기를 참조하세요. 관리자에게 프로젝트 > 편집자를 역할로 선택하고 비공개 키 다운로드 체크박스를 선택하도록 안내합니다. IT 관리자가 ESA를 만든 후 ESA의 비공개 키 사용자 인증 정보로 콘솔을 구성합니다.
  12. MSA 사용자 인증 정보를 사용하여 setAccount를 호출하여 이 조직의 ESA를 설정합니다.

등록 절차가 완료되었습니다

  • 새 관리 Google 도메인이 EMM에 결합됩니다.
  • IT 관리자의 Google 계정은 도메인의 관리자로 구성되며 https://play.google.com/work에 액세스하여 조직의 앱을 관리할 수 있습니다.
  • EMM 콘솔은 ESA를 사용하여 Google Play EMM API를 통해 조직의 데이터를 관리할 수 있습니다.

프로그래매틱 방식으로 ESA 만들기

ESA의 키 관리를 간소화하려면 Google Cloud 콘솔 대신 Google Play EMM API를 사용하여 조직의 서비스 계정을 생성합니다. Play EMM API를 통해 생성된 서비스 계정은 다음과 같습니다.

  • 사용자 또는 조직에 속한 Cloud 콘솔 프로젝트에는 표시되지 않습니다. 프로그래매틱 방식으로 관리해야 합니다.
  • 조직을 등록 해제하면 삭제됩니다.

프로그래매틱 방식으로 서비스 계정을 생성하려면 다음 안내를 따르세요.

  1. enterpriseIdEnterprises.getServiceAccount를 호출하고 (등록 프로세스의 10단계 참고) 원하는 키 유형 (keyType)(googleCredentials, pkcs12)을 지정합니다. 시스템이 서비스 계정 이름과 서비스 계정의 비공개 키를 (Google API 콘솔에서 반환하는 것과 동일한 형식으로) 반환합니다.

  2. Enterprises.setAccount를 호출하고 조직의 서비스 계정을 설정합니다.

권장사항: IT 관리자가 ESA 사용자 인증 정보를 변경하도록 지원합니다. EMM 콘솔에서 이를 수행하려면 기존 ESA를 사용하여 setAccount를 호출합니다.

서비스 계정 키 관리

Enterprises.getServiceAccount에서 반환된 서비스 계정은 Google에서 투명하게 생성합니다. EMM은 이러한 계정에 액세스할 수 없습니다. 그러나 Serviceaccountkeys API를 콘솔에 통합하여 조직에서 프로그래매틱 방식으로 생성된 자체 ESA 및 키를 관리하도록 할 수 있습니다.

Serviceaccountkeys API를 사용하면 조직이 서비스 계정의 활성 사용자 인증 정보를 삽입, 삭제, 나열할 수 있습니다. 이러한 API는 조직에 설정된 ESA로 승인되는 동안 호출되어야 하며 ESA는 getServiceAccount에서 생성되어야 합니다. 즉, 조직에서 Enterprises.getServiceAccount에서 생성된 서비스 계정을 사용하여 Enterprises.setAccount를 호출하면 해당 조직만 계정을 관리하기 위해 Serviceaccountkeys API에서 호출을 호출할 수 있습니다.

표 2. 서비스 계정 키 API

입력란
id서버에서 할당한 ServiceAccountKey의 불투명한 고유 문자열 식별자입니다.
kind고정 문자열 androidenterprise#serviceAccountKey를 사용하여 리소스를 식별합니다.
유형생성된 키 데이터의 파일 형식입니다. 사용 가능한 값은 다음과 같습니다.
  • googleCredentials
  • pkcs12
데이터비공개 사용자 인증 정보 파일의 본문을 구성하는 문자열입니다. 생성 시 채워집니다. Google에 저장되지 않습니다.
방법
deleteenterpriseIdkeyId로 지정된 서비스 계정에 대해 지정된 사용자 인증 정보를 삭제하고 무효화합니다.
insert기업과 연결된 서비스 계정의 새 사용자 인증 정보를 생성합니다.
list기업과 연결된 서비스 계정의 모든 활성 사용자 인증 정보를 나열합니다. ID 및 키 유형만 반환합니다.

알림

Enterprises.pullNotificationSet를 호출하여 프로그래매틱 방식으로 생성된 ESA에서 알림을 가져올 수 있습니다. 자세한 내용은 EMM 알림 설정을 참고하세요.

관리 Google 도메인 등록

관리 Google 도메인에 속한 기기를 관리하려면 EMM 콘솔, 조직, Google 간의 연결 (결합이라고 함)을 설정해야 합니다.

기본 요건

조직에는 관리 Google 도메인, EMM 등록 토큰, 엔터프라이즈 서비스 계정 (ESA)이 있어야 합니다. 이러한 세부정보를 확인하는 방법은 IT 관리자를 위한 Android Enterprise 고객센터에서 확인하세요.

관리 Google 도메인

조직의 IT 관리자가 Google Workspace에 가입할 때 관리 도메인을 신청했다면 Google 관리 콘솔에서 Android 관리를 사용 설정할 수 있습니다. 조직에 관리되는 Google 도메인이 없다면 IT 관리자가 Google의 일회성 웹 등록 프로세스를 거쳐야 합니다.

EMM 토큰

IT 관리자는 Google 관리 콘솔 (기기 > 모바일 및 엔드포인트 > 설정 > 서드 파티 통합)에서 EMM 토큰을 받을 수 있습니다.

ESA

조직의 IT 관리자는 일반적으로 EMM 콘솔과 연결된 프로젝트에서 Google Cloud 콘솔을 통해 ESA를 만들 수 있습니다. ESA에는 이름, ID, 사용자를 대신하여 실행된 작업을 위해 계정을 인증하는 키가 있습니다. 이 ID의 형식은 이메일 주소와 비슷하며 @ 기호 앞에는 서비스 계정 이름, 그 뒤에 오는 프로젝트 이름 그리고 Google 서비스 정보 (예: some-orgs-esa@myemmconsole313302.iam.gserviceaccount.com)가 나옵니다.

등록 프로세스

  1. IT 관리자는 Google 관리 콘솔에서 EMM 토큰을 받습니다.
  2. IT 관리자는 EMM 토큰을 공유해주며, 이 토큰을 통해 관리자는 자신의 도메인에서 Android를 관리할 수 있습니다.
  3. EMM 콘솔을 통해 EMM 토큰을 사용하여 Enterprises.enroll를 호출합니다. 이렇게 하면 조직의 Android 솔루션이 Google 도메인에 결합됩니다.
    • enroll 메서드는 고유한 enterpriseId를 반환하며 이는 나중에 list 메서드를 사용하여 검색할 수 있습니다 (관리 Google 도메인만 해당).
    • 필요에 따라 이러한 세부정보를 얻기 위해 API를 호출하지 않도록 데이터 스토어에 결합 (enterpriseId, primaryDomain) 정보를 저장할 수 있습니다. Google 계정 시나리오에서 조직의 primaryDomain는 EMM 및 Google에 조직을 식별하는 고유 키입니다.
  4. Google Play EMM API를 조직별로 호출하는 방법은 다음과 같습니다.
    • 사용자가 조직을 대신하여 ESA를 만들거나 관리자가 ESA를 만든 후 사용자와 공유합니다.
    • EMM 콘솔에서 enterpriseId 및 ESA 이메일 주소를 사용하여 setAccount를 호출합니다. 그러면 ESA가 API를 기업으로 인증할 수 있습니다.

다음은 primaryDomainName, serviceAccountEmail, authenticationToken가 지정된 조직을 등록하는 예입니다.

    public void bind(String primaryDomainName, String serviceAccountEmail,
        String authenticationToken) throws IOException {

      Enterprise enterprise = new Enterprise();
      enterprise.setPrimaryDomain(primaryDomainName);

      Enterprise result = androidEnterprise.enterprises()
          .enroll(authenticationToken, enterprise)
          .execute();

      EnterpriseAccount enterpriseAccount = new EnterpriseAccount();
      enterpriseAccount.setAccountEmail(serviceAccountEmail);
      androidEnterprise.enterprises()
          .setAccount(result.getId(), enterpriseAccount)
          .execute();
    }

이 예에서는 Java용 클라이언트 라이브러리와 com.google.api.services.androidenterprise.model 패키지의 AndroidEnterprise 서비스 클래스를 사용합니다. 샘플에 표시된 절차를 다음 단계로 요약할 수 있습니다.

  1. 기본 도메인 이름, 서비스 계정 이메일 주소, EMM 등록 토큰이 포함된 모델 클래스인 bind에서 제공한 매개변수를 사용하여 새 AndroidEnterprise 객체를 만듭니다.
  2. 새로 만든 Enterprise 객체의 기본 도메인 이름을 지정합니다.
  3. 등록 메서드를 호출하여 엔터프라이즈 객체와 등록 토큰을 제공합니다.
  4. 고객의 ESA ID(serviceAccountEmail)로 새 EnterpriseAccount 객체를 만듭니다.
  5. enterpriseId (3단계에서 반환) 및 enterpriseAccount 필드를 모두 제공하여 계정을 설정합니다.

필요에 따라 이러한 세부정보를 얻기 위해 API를 호출하지 않도록 데이터 스토어에 결합 (enterpriseId, primaryDomain) 정보를 저장할 수 있습니다. Google 계정 시나리오에서 조직의 primaryDomain는 EMM 및 Google에 조직을 식별하는 고유 키입니다.

온프레미스 배포 설정

조직에서 데이터를 사이트에 유지(사용자가 액세스할 수 없음)해야 하는 경우 서버에 ESA의 활성 사용자 인증 정보 세트가 표시되지 않도록 해야 합니다. 이렇게 하려면 사이트에 ESA 사용자 인증 정보 집합을 생성하고 저장하세요.

  1. 등록 흐름을 완료합니다.
    1. 11단계와 같이 MSA를 사용하여 getServiceAccount를 호출합니다. 그러면 ESA 사용자 인증 정보가 생성됩니다.
    2. 12단계에 나와 있는 것처럼 ESA의 setAccount를 사용하여 이 조직의 ESA로 설정합니다.
  2. ESA를 조직의 온프레미스 서버로 전달합니다.
  3. 온프레미스 서버에서 다음 단계를 따릅니다.
    1. Serviceaccountkeys.insert를 호출하여 ESA의 새 키를 만듭니다. 이 비공개 키는 Google 서버에 저장되지 않으며 계정이 생성될 때 한 번만 반환됩니다. 다른 방법으로는 액세스할 수 없습니다.
    2. 새 ESA 사용자 인증 정보를 사용하여 Serviceaccountkeys.list를 호출합니다. 이렇게 하면 활성 서비스 계정 사용자 인증 정보가 반환됩니다.
    3. Serviceaccountkeys.delete를 호출하여 방금 온프레미스에서 생성된 ESA 사용자 인증 정보를 제외한 모든 사용자 인증 정보를 삭제합니다.
    4. (선택사항) Serviceaccountkeys.list를 호출하여 현재 온프레미스에서 사용 중인 사용자 인증 정보가 서비스 계정에 유효한 유일한 사용자 인증 정보인지 확인합니다.

온프레미스 서버는 이제 ESA 사용자 인증 정보가 있는 유일한 서버입니다. getServiceAccount를 통해 생성된 ESA만 ServiceAccountKeys에 액세스할 수 있습니다. MSA는 이를 호출할 수 없습니다.

권장사항: 마스터 서비스 계정 (MSA) 사용자 인증 정보를 온프레미스에 저장하지 마세요. 온프레미스 배포마다 별도의 ESA를 사용합니다.

엔터프라이즈 결합 등록 해제, 재등록 또는 삭제하기

등록 해제

EMM 솔루션에서 조직을 바인딩 해제하려면 unenroll를 사용합니다. 엔터프라이즈 바인딩은 등록 해제되어도 삭제되지 않지만 EMM 관리 사용자 및 관련된 모든 사용자 데이터는 30일 후에 삭제됩니다. 다음은 구현의 예입니다.

    public void unbind(String enterpriseId) throws IOException {
      androidEnterprise.enterprises().unenroll(enterpriseId).execute();
    }

권장사항: 조직 이름 및 엔터프라이즈 결합 ID 매핑을 위한 데이터 스토어가 있는 경우 unenroll를 호출한 후 데이터 스토어에서 해당 정보를 삭제합니다.

재등록하기

IT 관리자는 기존 enterpriseId을(를) 사용하여 기업을 재등록할 수 있습니다. 이를 위해 소유자 수준 계정으로 로그인하고 등록 프로세스를 따릅니다.

재등록 흐름은 개발자의 관점에서 투명합니다. 리디렉션 URL (8단계)에서 반환된 엔터프라이즈 토큰이 새 조직의 것인지 아니면 이전에 다른 EMM에 등록된 조직의 것인지 확인할 방법은 없습니다.

조직이 이전에 EMM 솔루션에 등록된 경우 엔터프라이즈 결합 ID를 인식할 수 있습니다. IT 관리자가 등록 해제된 후 30일 이내에 조직을 재등록하면 EMM 관리 사용자 및 관련 사용자 데이터를 복원할 수 있습니다. 조직이 이전에 다른 EMM에 등록된 경우 다른 EMM에서 만든 EMM 관리 사용자의 사용자 ID에는 액세스할 수 없습니다. 이는 이러한 사용자 ID가 EMM마다 다르기 때문입니다.

삭제

IT 관리자는 관리 Google Play에서 조직을 삭제할 수 있습니다. 24시간 이내에 관리자, 최종 사용자, 사용자가 조직의 데이터, 계정, 라이선스 할당, 기타 리소스에 액세스할 수 없게 됩니다. 따라서 API 호출은 enterpriseId 매개변수에 대해 HTTP 404 Not Found 응답 상태 코드를 반환합니다. EMM 콘솔에서 이 오류를 처리하려면 조직과의 연결을 삭제하기 전에 IT 관리자에게 확인을 요청하는 메시지를 표시합니다.