Compartilhar via


Início rápido: conectando a um provedor de identidade online (HTML)

[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente]

Este tópico mostrará a você como conectar seu aplicativo da Windows Store e um provedor de identidade online que use protocolos de autenticação e autorização da Internet como OpenID ou OAuth

Os aplicativos da Windows Store usam o agente de autenticação da Web para se conectar a provedores de identidade online. Um aplicativo chama o método AuthenticateAsync que envia uma solicitação ao provedor de identidade online e obtém um token de acesso que descreve os recursos do provedor aos quais o aplicativo tem acesso. Para obter o exemplo completo, veja Exemplo de agente de autenticação da Web. Para saber mais sobre o agente de autenticação da Web, consulte Agente de autenticação da Web. Para obter a documentação de referência, veja Windows.Security.Authentication.Web

Quando você terminar com este assunto, confira o seguinte:

Pré-requisitos

  • Você deve ter familiaridade com JavaScript.
  • Você deve estar familiarizado com os requisitos de autenticação do seu provedor de identidade online.

Registrar o seu aplicativo com o seu provedor online

Você deve registrar seu aplicativo no provedor de identidade online ao qual deseja se conectar. Consulte o provedor de identidade para saber como registrar seu aplicativo. Após o registro, o provedor online costuma fornecer uma ID para o seu aplicativo.

Criar o URI de solicitação de autenticação

O URI de solicitação é composto pelo endereço para onde você envia a solicitação de autenticação para o seu provedor de identidade online junto com outras informações necessárias, como ID ou chave secreta do aplicativo, um URI de redirecionamento para o qual o usuário é enviado após concluir a autenticação e o tipo de resposta esperado. Seu provedor deverá informar quais são os parâmetros necessários.

O URI de solicitação é enviado como o parâmetro requestUri do método authenticateAsync. Ele deve ser um endereço seguro (deve começar com https://)

O exemplo a seguir mostra como criar o URI de solicitação.


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

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

Conectar ao provedor online

Chame o método authenticateAsync para se conectar ao provedor de identidade online e obter um token de acesso. O método transmite o URI construído na etapa anterior como o parâmetro requestUri e um URI ao qual você deseja que o usuário seja redirecionado como o parâmetro callbackUri.

O exemplo a seguir mostra como se conectar a um provedor de identidade 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; 
            }); 

Conectando-se com logon único (SSO)

Por padrão, o agente de autenticação da Web não permite cookies persistentes. Por isso, mesmo se o usuário do aplicativo indicar que deseja permanecer conectado (por exemplo, marcando uma caixa de seleção na caixa de diálogo de login do provedor), ele terá que efetuar login cada vez que quiser acessar os recursos desse provedor. Para efetuar login com SSO, o provedor de identidade online deve ter o modo SSO habilitado para o agente de autenticação da Web e seu aplicativo deve chamar a sobrecarga de authenticateAsync que não transmite um parâmetro callbackUri.

Para dar suporte ao modo SSO, o provedor online deve permitir que você registre um URI de redirecionamento na forma ms-app://appSID, onde appSID é o SID do seu aplicativo. Você pode localizar o SID do seu aplicativo na página do desenvolvedor da Windows Store do seu aplicativo ou chamando o método getCurrentApplicationCallbackUri.

O exemplo a seguir mostra como se conectar a um provedor de identidade online com 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"); 
            });

Pré-visualize o estado do seu aplicativo autenticado no Blend

Se você estiver usando o authenitcateUserAsync para autenticar seu aplicativo em tempo de execução, poderá usar as mesmas credenciais para acessar o estado autenticado de seu aplicativo no Blend para Microsoft Visual Studio 2013. Isso significa que você pode abrir uma versão autenticada do seu aplicativo, fazer alterações na aparência e depois pré-visualizar as alterações que você acabou de fazer, tudo sem sair do Blend.

  1. No Blend, na categoria Tempo de Design no painel Dispositivo, selecione Autenticação.Painel Dispositivo no Blend
  2. Pressione F5 para compilar e executar seu aplicativo.
  3. Use as suas credenciais para entrar em seu aplicativo.
  4. Retorne ao Blend e recarregue seu aplicativo.
  5. Retorne ao aplicativo implantado e pressione Alt+F4 para fechá-lo. Observação  Apenas uma instância da identidade de pacote do aplicativo pode ser executada ao mesmo tempo. Como o modo de exibição autenticado do aplicativo no Blend usa a mesma identidade de pacote que a versão implantada do seu aplicativo, o seu aplicativo não poderá ser executado em segundo plano enquanto também estiver sendo executado no Blend.  
  6. Retorne ao Blend para continuar seu trabalho.

Resumo

Neste tópico, nós mostramos como se conectar a um provedor de identidade online, com e sem o modo SSO habilitado.

Tópicos relacionados

Desenvolvendo aplicativos da Windows Store

Exemplo de agente de autenticação da Web

Agente de autenticação da Web

Windows.Security.Authentication.Web