Come abilitare l'accesso Single Sign-On tra app su Android tramite ADALHow to enable cross-app SSO on Android using ADAL

Ora i clienti si aspettano che l'accesso SSO (Single Sign-On) venga fornito in modo che gli utenti debbano inserire le loro credenziali una volta sola e che le credenziali valgano automaticamente per le varie applicazioni.Providing Single Sign-On (SSO) so that users only need to enter their credentials once and have those credentials automatically work across applications is now expected by customers. La difficoltà di immissione di nome utente e password su uno schermo di piccole dimensioni, spesso abbinata a un fattore aggiuntivo (2FA) come una telefonata o un codice inviato tramite SMS, rende l'utente insoddisfatto se questa procedura va ripetuta più volte per il prodotto.The difficulty in entering their username and password on a small screen, often times combined with an additional factor (2FA) like a phone call or a texted code, results in quick dissatisfaction if a user has to do this more than one time for your product.

Inoltre, se si applica una piattaforma delle identità che può essere usata da altre applicazioni, ad esempio Microsoft Accounts o un account aziendale di Office365, i clienti si aspettano che le credenziali siano disponibili all'uso in tutte le applicazioni, indipendentemente dal fornitore.In addition, if you apply an identity platform that other applications may use such as Microsoft Accounts or a work account from Office365, customers expect that those credentials to be available to use across all their applications no matter the vendor.

La piattaforma Microsoft Identity, insieme agli altri SDK di Microsoft Identity, soddisfa queste aspettative e consente di offrire l'SSO ai clienti nella propria suite di applicazioni oppure, analogamente alla funzionalità broker e alle applicazioni di Authenticator, in tutto il dispositivo.The Microsoft Identity platform, along with our Microsoft Identity SDKs, does all this hard work for you and gives you the ability to delight your customers with SSO either within your own suite of applications or, as with our broker capability and Authenticator applications, across the entire device.

Questa procedura illustrerà come configurare l'SDK all'interno dell'applicazione per offrire questo vantaggio ai clienti.This walkthrough will tell you how to configure our SDK within your application to provide this benefit to your customers.

Questa procedura si applica a:This walkthrough applies to:

  • Azure Active DirectoryAzure Active Directory
  • Azure Active Directory B2CAzure Active Directory B2C
  • Azure Active Directory B2BAzure Active Directory B2B
  • Accesso condizionale di Azure Active DirectoryAzure Active Directory Conditional Access

Il documento precedente presuppone che si sappia come effettuare il provisioning delle applicazioni nel portale legacy per Azure Active Directory e che l'applicazione sia stata integrata con Microsoft Identity Android SDK.The document preceding assumes you know how to provision applications in the legacy portal for Azure Active Directory and integrated your application with the Microsoft Identity Android SDK.

Concetti di SSO nella piattaforma Microsoft IdentitySSO Concepts in the Microsoft Identity Platform

Broker di Microsoft IdentityMicrosoft Identity Brokers

Microsoft offre applicazioni per ogni piattaforma per dispositivi mobili che consentono il bridging delle credenziali tra le applicazioni di fornitori diversi e offre particolari funzionalità avanzate che richiedono un'unica posizione sicura da cui convalidare le credenziali.Microsoft provides applications for every mobile platform that allow for the bridging of credentials across applications from different vendors and allows for special enhanced features that require a single secure place from where to validate credentials. Queste applicazioni sono dette broker.We call these brokers. Nei sistemi iOS e Android i broker sono forniti tramite applicazioni scaricabili che i clienti possono installare in modo indipendente oppure possono essere inviati al dispositivo da una società che gestisce alcuni o tutti i dispositivi dei suoi dipendenti.On iOS and Android these are provided through downloadable applications that customers either install independently or can be pushed to the device by a company who manages some or all of the device for their employee. I broker supportano la gestione della sicurezza per alcune applicazioni soltanto o per tutto il dispositivo, a seconda di quanto stabilito dagli amministratori IT.These brokers support managing security just for some applications or the entire device based on what IT Administrators desire. In Windows questa funzionalità è fornita da un sistema di selezione dell'account incorporato nel sistema operativo, il cui nome tecnico è Web Authentication Broker.In Windows, this functionality is provided by an account chooser built in to the operating system, known technically as the Web Authentication Broker.

Per altre informazioni su come vengono usati questi broker e come vengono visualizzati dai clienti nel flusso di accesso per la piattaforma Microsoft Identity, continuare a leggere.For more information on how we use these brokers and how your customers might see them in their login flow for the Microsoft Identity platform read on.

Modelli di accesso dai dispositivi mobiliPatterns for logging in on mobile devices

Nella piattaforma Microsoft Identity l'accesso alle credenziali nei dispositivi avviene in base a due modelli:Access to credentials on devices follow two basic patterns for the Microsoft Identity platform:

  • Accessi non assistiti da brokerNon-broker assisted logins
  • Accessi assistiti da brokerBroker assisted logins

Accessi non assistiti da brokerNon-broker assisted logins

Gli accessi non assistiti da broker sono esperienze di accesso in linea con l'applicazione e utilizzano le risorse di archiviazione locali nel dispositivo per l'applicazione.Non-broker assisted logins are login experiences that happen inline with the application and use the local storage on the device for that application. Le risorse di archiviazione possono essere condivise tra le applicazioni, ma le credenziali sono strettamente associate all'applicazione oppure a suite di applicazioni che usano le credenziali.This storage may be shared across applications but the credentials are tightly bound to the app or suite of apps using that credential. Questa è l'esperienza più frequente in molte applicazioni per dispositivi mobili in cui si immettono un nome utente e una password all'interno dell'applicazione stessa.You've most likely experienced this in many mobile applications when you enter a username and password within the application itself.

Questi tipi di accessi offrono i seguenti vantaggi:These logins have the following benefits:

  • L'esperienza utente si svolge interamente all'interno dell'applicazione.User experience exists entirely within the application.
  • Le credenziali possono essere condivise tra applicazioni firmate dallo stesso certificato, offrendo un'esperienza di Single Sign-On alla suite di applicazioni.Credentials can be shared across applications that are signed by the same certificate, providing a single sign-on experience to your suite of applications.
  • Il controllo dell'esperienza di accesso viene fornito all'applicazione prima e dopo l'accesso.Control around the experience of logging in is provided to the application before and after sign-in.

Questi tipi di accessi presentano i seguenti svantaggi:These logins have the following drawbacks:

  • L'utente non può eseguire il Single Sign-On per tutte le app che usano un'identità Microsoft, ma solo per le identità Microsoft configurate dall'applicazione.User cannot experience single-sign on across all apps that use a Microsoft Identity, only across those Microsoft Identities that your application has configured.
  • L'applicazione non può essere usata con funzionalità aziendali più avanzate, ad esempio l'Accesso condizionale o la suite di prodotti InTune.Your application cannot be used with more advanced business features such as Conditional Access or use the InTune suite of products.
  • L'applicazione non supporta l'autenticazione basata su certificati per gli utenti aziendali.Your application can't support certificate-based authentication for business users.

Di seguito viene illustrato il funzionamento degli SDK di Microsoft Identity con risorse di archiviazione condivise delle applicazioni per abilitare l'SSO:Here is a representation of how the Microsoft Identity SDKs work with the shared storage of your applications to enable SSO:

+------------+ +------------+  +-------------+
|            | |            |  |             |
|   App 1    | |   App 2    |  |   App 3     |
|            | |            |  |             |
|            | |            |  |             |
+------------+ +------------+  +-------------+
| Azure SDK  | | Azure SDK  |  | Azure SDK   |
+------------+-+------------+--+-------------+
|                                            |
|            App Shared Storage              |
+--------------------------------------------+

Accessi assistiti da brokerBroker assisted logins

Gli accessi assistiti da broker sono esperienze di accesso che si svolgono all'interno dell'applicazione broker e usano le risorse di archiviazione e la sicurezza del broker per condividere le credenziali tra tutte le applicazioni sul dispositivo che applicano la piattaforma Microsoft Identity.Broker-assisted logins are login experiences that occur within the broker application and use the storage and security of the broker to share credentials across all applications on the device that apply the Microsoft Identity platform. Ciò significa che le applicazioni si affidano al broker per l'accesso degli utenti.This means that your applications rely on the broker to sign users in. Nei sistemi iOS e Android i broker sono inseriti tramite applicazioni scaricabili che i clienti possono installare in modo indipendente oppure possono essere inviati al dispositivo da una società che gestisce il dispositivo dell'utente.On iOS and Android these brokers are provided through downloadable applications that customers either install independently or can be pushed to the device by a company who manages the device for their user. Un esempio di questo tipo di applicazione è l'applicazione Microsoft Authenticator per iOS.An example of this type of application is the Microsoft Authenticator application on iOS. In Windows questa funzionalità è fornita da un sistema di selezione dell'account incorporato nel sistema operativo, il cui nome tecnico è Web Authentication Broker.In Windows this functionality is provided by an account chooser built in to the operating system, known technically as the Web Authentication Broker. L'esperienza varia in base alla piattaforma e talvolta può essere un elemento di disturbo per gli utenti se non viene gestita correttamente.The experience varies by platform and can sometimes be disruptive to users if not managed correctly. Chi ha installato l'applicazione Facebook e usa la funzionalità di connessione di Facebook in un'altra applicazione avrà probabilmente maggiore dimestichezza con questo modello.You're probably most familiar with this pattern if you have the Facebook application installed and use Facebook Connect from another application. La piattaforma Microsoft Identity usa lo stesso modello.The Microsoft Identity platform uses the same pattern.

Nel sistema operativo iOS questo genera un'animazione di "transizione" in cui l'applicazione viene inviata sullo sfondo mentre le applicazioni di Microsoft Authenticator vengono portate in primo piano in modo che l'utente possa scegliere con quale account accedere.For iOS this leads to a "transition" animation where your application is sent to the background while the Microsoft Authenticator applications comes to the foreground for the user to select which account they would like to sign in with.

Nei sistemi Android e Windows la selezione degli account viene visualizzata in alto nell'applicazione, con un impatto meno fastidioso per l'utente.For Android and Windows the account chooser is displayed on top of your application which is less disruptive to the user.

Come viene richiamato il brokerHow the broker gets invoked

Se nel dispositivo è installato un broker compatibile, ad esempio l'applicazione Microsoft Authenticator, gli SDK di Microsoft Identity richiamano automaticamente il broker quando un utente indica che vuole accedere con un account della piattaforma Microsoft Identity.If a compatible broker is installed on the device, like the Microsoft Authenticator application, the Microsoft Identity SDKs will automatically do the work of invoking the broker for you when a user indicates they wish to log in using any account from the Microsoft Identity platform. Potrebbe trattarsi di un account Microsoft personale, di un account aziendale o dell'istituto di istruzione o di un account dato e ospitato in Azure con i prodotti B2C e B2B.This account could be a personal Microsoft Account, a work or school account, or an account that you provide and host in Azure using our B2C and B2B products.

Come si garantisce la validità dell'applicazioneHow we ensure the application is valid

La necessità di verificare l'identità di una chiamata di applicazione al broker è fondamentale per la sicurezza garantita con l'accesso assistito da broker.The need to ensure the identity of an application call the broker is crucial to the security we provide in broker assisted logins. Né IOS né Android applicano identificatori univoci che sono validi solo per una determinata applicazione, cosicché le applicazioni dannose possono effettuare lo "spoofing" di un identificatore dell'applicazione legittimo e ricevere i token per l'applicazione legittima.Neither iOS nor Android enforces unique identifiers that are valid only for a given application, so malicious applications may "spoof" a legitimate application's identifier and receive the tokens meant for the legitimate application. Per garantire sempre la comunicazione con l'applicazione corretta in fase di esecuzione, chiediamo agli sviluppatori di assicurare un URI di reindirizzamento personalizzato al momento della registrazione dell'applicazione con Microsoft.To ensure we are always communicating with the right application at runtime, we ask the developer to provide a custom redirectURI when registering their application with Microsoft. Le modalità di creazione dell'URI di reindirizzamento da parte degli sviluppatori vengono trattate in dettaglio di seguito.How developers should craft this redirect URI is discussed in detail below. Questo URI di reindirizzamento personalizzato contiene l'identificazione personale del certificato dell'applicazione e Google Play Store ne garantisce l'univocità per l'applicazione.This custom redirectURI contains the certificate thumbprint of the application and is ensured to be unique to the application by the Google Play Store. Quando un'applicazione chiama il broker, questo richiede al sistema operativo Android per fornire l'identificazione personale del certificato che ha chiamato il broker.When an application calls the broker, the broker asks the Android operating system to provide it with the certificate thumbprint that called the broker. Il broker offre questa identificazione personale del certificato a Microsoft nella chiamata al sistema di identità.The broker provides this certificate thumbprint to Microsoft in the call to our identity system. Se l'identificazione personale del certificato dell'applicazione non corrisponde all'identificazione personale del certificato offerto dallo sviluppatore durante la registrazione, verrà negato l'accesso ai token per la risorsa richiesti dall'applicazione.If the certificate thumbprint of the application does not match the certificate thumbprint provided to us by the developer during registration, we will deny access to the tokens for the resource the application is requesting. Tale controllo garantisce che solo l'applicazione registrata dallo sviluppatore riceva i token.This check ensures that only the application registered by the developer receives tokens.

Lo sviluppatore può scegliere se Microsoft Identity SDK deve chiamare il broker o usare il flusso non assistito dal broker.The developer has the choice of if the Microsoft Identity SDK calls the broker or uses the non-broker assisted flow. Se lo sviluppatore decide di non usare il flusso assistito dal broker, rinuncia al vantaggio dell'uso delle credenziali SSO che l'utente potrebbe avere già aggiunto nel dispositivo e impedisce di usare l'applicazione con le funzionalità aziendali offerte da Microsoft, ad esempio l'Accesso condizionale, le funzionalità di gestione di Intune e l'autenticazione basata su certificati.However if the developer chooses not to use the broker-assisted flow they lose the benefit of using SSO credentials that the user may have already added on the device and prevents their application from being used with business features Microsoft provides its customers such as Conditional Access, Intune Management capabilities, and certificate-based authentication.

Questi tipi di accessi offrono i seguenti vantaggi:These logins have the following benefits:

  • L'utente usufruisce del Single Sign-On per tutte le proprie applicazioni, indipendentemente dal fornitore.User experiences SSO across all their applications no matter the vendor.
  • L'applicazione può usare funzionalità aziendali più avanzate, ad esempio l'Accesso condizionale o la suite di prodotti InTune.Your application can use more advanced business features such as Conditional Access or use the InTune suite of products.
  • L'applicazione può supportare l'autenticazione basata su certificati per gli utenti aziendali.Your application can support certificate-based authentication for business users.
  • Un'esperienza di accesso molto più sicura dato che l'identità dell'applicazione e l'utente vengono verificati dall'applicazione broker con algoritmi di sicurezza aggiuntivi e la crittografia.Much more secure sign-in experience as the identity of the application and the user are verified by the broker application with additional security algorithms and encryption.

Questi tipi di accessi presentano i seguenti svantaggi:These logins have the following drawbacks:

  • Nel sistema iOS l'utente viene trasferito dall'esperienza dell'applicazione durante la selezione delle credenziali.In iOS the user is transitioned out of your application's experience while credentials are chosen.
  • Perdita della possibilità di gestire l'esperienza di accesso per i clienti nell'applicazione.Loss of the ability to manage the login experience for your customers within your application.

Di seguito viene rappresentato il funzionamento degli SDK di Microsoft Identity con le applicazioni broker per abilitare l'SSO:Here is a representation of how the Microsoft Identity SDKs work with the broker applications to enable SSO:

+------------+ +------------+   +-------------+
|            | |            |   |             |
|   App 1    | |   App 2    |   |   Someone   |
|            | |            |   |    Else's   |
|            | |            |   |     App     |
+------------+ +------------+   +-------------+
|  ADAL SDK  | |  ADAL SDK  |   |  ADAL SDK   |
+-----+------+-+-----+------+-  +-------+-----+
      |              |                  |
      |       +------v------+           |
      |       |             |           |
      |       | Microsoft   |           |
      +-------> Broker      |^----------+
              | Application
              |             |
              +-------------+
              |             |
              |   Broker    |
              |   Storage   |
              |             |
              +-------------+

Sulla base di queste informazioni di base dovrebbe essere possibile comprendere meglio e implementare l'SSO all'interno dell'applicazione con la piattaforma e gli SDK di Microsoft Identity.Armed with this background information you should be able to better understand and implement SSO within your application using the Microsoft Identity platform and SDKs.

Abilitazione di SSO tra app tramite ADALEnabling cross-app SSO using ADAL

In questo esempio si usa l'SDK ADAL Android per:Here we use the ADAL Android SDK to:

  • Attivare SSO non assistito da broker per la suite di appTurn on non-broker assisted SSO for your suite of apps
  • Attivare il supporto per SSO assistito da brokerTurn on support for broker-assisted SSO

Attivazione dell'SSO per l'SSO non assistito da brokerTurning on SSO for non-broker assisted SSO

Per l'SSO non assistito da broker tra applicazioni, gli SDK di Microsoft Identity risolvono automaticamente gran parte delle complessità dell'SSO,For non-broker assisted SSO across applications the Microsoft Identity SDKs manage much of the complexity of SSO for you. tra cui la ricerca dell'utente corretto nella cache e la gestione di un elenco di utenti connessi di cui è possibile effettuare una query.This includes finding the right user in the cache and maintaining a list of logged in users for you to query.

Per abilitare l'SSO tra le applicazioni di cui si è proprietari, eseguire le operazioni seguenti:To enable SSO across applications you own you need to do the following:

  1. Verificare che tutte le applicazioni usino lo stesso ID client o ID applicazione.Ensure all your applications user the same Client ID or Application ID.
  2. Verificare che tutte le applicazioni abbiano lo stesso set di SharedUserID.Ensure all your applications have the same SharedUserID set.
  3. Verificare che tutte le applicazioni condividano lo stesso certificato di firma da Google Play Store per condividere l'archiviazione.Ensure that all of your applications share the same signing certificate from the Google Play store so that you can share storage.

Passaggio 1: Utilizzo dello stesso ID client / ID applicazione per tutte le applicazioni della suite di applicazioniStep 1: Using the same Client ID / Application ID for all the applications in your suite of apps

Per comunicare alla piattaforma Microsoft Identity che è consentita la condivisione dei token tra le applicazioni, ciascuna delle applicazioni dovrà condividere lo stesso ID client o ID applicazione.In order for the Microsoft Identity platform to know that it's allowed to share tokens across your applications, each of your applications will need to share the same Client ID or Application ID. Si tratta dell'identificatore univoco fornito al momento della registrazione della prima applicazione nel portale.This is the unique identifier that was provided to you when you registered your first application in the portal.

Ci si potrebbe chiedere come si fa a identificare le varie applicazioni nel servizio di gestione delle identità Microsoft se tutte utilizzano lo stesso ID applicazione.You may be wondering how you will identify different apps to the Microsoft Identity service if it uses the same Application ID. La risposta sono gli URI di reindirizzamento.The answer is with the Redirect URIs. Ogni applicazione può avere più URI di reindirizzamento registrati nel portale di caricamento.Each application can have multiple Redirect URIs registered in the onboarding portal. Ogni app della suite avrà un URI di reindirizzamento diverso.Each app in your suite will have a different redirect URI. La situazione potrebbe essere simile alla seguente:An example of how this looks is below:

URI di reindirizzamento dell'app 1: msauth://com.example.userapp/IcB5PxIyvbLkbFVtBI%2FitkW%2Fejk%3DApp1 Redirect URI: msauth://com.example.userapp/IcB5PxIyvbLkbFVtBI%2FitkW%2Fejk%3D

URI di reindirizzamento dell'app 2: msauth://com.example.userapp1/KmB7PxIytyLkbGHuI%2UitkW%2Fejk%4EApp2 Redirect URI: msauth://com.example.userapp1/KmB7PxIytyLkbGHuI%2UitkW%2Fejk%4E

URI di reindirizzamento dell'app 3: msauth://com.example.userapp2/Pt85PxIyvbLkbKUtBI%2SitkW%2Fejk%9FApp3 Redirect URI: msauth://com.example.userapp2/Pt85PxIyvbLkbKUtBI%2SitkW%2Fejk%9F

........

Gli URI vengono nidificati sotto lo stesso ID client / ID applicazione e cercati in base all'URI di reindirizzamento restituito nella configurazione dell'SDK.These are nested under the same client ID / application ID and looked up based on the redirect URI you return to us in your SDK configuration.

+-------------------+
|                   |
|  Client ID        |
+---------+---------+
          |
          |           +-----------------------------------+
          |           |  App 1 Redirect URI               |
          +----------^+                                   |
          |           +-----------------------------------+
          |
          |           +-----------------------------------+
          +----------^+  App 2 Redirect URI               |
          |           |                                   |
          |           +-----------------------------------+
          |
          +----------^+-----------------------------------+
                      |  App 3 Redirect URI               |
                      |                                   |
                      +-----------------------------------+

Il formato degli URI di reindirizzamento viene illustrato di seguito. È possibile utilizzare qualsiasi URI di reindirizzamento ad eccezione del caso in cui si desideri supportare il broker, nel qual caso gli URI di reindirizzamento devono essere simili ai precedentiNote that the format of these Redirect URIs are explained below. You may use any Redirect URI unless you wish to support the broker, in which case they must look something like the above

Passaggio 2: Configurazione dell'archiviazione condivisa in AndroidStep 2: Configuring shared storage in Android

L'impostazione di SharedUserID esula dal contesto di questo documento, ma per maggiori informazioni si può leggere la documentazione di Google Android su Manifest.Setting the SharedUserID is beyond the scope of this document but can be learned by reading the Google Android documentation on the Manifest. È importante decidere il nome di sharedUserID e usarlo in tutte le applicazioni.What is important is that you decide what you want your sharedUserID will be called and use that across all your applications.

Dopo aver creato l'attributo SharedUserID in tutte le applicazioni, si può usare SSO.Once you have the SharedUserID in all your applications you are ready to use SSO.

Avviso

Quando si condivide una risorsa di archiviazione tra le applicazioni, qualsiasi applicazione può eliminare utenti o peggio ancora eliminare tutti i token dell'applicazione.When you share storage across your applications any application can delete users, or worse delete all the tokens across your application. Questo può essere un problema grave se sono presenti applicazioni che usano i token per svolgere operazioni in background.This is particularly disastrous if you have applications that rely on the tokens to do background work. La condivisione della risorsa di archiviazione implica che è necessario prestare grande attenzione durante tutte le operazioni di eliminazione tramite gli SDK di Microsoft Identity.Sharing storage means that you must be very careful in any and all remove operations through the Microsoft Identity SDKs.

L'operazione è terminata.That's it! L'SDK di Microsoft Identity condividerà le credenziali tra tutte le applicazioni.The Microsoft Identity SDK will now share credentials across all your applications. Anche l'elenco degli utenti verrà condiviso tra le istanze dell'applicazione.The user list will also be shared across application instances.

Attivazione di SSO per SSO assistito da brokerTurning on SSO for broker assisted SSO

La possibilità per un'applicazione di usare qualsiasi broker installato nel dispositivo è disattivata per impostazione predefinita.The ability for an application to use any broker that is installed on the device is turned off by default. Per usare l'applicazione con il broker è necessario apportare alcune modifiche alla configurazione e aggiungere una parte di codice all'applicazione.In order to use your application with the broker you must do some additional configuration and add some code to your application.

Ecco i passaggi da seguire:The steps to follow are:

  1. Abilitare la modalità broker nella chiamata del codice dell'applicazione dell'SDK MSEnable broker mode in your application code's call to the MS SDK
  2. Definire un nuovo URI di reindirizzamento e indicarlo sia all'app che alla registrazione dell'appEstablish a new redirect URI and provide that to both the app and your app registration
  3. Impostazione delle autorizzazioni corrette nel manifesto AndroidSetting up the correct permissions in the Android manifest

Passaggio 1: Abilitare la modalità broker nell'applicazioneStep 1: Enable broker mode in your application

La capacità dell'applicazione di usare il broker è attivata quando si creano le "impostazioni" o la configurazione iniziale dell'istanza di Authentication.The ability for your application to use the broker is turned on when you create the "settings" or initial setup of your Authentication instance. A tal fine, impostare il tipo ApplicationSettings nel codice:You do this by setting your ApplicationSettings type in your code:

AuthenticationSettings.Instance.setUseBroker(true);

Passaggio 2: Creare un nuovo URI di reindirizzamento con lo schema dell'URLStep 2: Establish a new redirect URI with your URL Scheme

Per fare in modo che i token delle credenziali vengano sempre restituiti all'applicazione corretta, è necessario assicurarsi che il richiamo dell'applicazione avvenga in un modo verificabile dal sistema operativo Android.In order to ensure that we always return the credential tokens to the correct application, we need to make sure we call back to your application in a way that the Android operating system can verify. Il sistema operativo Android utilizza in Google Play Store l'hash del certificato,The Android operating system uses the hash of the certificate in the Google Play store. che non può essere contraffatto da un'applicazione non autorizzata.This cannot be spoofed by a rogue application. Di conseguenza, l'hash del certificato viene usato insieme all'URI dell'applicazione broker per garantire che i token vengano restituiti all'applicazione corretta.Therefore, we leverage this along with the URI of our broker application to ensure that the tokens are returned to the correct application. È necessario definire questo URI di reindirizzamento univoco nell'applicazione e impostarlo come URI di reindirizzamento nel portale per gli sviluppatori.We require you to establish this unique redirect URI both in your application and set as a Redirect URI in our developer portal.

L'URI di reindirizzamento deve essere nel formato corretto:Your redirect URI must be in the proper form of:

msauth://packagename/Base64UrlencodedSignature

Ad esempio: msauth://com.example.userapp/IcB5PxIyvbLkbFVtBI%2FitkW%2Fejk%3Dex: msauth://com.example.userapp/IcB5PxIyvbLkbFVtBI%2FitkW%2Fejk%3D

L'URI di reindirizzamento deve essere specificato nella registrazione dell'app tramite il portale di Azure.This Redirect URI needs to be specified in your app registration using the Azure portal. Per altre informazioni sulla registrazione di app Azure AD, vedere Integrazione con Azure Active Directory.For more information on Azure AD app registration, see Integrating with Azure Active Directory.

Passaggio 3: Impostare le autorizzazioni corrette all'interno dell'applicazioneStep 3: Set up the correct permissions in your application

L'applicazione broker in Android usa la funzionalità AccountManager del sistema operativo Android per gestire le credenziali nelle applicazioni.Our broker application in Android uses the Accounts Manager feature of the Android OS to manage credentials across applications. Per utilizzare il broker in Android, il manifesto dell'app deve disporre delle autorizzazioni per usare gli account di AccountManager.In order to use the broker in Android your app manifest must have permissions to use AccountManager accounts. Questo argomento viene discusso in modo dettagliato nella documentazione di Google relativa ad AccountManager quiThis is discussed in detail in the Google documentation for Account Manager here

In particolare, le autorizzazioni sono:In particular, these permissions are:

GET_ACCOUNTS
USE_CREDENTIALS
MANAGE_ACCOUNTS

L'SSO è stato configurato!You've configured SSO!

Ora Microsoft Identity SDK condividerà automaticamente le credenziali tra le applicazioni e richiamerà il broker, se presente nel dispositivo.Now the Microsoft Identity SDK will automatically both share credentials across your applications and invoke the broker if it's present on their device.