Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn ein Benutzer sich authentifiziert, sendet Microsoft Entra ID das Token mithilfe des Umleitungs-URI, der bei der Microsoft Entra-Anwendung registriert ist, an die App.
Das MSAL erfordert, dass der Umleitungs-URI in einem bestimmten Format bei der Microsoft Entra-App registriert wird. MSAL verwendet einen Standardumleitungs-URI, wenn Sie keinen angeben. Das Format ist msauth.[Your_Bundle_Id]://auth.
Das Standardmäßige Umleitungs-URI-Format funktioniert für die meisten Apps und Szenarien, einschließlich brokerischer Authentifizierung und Systemwebansicht. Verwenden Sie nach Möglichkeit das Standardformat.
Möglicherweise müssen Sie jedoch den Umleitungs-URI für erweiterte Szenarien ändern, wie im folgenden Abschnitt beschrieben.
Szenarien, die einen anderen Umleitungs-URI erfordern
App-übergreifende Einmalanmeldung (Single Sign-On, SSO)
Damit die Microsoft Identity Platform Token für alle Apps freigeben können, muss jede App über dieselbe Client-ID oder Anwendungs-ID verfügen. Die Client-ID ist der eindeutige Bezeichner, der angegeben wird, wenn Sie Ihre App im Azure-Portal registriert haben (nicht die Anwendungsbundle-ID, die Sie pro App bei Apple registrieren).
Die Umleitungs-URIs müssen für jede iOS-App unterschiedlich sein. Auf diese Weise kann der Microsoft Identitätsdienst unterschiedliche Apps identifizieren, die eine Anwendungs-ID gemeinsam nutzen. Jede Anwendung kann mehrere Umleitungs-URIs im Azure Portal registriert haben. Jede App in Ihrer Suite verfügt über einen anderen Umleitungs-URI. Beispiel:
Aufgrund der folgenden Anwendungsregistrierung im Azure Portal:
- Client-ID:
ABCDE-12345 - RedirectUris:
msauth.com.contoso.app1://auth,msauth.com.contoso.app2://auth,msauth.com.contoso.app3://auth
App1 verwendet eine Umleitung msauth.com.contoso.app1://auth.
App2 verwendet msauth.com.contoso.app2://auth.
App3 verwendet msauth.com.contoso.app3://auth.
Migrieren von ADAL zu MSAL
Beim Migrieren von Code, der die Azure Active Directory Authentication Library (ADAL) zu MSAL verwendet hat, ist möglicherweise bereits ein Umleitungs-URI für Ihre App konfiguriert. Sie können den gleichen Umleitungs-URI weiterhin verwenden, solange Ihre ADAL-App so konfiguriert wurde, dass vermittelte Szenarien unterstützt werden, und Ihr Umleitungs-URI erfüllt die MSAL-Umleitungs-URI-Formatanforderungen.
Anforderungen an das Format der MSAL-Umleitungs-URI
Der MSAL-Umleitungs-URI muss im Formular enthalten sein.
<scheme>://hostDabei
<scheme>handelt es sich um eine eindeutige Zeichenfolge, die Ihre App identifiziert. Es basiert in erster Linie auf dem Bundle-Bezeichner Ihrer Anwendung, um die Eindeutigkeit zu gewährleisten. Wenn die Bundle-ID Ihrer App beispielsweise lautetcom.contoso.myapp, lautet der Umleitungs-URI in der Form:msauth.com.contoso.myapp://auth.Wenn Sie von ADAL migrieren, hat Ihr Umleitungs-URI wahrscheinlich dieses Format:
<scheme>://[Your_Bundle_Id], wobeischemees sich um eine eindeutige Zeichenfolge handelt. Das Format funktioniert weiterhin, wenn Sie MSAL verwenden.<scheme>muss in der Info.plist Ihrer App unterCFBundleURLTypes > CFBundleURLSchemeseingetragen sein. In diesem Beispiel wurde Info.plist als Quellcode geöffnet:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.[BUNDLE_ID]</string> </array> </dict> </array>
MSAL wird überprüfen, ob Ihre Umleitungs-URI korrekt registriert ist, und einen Fehler zurückgeben, wenn dies nicht der Fall ist.
- Wenn Sie Universal Links als Redirect-URI verwenden möchten, muss
<scheme>httpssein und muss nicht inCFBundleURLSchemesdeklariert werden. Konfigurieren Sie stattdessen die App und Domäne gemäß den Anweisungen von Apple unter "Universelle Links für Entwickler ", und rufen Sie diehandleMSALResponse:sourceApplication:MethodeMSALPublicClientApplicationauf, wann Ihre Anwendung über einen universellen Link geöffnet wird.
Verwenden eines benutzerdefinierten Umleitungs-URI
Um eine benutzerdefinierte Umleitungs-URI zu verwenden, übergeben Sie den Parameter redirectUri an MSALPublicClientApplicationConfig und übergeben Sie dieses Objekt an MSALPublicClientApplication, wenn Sie das Objekt initialisieren. Wenn der Umleitungs-URI ungültig ist, gibt der Initialisierer nil zurück und setzt redirectURIError mit zusätzlichen Informationen. Beispiel:
Objective-C:
MSALPublicClientApplicationConfig *config =
[[MSALPublicClientApplicationConfig alloc] initWithClientId:@"your-client-id"
redirectUri:@"your-redirect-uri"
authority:authority];
NSError *redirectURIError;
MSALPublicClientApplication *application =
[[MSALPublicClientApplication alloc] initWithConfiguration:config error:&redirectURIError];
Swift:
let config = MSALPublicClientApplicationConfig(clientId: "your-client-id",
redirectUri: "your-redirect-uri",
authority: authority)
do {
let application = try MSALPublicClientApplication(configuration: config)
// continue on with application
} catch let error as NSError {
// handle error here
}
Behandeln des geöffneten URL-Ereignisses
Ihre Anwendung sollte MSAL aufrufen, wenn sie eine Antwort über URL-Schemas oder universelle Links empfängt. Rufen Sie die Methode handleMSALResponse:sourceApplication: von MSALPublicClientApplication auf, wenn Ihre Anwendung geöffnet wird. Hier ist ein Beispiel für benutzerdefinierte Schemas:
Objective-C:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
return [MSALPublicClientApplication handleMSALResponse:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]];
}
Swift:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return MSALPublicClientApplication.handleMSALResponse(url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String)
}
Nächste Schritte
Weitere Informationen zu Authentifizierungsflüssen und Anwendungsszenarien