Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Hand Action Detect
- AR Quick Look
- User Enrollment
- Xcode Cloud
- async
- Xcode Organizer
- Mac
- SWiFT
- DooC
- swiftUI
- profile
- actor
- AppleEvent
- SF Symbols 3.0
- Reality Composer
- SF Symbols
- DriverKit
- METAL
- WWDC 2021
- MDM
- CoreML
- Hand Pose Detect
- AVFoundation
- detent
- ProRAW
- NSUserActivity
- concurrency
- App Clip
- Object Capture
- Physical Audio
Archives
- Today
- Total
nyancoder
WWDC 2021 - Meet declarative device management 본문
원본 영상: 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와 암호가 포함된 자격 증명 자산의 두 가지가 있습니다.
- 관리의 경우 조직 세부 정보와 서버 기능의 유형을 지원합니다.
- 상태 항목에는 하드웨어 모델 및 운영 체제 정보와, 자체 선언 상태를 나타내는 항목이 있습니다.
'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