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 un utente esegue l'autenticazione, Microsoft Entra ID invia il token all'app usando l'URI di reindirizzamento registrato con l'applicazione Microsoft Entra.
MSAL richiede che l'URI di reindirizzamento sia registrato con l'app Microsoft Entra in un formato specifico. MSAL usa un URI di reindirizzamento predefinito, se non ne viene specificato uno. Il formato è msauth.[Your_Bundle_Id]://auth.
Il formato URI di reindirizzamento predefinito funziona per la maggior parte delle app e degli scenari, tra cui l'autenticazione negoziata e la visualizzazione Web di sistema. Usare il formato predefinito quando possibile.
Tuttavia, potrebbe essere necessario modificare l'URI di reindirizzamento per scenari avanzati, come descritto nella sezione seguente.
Scenari che richiedono un URI di reindirizzamento diverso
Single sign-on tra applicazioni (SSO)
Per consentire al Microsoft Identity Platform di condividere i token tra le app, ogni app deve avere lo stesso ID client o ID applicazione. L'ID client è l'identificatore univoco fornito quando hai registrato l'app nel portale di Azure (non l'ID bundle dell'applicazione registrato per ogni app con Apple).
Gli URI di reindirizzamento devono essere diversi per ogni app iOS. In questo modo il servizio di gestione delle identità Microsoft identifica in modo univoco app diverse che condividono un ID applicazione. Ogni applicazione può avere più URI di reindirizzamento registrati nel portale di Azure. Ogni app della tua suite avrà un URI di reindirizzamento diverso. Per esempio:
Data la registrazione dell'applicazione seguente nel portale di Azure:
- ID cliente:
ABCDE-12345 - RedirectUris:
msauth.com.contoso.app1://auth,msauth.com.contoso.app2://auth,msauth.com.contoso.app3://auth
App1 usa il reindirizzamento msauth.com.contoso.app1://auth.
App2 usa msauth.com.contoso.app2://auth.
App3 usa msauth.com.contoso.app3://auth.
Migrazione da ADAL a MSAL
Quando si esegue la migrazione di codice che usava il Azure Active Directory Authentication Library (ADAL) a MSAL, potrebbe essere già stato configurato un URI di reindirizzamento per l'app. Puoi continuare a usare lo stesso URI di reindirizzamento purché l'app ADAL sia stata configurata per supportare gli scenari negoziati e l'URI di reindirizzamento soddisfi i requisiti di formato dell'URI di reindirizzamento MSAL.
Requisiti relativi al formato dell'URI di reindirizzamento di MSAL
L'URI di reindirizzamento MSAL deve essere nel formato
<scheme>://hostDove
<scheme>è una stringa univoca che identifica l'app. Si basa principalmente sull'identificatore bundle dell'applicazione per garantire l'univocità. Ad esempio, se l'ID bundle dell'app ècom.contoso.myapp, l'URI di reindirizzamento sarà nel formato :msauth.com.contoso.myapp://auth.Se si esegue la migrazione da ADAL, l'URI di reindirizzamento avrà probabilmente questo formato:
<scheme>://[Your_Bundle_Id], doveschemeè una stringa univoca. Il formato continuerà a funzionare quando si usa MSAL.<scheme>deve essere registrato nel file Info.plist dell'app sottoCFBundleURLTypes > CFBundleURLSchemes. In questo esempio Info.plist è stato aperto come codice sorgente:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.[BUNDLE_ID]</string> </array> </dict> </array>
MSAL verificherà se l'URI di reindirizzamento viene registrato correttamente e restituirà un errore in caso contrario.
- Se si vogliono usare collegamenti universali come URI di reindirizzamento, deve
<scheme>esserehttpse non deve essere dichiarato inCFBundleURLSchemes. Configurare invece l'app e il dominio in base alle istruzioni di Apple in Collegamenti universali per sviluppatori e chiamare ilhandleMSALResponse:sourceApplication:metodo diMSALPublicClientApplicationquando l'applicazione viene aperta tramite un collegamento universale.
Usare un URI di reindirizzamento personalizzato
Per utilizzare un URI di reindirizzamento personalizzato, passare il parametro redirectUri a MSALPublicClientApplicationConfig e passare tale oggetto a MSALPublicClientApplication quando si inizializza l'oggetto. Se l'URI di reindirizzamento non è valido, l'inizializzatore restituirà nil e impostarà redirectURIErrorcon informazioni aggiuntive. Per esempio:
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
}
Gestire l'evento di apertura dell'URL
L'applicazione deve chiamare MSAL quando riceve qualsiasi risposta tramite schemi URL o collegamenti universali. Chiama il metodo handleMSALResponse:sourceApplication: di MSALPublicClientApplication quando l'applicazione si apre. Ecco un esempio di schemi personalizzati:
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)
}
Passaggi successivi
Altre informazioni sui flussi di autenticazione e sugli scenari dell'applicazione