Guida introduttiva: Connessione a un provider di identità online (HTML)

[ Questo articolo è rivolto agli sviluppatori per Windows 8.x e Windows Phone 8.x che realizzano app di Windows Runtime. Gli sviluppatori che usano Windows 10 possono vedere Documentazione aggiornata ]

Questo argomento ti mostrerà come connettere la tua app di Windows Store a un provider di identità online che usa l'autenticazione Internet e protocolli di autorizzazione come OpenID o OAuth.

Le app di Windows Store usano un gestore di autenticazioni Web per connettersi ai provider di identità online. Un'app chiama il metodo AuthenticateAsync, che invia una richiesta al provider di identità online e ottiene un token di accesso che descrive le risorse del provider a cui l'app ha accesso. Per un esempio completo, vedi l'esempio di gestore di autenticazioni Web. Per altre informazioni sul gestore di autenticazioni Web, vedi Gestore di autenticazioni Web. Per una documentazione di riferimento, vedi Windows.Security.Authentication.Web.

Dopo aver letto questo argomento, vedi gli argomenti seguenti:

Prerequisiti

  • Occorre avere già familiarità con JavaScript.
  • Devi conoscere anche i requisiti di autenticazione del tuo provider di identità online.

Registrare l'app con il provider online

Devi registrare la tua app con il provider di identità online a cui vuoi connetterti. Puoi trovare informazioni su come registrare l'app contattando il provider di identità. Dopo la registrazione il provider online ti fornirà un ID per la tua app.

Creare l'URI di richiesta di autenticazione

L'URI di richiesta è costituito dall'indirizzo a cui devi inviare la richiesta di autenticazione al provider online seguito da altre informazioni necessarie, come una chiave privata o un ID dell'app, un URI di reindirizzamento a cui l'utente viene indirizzato dopo il completamento dell'autenticazione e il tipo di risposta previsto. Puoi chiedere al tuo provider quali sono i parametri obbligatori.

L'URI di richiesta viene inviato come parametro requestUri del metodo authenticateAsync. Deve essere un indirizzo sicuro, ossia iniziare con https://.

L'esempio seguente mostra come creare l'URI di richiesta.


        var startURL = "https://<providerendpoint>?client_id=<clientid>&scope=<scopes>&response_type=token"; 

        var startURI = new Windows.Foundation.Uri(startURL);

Connettersi al provider online

Devi chiamare il metodo authenticateAsync per connetterti al provider di identità online e ottenere un token di accesso. Il metodo accetta l'URI creato al passaggio precedente come parametro requestUri e un URI a cui vuoi reindirizzare l'utente come parametro callbackUri.

L'esempio seguente mostra come eseguire la connessione a un provider di identità online.

authzInProgress = true; 
        Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( 
            Windows.Security.Authentication.Web.WebAuthenticationOptions.none, startURI,endURI) 
            .done(function (result) { 
                document.getElementById("AnyServiceReturnedToken").value = result.responseData; 
                document.getElementById("AnyServiceDebugArea").value += "Status returned by WebAuth broker: " + result.responseStatus + "\r\n"; 
                if (result.responseStatus === Windows.Security.Authentication.Web.WebAuthenticationStatus.errorHttp) { 
                    document.getElementById("AnyServiceDebugArea").value += "Error returned: " + result.responseErrorDetail + "\r\n"; 
                } 
                authzInProgress = false; 
            }, function (err) { 
                WinJS.log("Error returned by WebAuth broker: " + err, "Web Authentication SDK Sample", "error");         
                document.getElementById("AnyServiceDebugArea").value += " Error Message: " + err.message + "\r\n"; 
                authzInProgress = false; 
            }); 

Eseguire la connessione con Single Sign-On (SSO)

Per impostazione predefinita, il gestore di autenticazioni Web non permette la persistenza dei cookie. Per questo motivo, anche se l'utente dell'app indica di voler rimanere connesso (ad esempio selezionando una casella di controllo nella finestra di accesso del provider), dovrà connettersi ogni volta che vuole accedere alle risorse di quel provider. Per effettuare l'accesso con SSO, il provider di identità online deve avere abilitato SSO per il gestore di autenticazioni Web e la tua app deve chiamare l'overload del metodo authenticateAsync che non accetta un parametro callbackUri.

Per supportare SSO, il provider online deve consentirti di registrare un URI di reindirizzamento nel formato ms-app://appSID, dove appSID è il SID dell'app. Puoi recuperare il SID dell'app dalla pagina per sviluppatori Windows Store relativa alla tua app oppure chiamando il metodo getCurrentApplicationCallbackUri.

L'esempio seguente mostra come eseguire la connessione a un provider di identità online con SSO.

var redirectURL = Windows.Security.Authentication.Web.WebAuthenticationBroker.getCurrentApplicationCallbackUri().absoluteUri;
        var startURL = "https://<providerendpoint>?client_id=<clientid>&redirect_uri=" + encodeURIComponent(redirectURL) + "&scope=<scopes>&response_type=token"; 

        var startURI = new Windows.Foundation.Uri(startURL); 

        Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( 
            Windows.Security.Authentication.Web.WebAuthenticationOptions.none, startURI) 
            .done(function (result) { 
                if (result.responseStatus === Windows.Security.Authentication.Web.WebAuthenticationStatus.errorHttp) { 
                    document.getElementById("FacebookDebugArea").value += "Error returned: " + result.responseErrorDetail + "\r\n"; 
                } 

                // Parse out the OAuth token from result.responseData 

            }, function (err) { 
                WinJS.log("Error returned by WebAuth broker: " + err, "Web Authentication SDK Sample", "error"); 
            });

Visualizzare un'anteprima dello stato autenticato dell'app in Blend

Se usi authenitcateUserAsync per autenticare la tua app durante il runtime, puoi usare le stesse credenziali per accedere allo stato autenticato dell'app in Blend per Microsoft Visual Studio 2013. Questo significa che puoi aprire una versione autenticata dell'app, apportare modifiche all'aspetto e quindi visualizzare un'anteprima delle modifiche apportate, tutto senza uscire da Blend.

  1. Nella categoria Fase di progettazione nel pannello Dispositivo in Blend seleziona Autenticazione.Pannello Dispositivo in Blend
  2. Premi F5 per compilare ed eseguire l'app.
  3. Usa le tue credenziali per accedere all'app.
  4. Torna a Blend e ricarica l'app.
  5. Torna all'app distribuita e premi ALT+F4 per chiuderla. Nota  È possibile eseguire solo un'istanza dell'identità del pacchetto dell'app per volta. Poiché la visualizzazione autenticata dell'app in Blend usa la stessa identità del pacchetto usata dalla versione distribuita dell'app, non è possibile eseguire la tua app in background mentre è in esecuzione anche in Blend.  
  6. Torna a Blend per continuare a lavorare.

In questo argomento ti abbiamo mostrato come connetterti a un provider di identità online con o senza SSO abilitato.

Argomenti correlati

Sviluppo di app di Windows Store

Esempio gestore di autenticazioni Web

Gestore di autenticazioni Web

Windows.Security.Authentication.Web