Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando la Libreria di Autenticazione Microsoft (MSAL) per iOS e macOS effettua l'accesso di un utente o aggiorna un token, tenta di memorizzare i token nella cache del keychain. La memorizzazione dei token nella cache del keychain consente a MSAL di abilitare il single sign-on invisibile (SSO) tra più app distribuite dallo stesso sviluppatore Apple. L'accesso Single Sign-On viene ottenuto tramite la funzionalità dei gruppi di accesso keychain. Per altre informazioni, vedere la documentazione relativa agli elementi keychain di Apple.
Questo articolo illustra come configurare i diritti dell'app in modo che MSAL possa scrivere token memorizzati nella cache in iOS e macOS Keychain.
Gruppo di accesso portachiavi predefinito
iOS
MSAL in iOS usa il com.microsoft.adalcache gruppo di accesso per impostazione predefinita. In questo modo si garantisce la migliore esperienza SSO tra più app dello stesso editore.
Su iOS, aggiungi il gruppo del portachiavi com.microsoft.adalcache all'entitlement dell'app in Xcode, nelle Impostazioni del progetto>Funzionalità>Condivisione portachiavi.
macOS
MSAL in macOS usa com.microsoft.identity.universalstorage il gruppo di accesso per impostazione predefinita.
Su macOS, aggiungi il gruppo portachiavi com.microsoft.identity.universalstorage alle autorizzazioni dell’app in Xcode, sotto Impostazioni progetto>Capacità>Condivisione portachiavi, analogamente a iOS.
Gruppo di accesso portachiavi personalizzato
Se si vuole usare un gruppo di accesso keychain diverso, è possibile passare il gruppo personalizzato durante la creazione prima di creare MSALPublicClientApplicationConfigMSALPublicClientApplication, come illustrato di seguito:
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
Disabilita la condivisione del portachiavi
Se non vuoi condividere lo stato SSO tra più app o usare un gruppo di accesso del portachiavi, disattiva la condivisione del portachiavi passando l'ID del bundle dell'applicazione come keychainGroup:
config.cacheConfig.keychainSharingGroup = [[NSBundle mainBundle] bundleIdentifier];
Gestire l'errore -34018 (impossibile inserire l'elemento nel portachiavi)
L'errore -34018 normalmente indica che il portachiavi non è stato configurato correttamente. Assicurarsi che il gruppo di accesso del portachiavi configurato in MSAL corrisponda a quello configurato nelle autorizzazioni.
Verificare che l'applicazione sia firmata correttamente
In macOS le applicazioni possono essere eseguite senza firmare dallo sviluppatore. Anche se la maggior parte delle funzionalità di MSAL continuerà a funzionare, l'accesso SSO tramite keychain richiede la firma dell'applicazione. Se vengono visualizzate più richieste del portachiavi, verifica che la firma dell'applicazione sia valida.
Passaggi successivi
Scopri di più sui gruppi di accesso del portachiavi nell'articolo di Apple Condividere l'accesso agli elementi del portachiavi tra una raccolta di app.