Konfigurera nyckelring

När Microsoft Authentication Library för iOS och macOS (MSAL) loggar in en användare eller uppdaterar en token försöker den cachelagra token i nyckelringen. Cachelagring token i nyckelringen gör att MSAL kan tillhandahålla tyst enkel inloggning (SSO) mellan flera appar som distribueras av samma Apple-utvecklare. Enkel inloggning uppnås via funktionerna för nyckelringsåtkomstgrupper. Mer information finns i Apples dokumentation om nyckelringar.

Den här artikeln beskriver hur du konfigurerar apprättigheter så att MSAL kan skriva cachelagrade token till iOS- och macOS-nyckelringar.

Standardåtkomstgrupp för nyckelringar

iOS

MSAL på iOS använder com.microsoft.adalcache åtkomstgruppen som standard. Detta säkerställer den bästa SSO-upplevelsen mellan flera appar från samma utgivare.

I iOS lägger du till com.microsoft.adalcache nyckelringsgruppen till appens berättigande i XCode under Projektinställningar>Funktioner>Nyckelringsdelning.

macOS

MSAL på macOS använder com.microsoft.identity.universalstorage åtkomstgrupp som standard.

På grund av begränsningar för macOS-nyckelringar översätts MSAL:er access group inte direkt till nyckelringens åtkomstgruppsattribut (se kSecAttrAccessGroup) på macOS 10.14 och tidigare. Det fungerar dock på liknande sätt ur ett SSO-perspektiv genom att se till att flera program som distribueras av samma Apple-utvecklare kan ha tyst enkel inloggning.

På macOS 10.15 och senare (macOS Catalina) använder MSAL nyckelringsåtkomstgruppattribut för att uppnå tyst enkel inloggning, på samma sätt som iOS.

Anpassad åtkomstgrupp för nyckelringar

Om du vill använda en annan nyckelringsåtkomstgrupp kan du skicka din anpassade grupp när du skapar MSALPublicClientApplicationConfig , MSALPublicClientApplicationså här:

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

Inaktivera delning av nyckelringar

Om du inte vill dela SSO-tillstånd mellan flera appar eller använda någon nyckelringsåtkomstgrupp inaktiverar du delning av nyckelringar genom att skicka programpaket-ID:t som din nyckelringGrupp:

config.cacheConfig.keychainSharingGroup = [[NSBundle mainBundle] bundleIdentifier];

Hantera -34018-fel (det gick inte att ange objektet i nyckelringen)

Fel -34018 innebär normalt att nyckelringen inte har konfigurerats korrekt. Kontrollera att nyckelringens åtkomstgrupp som har konfigurerats i MSAL matchar den som konfigurerats i berättiganden.

Kontrollera att programmet är korrekt signerat

På macOS kan program köras utan att signeras av utvecklaren. De flesta av MSAL:s funktioner fortsätter att fungera, men enkel inloggning via nyckelringsåtkomst kräver att programmet signeras. Om du har flera frågor om nyckelringar kontrollerar du att programmets signatur är giltig.

Nästa steg

Läs mer om åtkomstgrupper för nyckelringar i apples artikel om delningsåtkomst till nyckelringsobjekt bland en samling appar .