nyancoder

WWDC 2021 - Meet declarative device management 본문

WWDC/WWDC 2021

WWDC 2021 - Meet declarative device management

nyancoder 2021. 7. 26. 01:50

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10131/

 

  • Apple에서는 MDM 프로토콜을 통해 제공하는 기업 파트너와 교육 기관의 장치 관리 기능을 제공합니다.
  • 이 프로토콜은 iOS, macOS 및 tvOS에서 사용할 수 있습니다.

  • MDM 프로토콜은 명령형 및 반응형 프로토콜로 정의됩니다.
  • 각 관리 워크플로에는 장치와 서버 간에 여러 번 통신이 왕복하므로 시간이 걸립니다.
  • 또한 조직에서 많은 수의 장치를 관리할 때 성능 문제가 더 복잡해집니다.

  • 최적의 성능과 확장성을 달성하기 위해 장치 관리는 선언적 관리로 동작하도록 MDM 프로토콜을 다시 구상하였습니다.

  • 선언적 관리를 통해 장치는 자율적으로 능동적으로 지속적인 폴링 없이 업데이트를 처리할 수 있습니다.
  • 장치는 자신의 상태 변경에 대해서 스스로 반응하여 업데이트를 처리하며 중요한 상태 변경이 발생할 때는 서버에 비동기적으로 보고 할 수 있습니다.

  • 이 새로운 패러다임은 기존의 프로토콜 위에 만들어졌습니다.

 

Declarative data model

  • 장치에 보내는 데이터의 선언, 서버를 업데이트하는 상태 채널, Apple이 새로운 기능을 도입할 때 이를 원활하게 처리할 수 있는 확장성의 모델로 구성됩니다.

  • 선언은 조직에서 기기에 적용하려는 정책 (예: 계정, 설정, 제한)을 나타냅니다.
  • 모든 사용자에게 공통적인 정책과 단일 사용자 또는 장치의 정책에 대한 선언을 만들 수 있습니다.

  • 선언에 대한 데이터 표현은 표준 키-값 집합으로 이루어져 네트워크를 통해 전송될 때 JSON 객체로 직렬화됩니다.
  • 모든 선언에는 Type, Identifier, ServerToken의 세 가지 필수 속성이 있습니다.
  • Type은 구성이 나타내는 정책을 정의합니다.
  • Identifier는 장치의 선언 내에서 해당 선언을 고유하게 만드는 값이며, 장치가 서버와 동기화할 때 이 값을 사용합니다.
  • ServerToken 키는 해당 식별 자키의 선언의 버전을 나타냅니다.
  • Payload는 선언과 관련된 키와 값을 포함하는 데이터 부분입니다.

  • 선언에는 구성, Assets, 활성화, 관리의 네 가지 유형이 있습니다.

  • 첫 번째 유형은 구성입니다.
  • 구성은 계정, 설정 및 제한과 같이 장치에 적용할 정책을 나타냅니다.
  • 기존 MDM의 프로필 페이로드와 유사합니다.
  • 위의 예는 장치 암호에 제한을 적용하는 구성 선언의 예입니다.
  • Type의 값을 통해서 암호 구성 유형으로 식별합니다.
  • 페이로드는 암호 정책에 대한 데이터를 포함합니다.

  • Assets은 구성에 필요한 보조 데이터에 대한 참조를 나타냅니다.
  • 대용량 데이터의 공유 항목일 수도 있고 개인화된 항목일 수도 있습니다.
  • 큰 데이터 항목의 경우 실제  MDM 서버나 CDN에서 데이터를 가져오는 데 필요한 URL을 포함합니다.

  • 이름, 이메일 주소, 계정 암호 및 인증서를 표현하는 데에도 사용할 수 있습니다.

  • Asset은 구성과 일대다 관계를 갖기 때문에 Asset을 복제하지 않고도 여러 구성에서 참조할 수 있습니다.
  • Asset이 수정이 되는 경우 해당 Asset만 업데이트하면 됩니다.

  • 예를 들어 사용자의 연락처를 구성하는 경우 우선 세 가지 필수 표준 키가 있습니다.
  • Payload에는 이 자산의 정보를 포함합니다.

  • 활성화 유형은 장치가 원자적으로 적용할 구성 집합을 나타냅니다.

  • 구성 중 하나라도 유효하지 않은 경우에는 정책이 적용되지 않습니다.

  • 위의 예는 두 가지의 구성이 포함된 활성화의 예이며 Payload필드에 적용될 구성의 식별자가 들어있습니다.

  • 활성화와 구성은 다 대다 관계로 이루어져 있어 활성화는 여러 구성을 참조할 수 있고, 서로 다른 활성화가 같은 구성을 참조할 수도 있습니다.

  • 활성화가 장치에서 수행될 것인지를 결정하는 조건이 포함될 수 있습니다.
  • 조건이 참으로 평가되는 경우에만 활성화를 수행합니다.
  • 예를 특정 활성화가 iPad에서만 수행되거나 특정 버전의 OS에서만 적용되도록 할 수 있습니다.
  • 장치 상태가 변경되면 서버에 접속하지 않고도 자동으로 조건이 재평가됩니다.
  • 조건이 없는 경우에는 항상 처리됩니다.

  • 위의 예제에서는 이전의 활성화 예제에서 iPad인 경우에만 수행되도록 조건을 추가한 예입니다.

  • 관리는 조직에 대한 세부 정보나 서버의 기능 등의 전체 관리 상태를 장치에 전달하는 데 사용됩니다.
  • 주로 장치에 정적 정보를 전달하는 데 유용합니다.

  • 상태 채널은 새로운 관리 모델의 두 번째 핵심입니다.
  • 장치에 전달된 모델은 실제 기기의 상태와 일치하지 않을 수 있습니다.
  • 예를 들어 사용자가 새 암호를 입력해야 하는 등의 사용자 상호 작용이 필요한 경우, 상호작용이 일어나기 전까지는 적용되지 않습니다.
  • 장치의 현재 상태를 서버에 전달하기 위해 상태 채널이 이용됩니다.

  • 상태 정보는 클라이언트에서 서버로 전달되지만, 서버가 관심이 있는 특정 항목만 구독해서 정보를 받을 수 있습니다.
  • 상태 정보는 마침표로 구분되는 키 경로로 식별됩니다.

  • 상태 구독이 일어나는 과정의 첫 번째는 서버가 상태 구독 구성을 사용하여 특정 상태 항목을 구독하는 것입니다.
  • 장치는 구독 구성을 수신하면 해당 항목에 대한 초기 상태 보고서를 보내며, 이후 항목이 변경될 때마다 보고서를 보냅니다.
  • 상태 보고서는 증분식으로 구성되어 변경된 항목만 보고됩니다.
  • 선언의 상태는 서버가 구독할 필요 없이 변경될 때 항상 서버에 보고됩니다.

  • 예를 들어 장치의 운영 체제 버전, 유형, 모델의 3개의 항목을 구독한다고 가정하면 위와 같습니다.

  • 이 구성이 장치에서 활성화되면 각 항목에 대해서 초기 상태 보고서를 보냅니다.

  • 처음에는 iOS가 14.5였지만 15.0으로 업데이트되는 경우 변경 항목에 대해서만 정보를 전달합니다.

  • Apple 제품은 생명  주기가 길기 때문에, 다양한 버전과 장치가 있어 확장성이 새로운 관리 모델의 세 번째 핵심입니다.
  • 장치와 서버 모두가 서로가 지원하는 기능을 알리기 때문에 서로가 지원하는 기능을 사용할 수 있는 시점을 알게 됩니다.
  • 서버와 클라이언트 모두 프로토콜 업데이트를 나타내는 지원 기능 목록이 포함됩니다.
  • 클라이언트는 또한 클라이언트가 지원하는 항목의 전체 집합을 알려줍니다.
  • 서버의 기능은 관리 선언을 통해 장치로 전송되며, 업그레이드 시 다른 유형의 선언과 마찬가지로 동기화되어 클라이언트에서 즉시 해당 기능을 사용할 수 있습니다.
  • 클라이언트의 기능은 기능이 변경될 때마다 상태 항목의 업데이트로 서버에 전송되어 서버가 그 기능을 사용할 수 있게 됩니다.

 

Integration with MDM

  • 기존 MDM 공급업체는 오늘부터 선언적 관리 기능을 사용할 수 있습니다.
  • 선언적 관리는 MDM 프로토콜에 통합되어 등록, 취소 HTTP 전송, 사용자 인증 등을 처리합니다.
  • 기존 MDM 제품은 중단 없이 선언적 관리로 원활하게 전환할 수 있습니다.
  • 선언 및 상태 채널은 이미 사용 중인 MDM 명령 및 프로필과 공존합니다.
  • 이를 통해 한 번에 모든 MDM 워크플로를 업데이트하지 않고도 점진적으로 선언적 관리 기능을 채택할 수 있습니다.
  • 장치가 MDM에서 등록 취소되면 모든 선언이 제거되고 장치 상태가 그에 맞추어집니다.
  • 선언적 관리는 기존 MDM 동작에 전혀 영향을 미치지 않습니다.

  • 선언적 관리는 활성화를 위한 MDM 명령과 동기화 및 상태 보고를 위한 MDM 체크인 요청을 사용하여 기존 MDM 동작을 활용합니다.
  • 장치에서 선언적 관리 기능을 활성화하고 동기화 흐름을 시작할 수 있는 DeclarativeManagement 명령이 MDM에 추가되었습니다.
  • 선언적 관리는 한 번 설정하면 해제할 수 없습니다.
  • 장치에서 선언을 동기화하고 서버에 상태 보고서를 보낼 때 장사용 하는 새로운 DeclarativeManagement CheckIn 요청 유형도 있습니다.

  • 체크인 요청의 예제는 위와 같습니다.
  • MessageType 키는 새 DeclarativeManagement 값으로 설정됩니다.
  • 일부 요청에서는 Base64 인코딩 데이터도 포함될 수 있습니다.

  • 클라이언트의 CheckIn 요청에 대한 서버의 응답은 두 가지 유형이 있습니다.
  • 서버가 제공하는 모든 선언을 담고 있는 manifest를 전달하거나, 장치에 적용할 선언을 전달할 수 있습니다.

  • 기존 관리 방식을 선언적인 방식으로 변경해 나가는 방법의 첫 번째는 프로필 기반 정책을 설치하는 것입니다.
  • 이후 즉시 선언적 관리를 즉시 활용할 수 있습니다.
  • IOS 15 베타에서 적용되어 있습니다.

  • 이 과정은 위와 같으며 URL을 통해 프로파일이 참조되고 기기에 설치됩니다.

 

Example

  • 선언적 관리가 서버와 상호 작용하는 예제는 위와 같습니다.
  • MDM에 등록된 장치에서 선언적 관리를 활성화합니다.
  • 서버는 장치가 장치에 Push 메시지를 보내면 서버가 응답으로 Idle 상태를 보냅니다.
  • 이후 서버가 DeclarativeManagement 명령을 내리면, 기기는 선언적 관리를 활성화하고 Acknowledged 상태를 응답으로 보냅니다.
  • 서버에 더 이상 명령이 없으면 서버는 빈 응답을 보냅니다.

  • 선언적 관리 동기화 프로세스는 기기가 먼저 CheckIn 요청을 보내면서 시작됩니다.
  • 서버는 응답 Manifest를 전달하고 기기는 수신된 값을 비교하여 새로운 선언, 변경된 선언, 삭제된 선언을 파악합니다.
  • 새 선언 또는 변경된 선언 에이 있는 경우는 체크인 요청을 전달하여 JSON 응답을 받습니다.
  • 서버에서 모든 선언을 가져오면 정책 변경 사항을 적용하기 시작합니다.
  • 정책 변경 사항이 적용되면 해당 업데이트된 상태 항목과 상태 보고서를 서버로 보냅니다.

 

Get started

  • 선언적 관리 기능은 iOS 15 및 iPadOS 15가 설치된 기기에서 지원됩니다.
  • MDM 등록 유형이 사용자 등록인 경우에만 사용할 수 있습니다

  • MDM 계정 및 암호 프로필 페이로드 집합을 포함하는 계정 및 암호 구성이 있습니다.
  • 또한 MDM 지원 프로필 전체 제품군을 장치에 선언적으로 설치할 수 있도록 프로필 구성을 지원합니다.
  • 상태 구독 구성은 서버 가 수신하려는 특정 상태 항목 업데이트를 선언하는 데 사용됩니다.
  • 단순 활성화를 지원하며 이는 원자적으로 적용되어야 합니다.
  • 자산 선언의 경우 사용자 ID 자산 및 사용자 ID와 암호가 포함된 자격 증명 자산의 두 가지가 있습니다.
  • 관리의 경우 조직 세부 정보와 서버 기능의 유형을 지원합니다.
  • 상태 항목에는 하드웨어 모델 및 운영 체제 정보와, 자체 선언 상태를 나타내는 항목이 있습니다.

 

목차: https://nyancoder.tistory.com/2

'WWDC > WWDC 2021' 카테고리의 다른 글

WWDC 2021 - Meet the Screen Time API  (0) 2021.07.29
WWDC 2021 - Meet in-app events on the App Store  (0) 2021.07.28
WWDC 2021 - Meet StoreKit 2  (0) 2021.07.24
WWDC 2021 - Meet TestFlight on Mac  (0) 2021.07.23
WWDC 2021 - Meet Shortcuts for macOS  (0) 2021.07.21
Comments