Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Quando a Biblioteca de Autenticação da Microsoft (MSAL) para iOS e macOS autentica um utilizador, ou renova um token, tenta armazenar os tokens em cache no Porta-chaves. A cache de tokens no chaveiro permite que a MSAL forneça login único silencioso (SSO) entre várias aplicações distribuídas pelo mesmo programador Apple. O SSO é alcançado através da funcionalidade de grupos de acesso ao porta-chaves. Para mais informações, consulte a documentação dos Itens do Porta-Chaves da Apple.
Este artigo explica como configurar os direitos da aplicação para que o MSAL possa gravar tokens em cache no porta-chaves do iOS e do macOS.
Grupo de acesso padrão ao porta-chaves
iOS
O MSAL no iOS usa o grupo de acesso com.microsoft.adalcache por defeito. Isto garante a melhor experiência SSO entre várias aplicações do mesmo editor.
No iOS, adicione o grupo de porta-chaves com.microsoft.adalcache às permissões da sua aplicação no Xcode, em Definições do projeto>Capacidades>Partilha de porta-chaves.
macOS
No macOS, o MSAL utiliza, por predefinição, o grupo de acesso com.microsoft.identity.universalstorage.
No macOS, adicione o grupo de porta-chaves com.microsoft.identity.universalstorage às permissões da sua aplicação no Xcode, em Definições do projeto>Capacidades>Partilha de porta-chaves, tal como no iOS.
Grupo de acesso personalizado ao porta-chaves
Se quiseres usar um grupo de acesso diferente ao porta-chaves, podes passar o teu grupo personalizado ao criar MSALPublicClientApplicationConfig antes de criar MSALPublicClientApplication, assim:
MSALPublicClientApplicationConfig *config = [[MSALPublicClientApplicationConfig alloc] initWithClientId:@"your-client-id"
redirectUri:@"your-redirect-uri"
authority:nil];
config.cacheConfig.keychainSharingGroup = @"custom-group";
MSALPublicClientApplication *application = [[MSALPublicClientApplication alloc] initWithConfiguration:config error:nil];
// Now call `acquiretoken`.
// Tokens will be saved into the "custom-group" access group
// and only shared with other applications declaring the same access group
Desativar a partilha do porta-chaves
Se não quiser partilhar o estado do SSO entre várias aplicações, ou usar qualquer grupo de acesso a chaves, desative a partilha de chaves passando o ID do pacote de aplicações como o seu Keychain Group:
config.cacheConfig.keychainSharingGroup = [[NSBundle mainBundle] bundleIdentifier];
Tratar o erro -34018 (falha ao guardar o item no porta-chaves)
Erro -34018 normalmente significa que o porta-chaves não foi configurado corretamente. Certifique-se de que o grupo de acesso ao porta-chaves configurado no MSAL corresponde ao configurado nos entitlements.
Certifique-se de que a sua candidatura está devidamente assinada
No macOS, as aplicações podem ser executadas sem serem assinadas pelo programador. Embora a maior parte da funcionalidade da MSAL continue a funcionar, o acesso SSO através do keychain requer que a aplicação seja assinada. Se estiveres a receber várias mensagens do Porte-chaves, certifica-te de que a assinatura da tua app é válida.
Passos seguintes
Saiba mais sobre grupos de acesso a porta-chaves no artigo da Apple sobre Partilha de Acesso a Itens de Porta-Chaves Entre uma Coleção de Aplicações .