-
Conheça o framework ManagedApp
Saiba como o framework ManagedApp ajuda seu app a se adaptar a ambientes gerenciados. Mostraremos como receber dados de configuração, gerenciar segredos de apps com segurança e personalizar o comportamento de seus apps com base nos ajustes fornecidos pela organização. Também analisaremos exemplos reais para mostrar como você pode criar apps mais flexíveis e fáceis de gerenciar para ambientes corporativos e educacionais.
Capítulos
- 0:00 - Introdução
- 2:51 - Introdução ao framework ManagedApp
- 5:14 - Fluxo de trabalho
- 7:26 - Exemplos de cenários
- 12:17 - Implementação
- 21:27 - Melhores práticas
Recursos
- Apple School Manager and Apple Business APIs
- ManagedApp
- Support - Apple Platform Deployment
- Apple School Manager User Guide
- Apple Business Manager User Guide
Vídeos relacionados
WWDC25
-
Buscar neste vídeo...
-
-
0:01 - Your app's managed configuration
// Your app's managed configuration struct LandmarksManagedConfig: Decodable { private(set) var collection: LandmarkCollection? private enum CodingKeys: String, CodingKey { case collection } init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) collection = try values.decode(LandmarkCollection.self, forKey: .collection) } } -
0:02 - Receiving the current configuration
// Receiving the current configuration import ManagedApp // [...] var managedCollection: LandmarkCollection? // [...] func loadCollections() { // [...] Task { let configProvider = ManagedAppConfigurationProvider() for await config in await configProvider.configurations(LandmarksManagedConfig.self) { // config's type is LandmarksManagedConfig? managedCollection = config?.collection } // Loops forever } } -
0:03 - Using an identity
// Using an identity final class MyURLSessionDelegate: NSObject, URLSessionDelegate { func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge) async -> (URLSession.AuthChallengeDisposition, URLCredential?) { switch challenge.protectionSpace.authenticationMethod { case NSURLAuthenticationMethodClientCertificate: // Look up the identity let provider = ManagedAppIdentitiesProvider() let id = "AssetDownloadClient" guard let identity = try? await provider.identity(withIdentifier: id) else { // No identity, cancel the challenge return (.cancelAuthenticationChallenge, nil) } // Use the identity to authenticate. return (.useCredential, URLCredential(identity: identity, certificates: nil, persistence: .forSession)) default: return (.performDefaultHandling, nil) } } }
-
-
- 0:00 - Introdução
O framework ManagedApp simplifica a configuração de apps para implantações gerenciadas nas organizações. Esse framework elimina o processo complexo e de várias etapas que as pessoas enfrentam ao configurar apps, o que pode levar a frustração, redução do uso do app e aumento dos custos de suporte. Com o framework ManagedApp, você pode pré-configurar os apps para cada organização, dispositivo e usuário, permitindo o uso imediato após a abertura. Essa abordagem melhora a experiência do usuário, impulsiona a adoção do app e reduz a carga de suporte para os administradores, tornando a implantação mais econômica.
- 2:51 - Introdução ao framework ManagedApp
O framework ManagedApp permite que os administradores configurem com segurança apps gerenciados e as extensões deles. O framework facilita a autenticação de dispositivos e usuários, atende a altos requisitos de segurança e provisiona senhas, certificados, identidades e dados de configuração específicos do app. O sistema armazena esses dados com segurança e só pode ser acessado por apps ou extensões gerenciadas autorizadas. O framework se integra a outras tecnologias de gerenciamento de dispositivo e é compatível com a maioria das extensões, aumentando a segurança dos dados e o controle de acesso.
- 5:14 - Fluxo de trabalho
Os administradores podem usar esse framework para gerenciar remotamente dispositivos e apps com um servidor MDM. O framework facilita a transmissão segura de ajustes e segredos do administrador com o app. Você desempenha um papel crucial escrevendo decodificadores e especificações que detalham como configurar os apps. Os administradores usam esses dados para adaptar o comportamento do app às necessidades da organização, aumentando a segurança e a funcionalidade. O framework serve como uma plataforma, capacitando você a criar soluções inovadoras para uso organizacional.
- 7:26 - Exemplos de cenários
O framework ManagedApp aprimora a segurança e a funcionalidade de apps gerenciados em diversos cenários. Ele permite a distribuição segura de chaves de licença, substituindo tokens menos seguros, e fornece identidades criptográficas para licenciamento. Por exemplo, o framework é útil para extensões de VPN, oferecendo autenticação forte por meio de chave vinculada a hardware e atestada. Além disso, para provedores de identidade, o framework ManagedApp facilita o single sign-on extensível com vários materiais de autenticação, como identidades vinculadas a hardware, senhas temporárias e tokens. O framework ManagedApp melhora a segurança do app, simplifica o gerenciamento e é compatível com extensões de app, então é uma solução melhor para organizações com apps gerenciados.
- 12:17 - Implementação
No iOS, esse framework simplifica o processo de entrega segura de configurações e segredos aos apps. Ele consiste em quatro classes independentes, cada uma adaptada para lidar com um tipo específico de dados: strings, SecCertificates, SecIdentities e configurações específicas do app. Para configurações específicas do app, você pode definir a estrutura dos dados usando estruturas Swift. Essa flexibilidade permite a personalização do comportamento do app de acordo com as necessidades. Um exemplo é o app Landmarks, que os administradores podem configurar para exibir pontos de referência para uso em sala de aula. Para isso, é preciso criar uma estrutura que represente os ajustes configuráveis, como a coleção gerenciada. Essa struct obedece ao protocolo Decodable para que o framework decodifique dados de configuração recebidos do servidor de gerenciamento de dispositivos móveis (MDM). O app então usa a concorrência do Swift para obter a configuração de forma assíncrona, garantindo que o processo não bloqueie a thread principal. Quando o administrador atualiza a configuração, o app recebe e aplica automaticamente as alterações, tornando-a dinâmica e adaptável. O framework também possibilita o processamento de informações confidenciais, como identidades. Você pode usar o provedor de identidades ManagedApp para buscar e obter identidades provisionadas com segurança. Esse recurso simplifica a implementação da autenticação TLS mútua para que o app possa se conectar a servidores de assets com segurança. Para que os administradores configurem o app com eficiência, publique uma especificação documentando o formato de configuração, valores válidos, códigos de erro e identificadores de segredo compatíveis. Essa especificação serve como um guia para os administradores, ajudando-os a criar e aplicar as configurações corretamente.
- 21:27 - Melhores práticas
Siga as práticas recomendadas para gerenciamento de configuração ao desenvolver um app. Baixe dados do servidor em vez de armazená-los na configuração, que trata apenas quilobytes de dados. Procure segredos, conforme necessário, para melhorar a segurança e garantir que tem a versão mais recente. As opções de configuração precisam ser individuais e granulares para fornecer aos administradores mais flexibilidade. Considere a compatibilidade entre versões. Os decodificadores devem aceitar configurações antigas e ignorar chaves novas. Crie apps para que os revisores possam testar os recursos, mesmo os que exigem gerenciamento ou configuração. Para isso, use modos de demonstração e vídeos ou forneça credenciais de revisão. Use a criatividade, considere o feedback dos clientes e adote o framework ManagedApp para facilitar ainda mais o uso.