
-
ManagedApp 프레임워크와 더 친숙해지는 법
ManagedApp 프레임워크가 앱이 관리형 환경에 적응하도록 지원하는 방법을 알아보세요. 구성 데이터를 수신하고, 앱 비밀을 안전하게 관리하며, 조직에서 제공한 설정을 기반으로 앱 동작을 맞춤 설정하는 방법을 보여드리겠습니다. 또한 실제 사례를 통해 기업 및 교육 환경에서 보다 유연하고 관리 가능한 앱을 빌드하는 방법을 설명합니다.
챕터
리소스
- Apple Business Manager User Guide
- Apple School and Business Manager API
- Apple School Manager User Guide
- ManagedApp
- Support - Apple Platform Deployment
관련 비디오
WWDC25
-
비디오 검색…
수석 iOS 기기 관리 엔지니어Bob Whiteman입니다 관리형 배포 환경에서 앱을더 쉽게, 더 안전하게 만드는 새 프레임워크를소개하게 되어 기쁩니다 세계 사무실, 매장, 학교에서Apple 기기가 사용됩니다 사람들은 이를 통해 배우고가르치고, 일하고, 창작합니다 기기에서 실행되는 앱이이 모든 활동을 가능하게 하죠 조직 관리자는 기기 관리서비스를 통해 구성원이 필요한 앱을 문제없이사용할 수 있도록 보장합니다 사람들은 조직의 앱은금방 익히지만 설정은 대체로 한 번만 하는데어렵게 느껴질 수 있습니다 서버 주소, 사용자 이름암호 2단계 인증 코드를 입력해야합니다 그리고 앱 설정으로 이동해 조직의 기준에 맞게직접 설정을 바꿔야 합니다 단계가 많고 실수가 생기면 좋지 않은 결과로 끝날 가능성이 큽니다 실망해서 앱 사용을 포기할 수도 있고 지원팀에 연락하면 시간 낭비는 물론 지원 비용도 늘어납니다 조직은 아예 앱 지원을중단할 수도 있습니다 앱 개발자 입장에서는이 경험을 개선하고 싶겠지만 그건 본래 앱 기능과는 별개로 많은 노력이 듭니다 원활한 경험을 만들기 위해구현해야 할 것들을 생각해보면 조직의 인증 시스템과연동해야 하고 관리자가 설정을지정할 수 있는 구성 웹사이트도운영해야 합니다 앱이 조직의 기기에서작동할 수 있도록 말이죠 또한 인증서 발급 시스템과 조직 서버에 연결되도록 통합하고 브랜딩이나 맞춤 기능을 위해 조직 전용 앱 버전을별도로 배포해야 합니다 그 모든 걸 하지 않아도 된다면 어떨까요? 이 복잡한 설정 과정을제거할 수 있습니다 이제 앱은 그 조직과그 기기, 그 사용자에 맞게 미리 구성될 수 있습니다 설정 과정 자체가필요하지 않습니다 첫 실행부터 앱을바로 사용할 수 있습니다 첫인상이 좋아지니앱 사용률도 높아집니다 구성원이 만족하니 관리자는더 적극적으로 배포하며 지원 비용도 최소화됩니다 이걸 어떻게 실현할 수 있을까요? ManagedApp프레임워크를 소개합니다 ManagedApp 프레임워크는관리형 앱과 확장 기능을 자동으로 구성할 수 있습니다 기기 인증과사용자 인증도 간소화됩니다 또한 이 프레임워크는데이터 보안과 접근 제어 등 높은 보안 요구사항을 충족합니다
이를 위해 ManagedApp프레임워크는 관리자가 앱 설정을 직접 구성하고 암호, 인증서 신원 정보를 사전에등록할 수 있도록 지원합니다 이 프레임워크는 다른기기 관리 기술과도 연동됩니다 확장형 단일 로그인 관리된 기기 증명 및등록 단일 로그인 등과 말이죠 ManagedApp 프레임워크는4가지 데이터 유형을 제공합니다 앱별 구성은 해당 앱이지원하는 임의의 데이터입니다 여기에는 설정, 옵션소규모 리소스 등 앱에 필요한 요소를 포함합니다 나머지는 비밀 정보인 암호인증서, 신원 정보입니다 신원 정보는 PKCS #12SCEP, ACME가 지원됩니다 ACME 정보는 하드웨어 기반키와 인증 기능도 지원합니다 이 모든 데이터는안전하게 저장되며 관리자가 지정한 앱이나확장 기능에만 제공됩니다 ManagedApp프레임워크는 iOS 18.4 iPadOS 18.4visionOS 2.4를 지원합니다 MDM 서버가선언적 기기 관리를 통해 앱을 관리해야 합니다 앱 설치 시점부터 또는 기존 앱을인수할 때부터 작동합니다 모든 MDM 등록 유형과 호환됩니다 대부분의 앱 확장 유형을 지원하지만 제한된 환경에서만 실행되는일부 확장 기능은 제외됩니다 예를 들어, 키보드 확장은전체 접근 권한이 없으면 ManagedApp 프레임워크를 사용할 수 없습니다 이번 세션에서는 개발및 배포 작업 흐름을 설명하고 이 프레임워크가 유용한다양한 사례를 살펴본 뒤 코드 분석과 모범 사례도 함께 소개하겠습니다 먼저 어떻게 작동하는지 알아보겠습니다 관리 중인 기기에서 시작합니다 관리자는 MDM 서버를 통해MDM 프로토콜로 명령과 쿼리를기기에 전송합니다
앱을 관리 대상으로 지정하면보통 앱이 설치됩니다 관리자는 앱과 확장 기능에서 사용할 수 있도록 구성과 비밀 정보를 지정합니다
앱이 실행되면ManagedApp 프레임워크에 구성과 비밀 정보를 요청하고 프레임워크는 이를 앱에 전달합니다 앱은 구성을 즉시 적용하고 비밀 정보도 적절히 사용합니다 이후 관리자는 구성이나 비밀정보를 업데이트할 수 있습니다 앱이 실행 중이면프레임워크가 앱에 알리고 앱은 업데이트를 즉시 반영합니다 하지만 그 전에앱 개발자인 여러분이 앱을 작성해야 합니다 구성 디코더를 만들고 구성을 적용하고 비밀 정보를활용하는 코드를 작성합니다 그리고 관리자에게 구성 방법을 설명하는 사양 문서를 작성해 배포합니다 이 사양에는 앱이지원하는 키와 값 각 항목이 제어하는 기능 필요한 비밀 정보와그 사용 방식이 포함됩니다 이 프레임워크에 제가 기대하는이유가 여기에 있습니다 구성은 Apple, 프로토콜MDM 서버가 정의하지 않습니다 모든 앱에 똑같이 적용되면실용성이 떨어지기 때문입니다 앱 개발자인 여러분이 앱을어떻게 구성할지 정의합니다 이를 통해다양한 가능성이 열립니다 앱을 가장 잘 아는 여러분이 가장 강력하고 실용적인구성 방식을 제시해 앱을 조직 환경에최적화할 수 있습니다 ManagedApp 프레임워크는 해결책이 아니라 여러분이 직접 솔루션을 구축할 수 있는 플랫폼입니다 이제 어떤 상황에서 이 프레임워크가 유용한지살펴보겠습니다 활용할 수 있는사례는 매우 많습니다 타사 브라우저에 자격 증명을안전하게 제공하거나 사용자의 역할에 맞게사내 앱을 맞춤 설정하거나 Safari 확장 프로그램을 구성하거나 기기 관리 서비스와 관리 앱간 통신을 안전하게 처리합니다 세 가지 시나리오 중 하나인라이센스부터 시작하겠습니다 앱 개발자는 종종앱 서버가 요청을 올바른 고객에게연결할 수 있기를 원합니다 이때 자주 쓰이는 방식이라이센스 토큰입니다 조직이 서버 사용을라이센스하면 개발자는 해당 조직에 고유한라이센스 토큰을 발급합니다 관리자는 MDM을 통해조직 내 모든 앱에 이 토큰을 배포합니다 그 후 앱이 서버에요청을 보낼 때 이 토큰을 포함하면 서버는 조직을식별할 수 있습니다 하지만 보안 문제가 생깁니다 이 토큰은 저장 및 전달 중에유출되면 안 됩니다 조직 외부 누군가가토큰을 입수하면 서버를 사용할 수 있고 그 책임은 조직이 부담합니다 개발자와 관리자는ManagedApp 구성 기능을 사용해 이 토큰을기기에 배포할 수 있습니다 하지만 ManagedApp프레임워크는 구성을 추출하거나 조작하는 것을 막도록 설계됐습니다 그래서 이보다 더 나은방식이 있습니다 바로 라이센스 키입니다 ManagedApp프레임워크는 암호화된 신원을 라이센스용으로 제공하는데이는 토큰보다 더 안전합니다 관리자는 기기에암호화된 신원을 등록하며 인증서는 조직 또는개발자가 발급합니다 비공개 키는 기기에서 생성되며외부로 유출되지 않습니다 토큰을 전달하는 구조보다훨씬 안전한 방식이죠 기존 ManagedApp 구성 기능은라이센스 키를 지원하지 않습니다 ManagedApp프레임워크는 더 안전하고 신원을 지원하며 앱 확장 기능도 지원합니다 기존 구성 기능을 썼다면이 프레임워크로 바꾸세요 다음은 VPN 확장 기능입니다 이 프레임워크는 VPN확장과 특히 잘 맞습니다 VPN 서버는 강력한인증이 필요합니다 기기가 조직 소속이며 네트워크 접속 권한이 있어야 합니다 구조는 앞서 본시나리오와 비슷하지만 신원 정보는 앱이 아니라VPN 확장에 제공됩니다 ManagedApp 프레임워크는Apple이 지원하는 가장 강력한 인증 수단을제공할 수 있습니다 관리자는 관리형기기 인증을 통해 기기 전용의 하드웨어 기반인증 키를 발급하고 프레임워크는 이 키를VPN 확장에만 직접 전달합니다 VPN 서버는 이 키로기기를 인증합니다 이는 VPN 관리자가 우려하는다양한 위협을 방지합니다 마지막은 신원 제공자입니다 신원 제공자는 확장형단일 로그인으로 앱과 웹사이트의연합 계정 로그인을 지원합니다 Apple 연합 계정 기반의 등록 방식에도 사용할 수 있습니다 각 신원 제공자는 자체인증 프로토콜을 설계하고 보통 수동 입력 정보를사용합니다 이제 ManagedApp프레임워크로 다양한 인증 수단도함께 사용할 수 있습니다 예를 들어하드웨어 기반 신원을 통해 인증된 기기에서 로그인이이뤄졌는지 확인할 수 있습니다 새 계정의 경우최초 로그인을 위한 임시 암호를제공할 수도 있고 조직과 로그인 과정을 연결하는토큰이나 신원도 사용합니다 결국 신원 제공자가필요한 어떤 비밀 정보든 이 프레임워크는 모두 지원합니다 신원 제공자가 등록 단일 로그인을 지원한다면 등록 중에도 구성과 비밀정보를 사용할 수 있습니다 ManagedApp 프레임워크가 관리형 앱에 얼마나 다양한 기능을 제공할수 있는지 감이 오셨을 겁니다 이제 앱에 어떻게구현하는지 살펴보겠습니다 ManagedApp프레임워크의 API는 앱에 구성과 비밀 정보를 간단하고안전하게 전달합니다 이 프레임워크는 4가지독립적인 클래스를 제공합니다 각 데이터 유형별로 하나씩 존재합니다 첫 3개는 앱에 필요한 정확한내장 데이터 유형을 제공합니다 암호가 담긴 문자열SecCertificate, SecIdentity이죠 4번째는 약간 다릅니다 ManagedApp 구성 제공자는앱별 구성을 제공합니다 이 경우는 내장 타입이 없고 앱이 필요로 하는 어떤 데이터든 가능합니다 앱 개발자인 여러분이이 데이터 구조를 정의합니다 이제 구성 예시 하나 신원 정보 예시 하나 그리고 마지막으로 앱 사양문서 작성까지 다루겠습니다
먼저 Landmarks 앱을 살펴보겠습니다 이 앱을 수업용으로 더 쉽게구성할 수 있도록 하겠습니다 처음은 관리자가 무엇을 구성할수 있는지 정하는 것입니다 이건 Landmarks 앱의컬렉션 보기입니다 관리자가 새 컬렉션을 구성할 수 있도록 하겠습니다 이를 통해 교사는지리 수업에 사용할 랜드마크들을미리 모을 수 있습니다
코드에서는 먼저관리자가 구성한 내용을 모두 표현할 구조체를작성합니다 관리형 컬렉션용읽기 전용 속성을 가집니다 속성 유형은 선택 사항입니다 왜냐하면 앱이관리되고 있지 않을 수도 있고 구성이 적용되지않았을 수도 있으며 구성이 적용되었더라도 관리 컬렉션이 없을 수도있기 때문입니다 대부분의 구성 속성은선택 사항이거나 기본값을 갖습니다
MDM 서버로부터구성이 전달되면 ManagedApp 프레임워크는전송 포맷을 디코딩해야 하므로 구조체를 Decodable에준수시켜야 합니다 컬렉션 항목에 대해CodingKey를 지정합니다 이제 랜드마크 컬렉션 클래스를Decodable에 맞추면 컴파일러가 이니셜라이저를 자동 생성하게 둘 수 있습니다 하지만 대부분의 앱은맞춤 검증이 필요하기 때문에 이니셜라이저를직접 구현하겠습니다 이것으로 구성 클래스 작성은 마무리됩니다 그렇다면 앱은 이 구성을어떻게 받을 수 있을까요? API는 Swift concurrency를사용하기에 Task를 생성합니다 그 안에서ManagedAppConfigurationProvider 클래스를 ManagedApp 프레임워크에서 사용합니다 configurations메서드는 비동기 시퀀스를 통해 구성을 전달합니다 여기에 넘기는 매개변수는 구성 구조체의 유형입니다 구성을 받으려면 forawait 루프를 사용합니다 이 시퀀스는 구성 타입의옵셔널 값을 반환합니다 여기서 config의 타입은LandmarksManagedConfig죠 이제 기기에서 어떤 일이 일어나는지 순서대로 보겠습니다 먼저 관리자가인코딩된 구성을 생성해 기기로 전송하면기기에 저장됩니다 앱이 for await 루프로비동기 시퀀스를 순회하면 기기는 이 구성 사본을디코더 메서드로 전달합니다 구성 구조체가 생성되며 앱에 필요한 속성을 포함합니다 이 인스턴스가비동기 시퀀스로 전달됩니다 이후 관리자가 구성을업데이트하면 위 과정이 자동으로 반복됩니다 만약 앱이 관리되지 않거나 구성이 지정되지 않았거나 디코딩에 실패했다면대신 nil을 반환합니다 즉, 앱은 이 조건들을따로 신경 쓸 필요가 없습니다 값이든 nil이든반환되는 것이 현재 앱의 관리 구성입니다 따라서 루프 본문에서는구성 값을 모델 데이터의 managedCollection속성에 복사하면 됩니다 구성은 언제든업데이트될 수 있으므로 for await 루프는종료 조건이 없습니다 리소스를 낭비하지는 않으니걱정하지 않아도 됩니다 루프는 값이 들어올 때만실행됩니다 이 작업은 언제 실행할까요? 앱 어디서든 시작할 수 있지만 보통 앱 실행 초기에시작하는 메서드에 둡니다 Landmarks 앱에서는 ModelData의 loadCollections메서드에 추가하겠습니다 이 메서드는 앱 실행직후 호출됩니다 그 후 관리 컬렉션을보기에 추가하면 끝입니다 결과는 다음과 같습니다 컬렉션 보기에 관리자가구성한 제목과 랜드마크가 표시되는 섹션이 생깁니다 추가 기능도 있습니다 앞서 작성한 코드만으로도자동 업데이트가 됩니다 구성 변경 시 새로운 랜드마크를 표시하도록자동으로 보기가 업데이트됩니다 이제 신원 정보를사용하는 예제로 넘어가겠습니다 관리자가 더 많은 랜드마크를 추가할 수 있도록 하겠습니다 앱은 애셋 서버에서 랜드마크를다운로드할 예정입니다 관리자가 호스팅된 URL을지정할 수 있게 합니다 이를 통해 관리자는 애셋 위치를 유연하게 지정할 수 있습니다 이 URL은 이전에 작성한 구성에 쉽게 추가할 수 있습니다 그리고 관리자가 앱에 신원 정보를 등록할 수 있게 합니다 앱은 이 정보를 사용해 애셋서버와 mTLS로 통신합니다 프레임워크의 3가지 비밀 정보제공자는 같은 방식을 사용하죠 각 비밀 정보는 문자열 식별자를 가집니다 식별자를 기준으로 비밀 정보를조회하는 메서드가 있습니다 식별자는 앱에서 지원할값을 직접 정하면 됩니다 보통은 하드코딩된식별자를 사용합니다 만약 비밀 정보가 변경될 때알림을 받고 싶다면 AsyncSequence를 사용할 수 있습니다 이 시퀀스는현재 등록된 해당 타입의 모든 비밀 정보 식별자를 배열로 반환합니다 AsyncSequence는 식별자 목록이 동적인앱에서도 유용합니다 Landmarks 앱은 애셋다운로드 시 그런 복잡성이 필요 없으므로 하드코딩된 식별자를 사용합니다 앱은 URL 세션으로 요청을 보냅니다 mTLS를 구현할 때 대부분의 코드는 상용구입니다 우리가 신경 쓰는 부분은 신원 정보를 가져오는 중간 부분입니다 ManagedApp신원 제공자와 하드코딩된 식별자를 사용해SecIdentity를 조회했습니다 관리자가 신원 정보를 제공하지않은 경우 챌린지를 취소합니다 이게 전부입니다 몇 줄의 코드로 앱은 필요한신원 정보를 얻었습니다 키 속성이나 인증서 서명 요청 또는 신원 등록 관련 다른요소를 다룰 필요가 없습니다 관리자가 등록해준신원을 그대로 사용하면 됩니다 마지막으로 해야 할 일은사양 문서를 발행하는 것입니다 Landmarks 앱을 어떻게구성할 수 있는지 설명합니다 구성의 포맷을 문서화합니다 간단한 방법은예제를 제공하는 것입니다 여기 구성의인코딩 예시가 있습니다 전송 포맷은속성 목록입니다 사양 문서에는자세한 내용을 포함해야 합니다 예로, 유효한 랜드마크 ID목록이나 값 목록이 있습니다 디코더가 맞춤 검증을 한다면 발생할 수 있는오류 코드도 문서화해 관리자가 구성 오류를진단할 수 있도록 합니다 앱이 사용하는 모든 비밀 정보식별자도 문서화합니다 Landmarks 앱에서사용한 하드코딩된 식별자인데 이 식별자가 애셋 다운로드에사용된다는 점을 명시하고 랜드마크 애셋의 예상 포맷도 여기서 문서화하면 좋습니다 이 모든 정보를문서나 웹사이트 형태로 관리자가 접근할 수 있도록공개합니다 이게 다입니다 앱을 개발할 때 참고할모범 사례가 몇 가지 있습니다 구성은 대용량 데이터전송용이 아닙니다 메가바이트가 아니라 킬로바이트 단위로 생각해야 합니다 대신 앱이 서버에서데이터를 다운로드하게 하고 URL을 구성에포함시키는 방식이 좋습니다 Landmarks 앱에서 그렇게 했던 것처럼요 비밀 정보는필요할 때마다 조회하고 그 이상으로는보관하지 마십시오 이것은 안전한 프로그래밍의모범 사례일 뿐만 아니라 관리자가 비밀 정보를업데이트했을 경우에도 항상 최신 값을 사용할 수 있게 해줍니다 구성을 설계할 때 단일 스위치로 앱이 관리상태 여부를 조정하지 마십시오 앱의 여러 행동에영향을 줄 수 있습니다 그 대신 앱의 각 기능을제어할 수 있는 개별 설정 항목을제공해야 합니다 이 방식이 관리자에게가장 큰 유연성을 줍니다 또한 버전 간호환성도 고려해야 합니다 앱을 업데이트하면서 구성 옵션을 추가하거나 변경하거나삭제할 수도 있습니다 관리자가 앱 버전에 따라 다른 구성을 제공하는 건 어렵습니다 이를 방지하려면디코더가 이전 구성도 처리하고 알 수 없는 새 키는무시하도록 만들어야 합니다 이렇게 하면 관리자는모든 기기에 하나의 구성만 적용해도 됩니다 앱이 기존 ManagedApp구성 기능을 사용하고 있다면 이제 그 기능에서 전환할 시점입니다 전환 기간에는 두 기능을동시에 지원할 수 있으며 ManagedApp 프레임워크구성에 우선권을 부여합니다 관리자가 ManagedApp 프레임워크로 흐름에 방해 없이전환할 수 있도록 합니다 심사를 위해 앱을 제출할 때 심사자는 앱의 기능을직접 사용해 봅니다 이 중 일부 기능이 앱이관리 상태일 때만 동작하고 구성 또는 비밀 정보가 필요하다면 심사자가 기능을확인하기 어려울 수 있습니다 이를 해결하는 방법은 여러 가지가 있습니다 첫 번째는 데모 모드를앱에 추가하는 것입니다 구성이 적용된 것처럼 말이죠 이 기능은 고객 대상데모에도 유용합니다 또는 해당 앱의 기능들을화면 녹화로 App Store Connect의앱 심사 참고사항에 첨부합니다 또한 심사자가 기기를기기 관리 서비스에 등록하고 앱을 적절히 구성할 수 있도록 지침과 자격 정보를제공할 준비를 하세요 무엇보다 창의력을 발휘하세요 ManagedApp프레임워크를 통해 앱 사용이 얼마나 쉬운지모두가 감탄할 수 있게 하세요 고객과 소통해 무엇을 원하는지 파악하고 프레임워크를 도입해 기존구성 기능에서 전환하세요 프레임워크에 대한 피드백은언제든 보내 주시기 바랍니다 기기 관리에 대한더 자세한 내용은 Apple 기기 관리의 새로운기능 세션을 확인하세요 감사합니다 멋진 WWDC 되세요
-
-
- 0:07 - 인사말
ManagedApp 프레임워크는 조직 전체에 걸친 관리형 배포를 위한 앱 설정을 간소화합니다. 이 프레임워크는 사람들이 앱을 설정할 때 직면하는 복잡하고 여러 단계의 프로세스를 제거해 좌절감, 앱 사용량 감소, 지원 비용 증가로 이어질 수 있습니다. ManagedApp 프레임워크를 사용하면 각 조직, 기기, 사용자에 맞게 앱을 미리 구성하여 출시 시 즉시 사용할 수 있습니다. 이러한 접근 방식은 사용자 경험을 향상시키고, 앱 도입을 촉진하며, 관리자의 지원 부담을 줄여 앱 배포를 보다 효율적이고 비용 효과적으로 만듭니다.
- 2:51 - ManagedApp 프레임워크 소개
ManagedApp 프레임워크를 사용하면 관리자가 관리형 앱과 해당 확장 프로그램을 안전하게 구성할 수 있습니다. 프레임워크는 기기 및 사용자 인증을 용이하게 하고, 높은 보안 요구 사항을 충족하며, 비밀번호, 인증서, ID, 앱별 구성 데이터를 제공합니다. 시스템은 이 데이터를 안전하게 저장하고 권한이 있는 관리형 앱 또는 확장 프로그램에서만 액세스할 수 있도록 합니다. 프레임워크는 다른 기기 관리 기술과 통합되어 대부분의 앱 확장 프로그램 유형을 지원하여 관리형 기기의 데이터 보안과 액세스 제어 기능을 강화합니다.
- 5:14 - 작업 흐름
관리자는 프레임워크를 사용하여 원격으로 기기를 관리할 수 있고 앱을 사용하여 MDM 서버를 관리할 수 있습니다. 프레임워크는 관리자로부터 앱으로 구성 설정과 비밀을 안전하게 전송하는 데 도움이 됩니다. 여러분은 다른 사람들이 앱을 구성하는 방법에 대해 자세히 설명하는 디코더와 사양을 작성하여 중요한 역할을 합니다. 관리자는 이러한 정보를 사용하여 앱의 동작을 조직의 특정 요구 사항에 맞게 조정하여 보안과 기능을 강화합니다. 프레임워크는 조직에서 활용할 수 있는 혁신적인 솔루션을 만들 수 있는 플랫폼 역할을 합니다.
- 7:26 - 예시 시나리오
ManagedApp 프레임워크는 다양한 시나리오에서 관리형 앱의 보안과 기능을 강화합니다. 이는 안전성이 낮은 라이선스 토큰을 대체하여 라이선스 키의 안전한 배포를 활성화하고 라이선스 목적으로 암호화된 ID를 제공합니다. 예를 들어, 프레임워크는 VPN 확장에 특히 유용하여 검증된 하드웨어 바인딩 키를 통해 강력한 인증을 제공합니다. 또한 ID 공급자의 경우 ManagedApp 프레임워크는 하드웨어 바인딩 ID, 임시 비밀번호, 토큰 등 다양한 인증 자료를 사용하여 확장 가능한 단일 로그인을 용이하게 합니다. 전반적으로 ManagedApp 프레임워크는 앱 보안을 개선하고, 관리를 간소화하며, 앱 확장 프로그램을 지원하기 때문에 관리형 앱을 배포하는 조직에 적합한 솔루션입니다.
- 12:17 - 구현
iOS에서 이 프레임워크는 구성과 비밀을 앱에 안전하게 전달하는 프로세스를 간소화합니다. 프레임워크는 각각 특정 데이터 유형을 처리하도록 문자열, SecCertificates, SecIdentities, 앱별 구성 등 맞춤화된 4개의 독립적인 클래스로 구성됩니다. 앱별 구성의 경우, Swift 구조체를 사용하여 데이터 구조를 정의할 수 있습니다. 이러한 유연성 덕분에 관리자는 자신의 필요에 따라 앱의 동작을 사용자 정의할 수 있습니다. 관리자가 교실에서 사용할 특정 랜드마크 컬렉션을 표시하도록 구성할 수 있는 Landmarks 앱을 예로 들 수 있습니다. 이를 달성하기 위해 관리형 컬렉션과 같은 구성 가능한 설정을 나타내는 구조체를 만듭니다. 이 구조체는 ‘Decodable’ 프로토콜을 준수하기 때문에 프레임워크는 모바일 기기 관리(MDM) 서버에서 수신한 구성 데이터를 디코딩할 수 있습니다. 앱은 Swift 동시성을 사용하여 구성을 비동기적으로 검색하여 프로세스가 메인 스레드를 차단하지 않도록 합니다. 관리자가 구성을 업데이트하면 앱이 자동으로 변경 사항을 수신하고 적용하기 때문에 동적이고 적응성이 뛰어납니다. 프레임워크는 또한 ID와 같은 민감한 정보를 처리하는 데 대한 지원도 제공합니다. ManagedApp Identities Provider를 사용하면 프로비저닝된 ID를 안전하게 조회하고 검색할 수 있습니다. 이 기능은 상호 TLS 인증 구현을 간소화하여 앱이 애셋 서버에 안전하게 연결할 수 있도록 합니다. 마지막으로 관리자가 앱을 효과적으로 구성할 수 있도록 지원하려면 구성 형식, 유효한 값, 오류 코드, 지원되는 모든 비밀 식별자를 문서화하는 사양을 게시해야 합니다. 이 사양은 관리자가 구성을 올바르게 만들어 적용 시 도움이 되는 가이드 역할을 합니다.
- 21:27 - 모범 사례
앱 개발 시, 구성 관리 모범 사례를 따르세요. 구성에서 데이터를 저장하는 대신 서버에서 데이터를 다운로드하면 킬로바이트 단위의 데이터만 처리할 수 있습니다. 보안을 위해 필요에 따라 비밀을 찾아보고 최신 버전을 사용하고 있는지 확인하세요. 관리자에게 최대한의 유연성을 제공하려면 구성 옵션이 개별적이고 세부적이어야 합니다. 순방향 및 역방향 호환성을 고려해야 합니다. 즉, 디코더는 이전 구성을 처리하고 새 키를 무시해야 합니다. 검토자가 관리나 구성이 필요한 기능을 포함한 모든 기능을 테스트할 수 있도록 앱을 디자인했습니다. 데모 모드, 영상 또는 리뷰 자격 증명을 제공하여 이를 달성할 수 있습니다. 창의성을 발휘하고, 고객 피드백을 고려하며, ManagedApp 프레임워크를 도입하여 사용 편의성을 개선하세요.