Konfigurieren des Schlüsselbunds

Wenn die Microsoft Authentication Library (MSAL) (MSAL) für iOS und macOS einen Benutzer anmeldet oder ein Token erneuert, versucht sie, Token im Schlüsselbund zwischenzuspeichern. Das Zwischenspeichern von Token im Schlüsselbund ermöglicht MSAL das automatische Einmalige Anmelden (Single Sign-On, SSO) zwischen mehreren Apps, die vom gleichen Apple-Entwickler verteilt werden. SSO wird mithilfe der Funktion für Schlüsselbund-Zugriffsgruppen ermöglicht. Weitere Informationen finden Sie in der Dokumentation zu Den Schlüsselbundelementen von Apple.

In diesem Artikel wird beschrieben, wie Sie App-Berechtigungen so konfigurieren, dass MSAL zwischengespeicherte Token in iOS- und macOS-Schlüsselbund schreiben kann.

Standard-Zugriffsgruppe für den Schlüsselbund

iOS

MSAL unter iOS verwendet standardmäßig die com.microsoft.adalcache Zugriffsgruppe. Dadurch wird die optimale SSO-Erfahrung zwischen mehreren Apps aus demselben Herausgeber sichergestellt.

Fügen Sie unter iOS die Keychaingruppe com.microsoft.adalcache der Berechtigung Ihrer App in XCode unter Projekteinstellungen>Funktionen>Keychainfreigabe hinzu.

macOS

MSAL unter macOS verwendet standardmäßig die Zugriffsgruppe com.microsoft.identity.universalstorage.

Fügen Sie unter macOS die Keychaingruppe com.microsoft.identity.universalstorage der Berechtigung Ihrer App in XCode unter Projekteinstellungen>Funktionen>Keychainfreigabe ähnlich wie bei iOS hinzu.

Benutzerdefinierte Zugriffsgruppe für den Schlüsselbund

Wenn Sie eine andere Zugriffsgruppe für den Schlüsselbund verwenden möchten, können Sie beim Erstellen von MSALPublicClientApplicationConfig Ihre benutzerdefinierte Gruppe übergeben, bevor Sie MSALPublicClientApplication erstellen, wie folgt:

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

Schlüsselbundfreigabe deaktivieren

Wenn Sie den SSO-Status nicht zwischen mehreren Apps freigeben oder wenn Sie keine Keychain-Zugriffsgruppen verwenden möchten, können Sie die Keychainfreigabe deaktivieren. Übergeben Sie hierzu die Anwendungspaket-ID als Wert für „keychainGroup“:

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

Fehler -34018 (Fehler beim Festlegen des Elements in der Keychain)

Fehler -34018 bedeutet normalerweise, dass der Schlüsselbund nicht ordnungsgemäß konfiguriert wurde. Stellen Sie sicher, dass die in MSAL konfigurierte und die in den Berechtigungen konfigurierte Keychain-Zugriffsgruppe übereinstimmen.

Sicherstellen, dass Ihre Anwendung ordnungsgemäß signiert ist

Unter macOS können Anwendungen ausgeführt werden, ohne vom Entwickler signiert zu werden. Während die meisten Funktionen von MSAL weiterhin funktionieren, erfordert SSO über den Zugriff auf den Schlüsselbund, dass die Anwendung signiert ist. Wenn mehrere Schlüsselbundaufforderungen vorhanden sind, stellen Sie sicher, dass die Signatur Ihrer Anwendung gültig ist.

Nächste Schritte

Erfahren Sie mehr über Schlüsselbundzugriffsgruppen im Apple-Artikel „Geteilter Zugriff auf Schlüsselbundelemente für eine Sammlung von Apps“.