Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O login único (SSO) permite aos utilizadores inserir as suas credenciais apenas uma vez e que essas credenciais funcionem automaticamente entre aplicações. Melhora a experiência do utilizador e melhora a segurança ao reduzir o número de palavras-passe que os utilizadores precisam de gerir, diminuindo o risco de fadiga de palavra-passe e vulnerabilidades associadas.
A plataforma de identidades da Microsoft e a Biblioteca de Autenticação da Microsoft (MSAL) ajudam-no a ativar o SSO em todo o seu conjunto de aplicações. Ao ativar a funcionalidade Broker, pode estender o SSO a todo o dispositivo.
Neste tutorial, aprende a configurar os Kits de Desenvolvimento de Software (SDKs) usados pela sua aplicação para fornecer SSO aos seus clientes.
Pré-requisitos
Este tutorial pressupõe que sabes como:
- Configure a sua aplicação. Para mais informações, consulte as instruções para criar uma aplicação no tutorial do Android
- Integre a sua aplicação com a MSAL para Android
Métodos para SSO
Existem duas formas para aplicações que usam MSAL para Android alcançarem SSO:
Através de uma aplicação broker
Através do navegador do sistema
Recomenda-se usar uma aplicação de corretor para benefícios como SSO a nível de dispositivo, gestão de contas e Acesso Condicional. No entanto, requer que os seus utilizadores descarreguem aplicações extra.
SSO através de autenticação intermediada
Recomendamos que utilize um dos brokers de autenticação da Microsoft para participar em SSO a nível de dispositivo e para cumprir as políticas organizacionais de Acesso Condicional. Integrar-se com um corretor oferece os seguintes benefícios:
- SSO do dispositivo
- Acesso Condicional para:
- Proteção de Aplicações do Intune
- Registo de Dispositivo (Entrada no Local de Trabalho)
- Gestão de Dispositivos Móveis
- Gestão de Contas a nível de dispositivo
- através do Android AccountManager & das definições da conta
- "Conta de Trabalho" - tipo de conta personalizada
No Android, o Microsoft Authentication Broker é um componente incluído no Microsoft Authenticator, no Intune Portal da Empresa e nas aplicações Link to Windows.
O diagrama seguinte ilustra a relação entre a sua aplicação, a MSAL e os brokers de autenticação da Microsoft.
Instalar aplicações que alojam um corretor
As aplicações que alojam corretores podem ser instaladas pelo proprietário do dispositivo a partir da sua loja de aplicações (tipicamente a Google Play Store) a qualquer momento. No entanto, algumas APIs (recursos) estão protegidas por Políticas de Acesso Condicional que exigem que os dispositivos sejam:
- Registado (associado ao local de trabalho) e/ou
- Inscrito em Gestão de Dispositivos ou
- Inscrito na Proteção da Aplicação Intune
Se o dispositivo com os requisitos acima mencionados ainda não tiver uma aplicação intermediária instalada, a MSAL instrui o utilizador a instalar uma assim que a aplicação tentar obter um token de forma interativa. A aplicação irá então guiar o utilizador pelos passos para tornar o dispositivo compatível com a política exigida. Se não houver necessidade de política, ou se o utilizador estiver a iniciar sessão com uma conta conta Microsoft, então a instalação da aplicação Broker não é obrigatória.
Efeitos de instalar e desinstalar um corretor
Quando um corretor é instalado
Quando um corretor é instalado num dispositivo, todos os pedidos interativos subsequentes de token (chamadas para acquireToken()) são tratados pelo corretor em vez de localmente pelo MSAL. Qualquer estado SSO previamente disponível para MSAL não está disponível para o corretor. Como resultado, o utilizador precisa de se autenticar novamente ou selecionar uma conta da lista existente de contas conhecidas pelo dispositivo.
Instalar um corretor não exige que o utilizador volte a iniciar sessão. Só quando o utilizador precisar de resolver um MsalUiRequiredException é que o próximo pedido será enviado ao broker.
MsalUiRequiredException pode ser lançado por várias razões e precisa de ser resolvido de forma interativa. Por exemplo:
- O utilizador alterou a palavra-passe associada à sua conta.
- A conta do utilizador já não cumpre uma política de Acesso Condicional.
- O utilizador revogou o seu consentimento para que a aplicação fosse associada à sua conta.
Vários mediadores - Se vários mediadores estiverem instalados num dispositivo, o MSAL identifica automaticamente o mediador ativo para concluir o processo de autenticação
Quando um corretor é desinstalado
Se só houver uma aplicação de alojamento de corretores instalada e esta for removida, então o utilizador tem de iniciar sessão novamente. Desinstalar o corretor ativo remove a conta e os tokens associados do dispositivo.
Se o Microsoft Authenticator, o Intune Portal da Empresa ou o Link to Windows forem desinstalados, o utilizador poderá ser solicitado a iniciar sessão novamente.
Integração com um corretor
Gerar um URI de redirecionamento para um corretor
Deve registar um URI de redirecionamento compatível com o corretor. O URI de redirecionamento para o corretor deve incluir o nome do pacote da sua aplicação e a representação codificada em Base64 da assinatura da sua aplicação.
O formato do URI de redirecionamento é: msauth://<yourpackagename>/<base64urlencodedsignature>
Podes usar o keytool para gerar um hash de assinatura codificado em Base64 usando as chaves de assinatura da tua app, e depois gerar o teu URI de redirecionamento usando esse hash.
Linux e macOS:
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Windows:
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
Depois de gerar um hash de assinatura com keytool, use o portal do Azure para gerar o URI de redirecionamento:
- Entre no centro de administração do Microsoft Entra como, no mínimo, um administrador de aplicações na nuvem.
- Se você tiver acesso a vários locatários, use o ícone
Configurações no menu superior para alternar para o locatário que contém o registro do aplicativo no menu Diretórios + assinaturas. - Navegue até Entra ID>Registros de Aplicativos.
- Selecione a sua aplicação e depois selecione Autenticação>Adicionar uma plataforma>Android.
- No painel Configurar a tua aplicação Android que abre, insere o hash de assinatura que gerou anteriormente e o nome do Pacote.
- Selecione o botão Configurar .
O URI de redirecionamento é gerado para si e é exibido no campo de URI de Redirecionamento do painel de configuração do Android.
Para mais informações sobre como assinar a sua aplicação, consulte Assinar a sua aplicação no Guia do Utilizador do Android Studio.
Configure a MSAL para usar um corretor
Para usar um mediador na sua aplicação, tem de confirmar que configurou o redirecionamento do mediador. Por exemplo, inclua tanto o URI de redirecionamento ativado pelo seu corretor — e indique que o registou — incluindo as seguintes definições no seu ficheiro de configuração MSAL:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Exceções relacionadas com corretores
A MSAL comunica com o corretor de duas formas:
- Serviço associado ao broker
- Android AccountManager
O MSAL utiliza primeiro o serviço associado ao broker porque invocar este serviço não requer quaisquer permissões do Android. Se a ligação ao serviço vinculado falhar, a MSAL utiliza a API Android AccountManager. A MSAL só o faz se a sua aplicação já tiver recebido a "READ_CONTACTS" autorização.
Se surgir um MsalClientException com o código de erro "BROKER_BIND_FAILURE", então existem duas opções:
- Peça ao utilizador para desativar a otimização de energia para a aplicação Microsoft Authenticator e para o Intune Portal da Empresa.
- Pede ao utilizador que conceda a
"READ_CONTACTS"permissão
Verificar a integração com o corretor
Pode não ser imediatamente claro que a integração com corretores está a funcionar, mas pode usar os seguintes passos para verificar:
- No seu dispositivo Android, preencha um pedido através do corretor.
- Nas definições do seu dispositivo Android, procure uma conta recém-criada correspondente à conta com a qual se autenticou. A conta deve ser do tipo Conta de trabalho.
Podes remover a conta das definições se quiseres repetir o teste.
SSO através do navegador do sistema
As aplicações Android têm a opção de utilizar o WEBVIEW, o navegador do sistema ou os separadores personalizados do Chrome para a experiência de autenticação do utilizador. Se a aplicação não estiver a usar autenticação intermediada, precisa de usar o navegador do sistema em vez da webview nativa para conseguir SSO.
Agentes de autorização
Escolher uma estratégia específica para agentes de autorização é importante e representa funcionalidades adicionais que as aplicações podem personalizar. Recomendamos o uso de 'WEBVIEW'. Para saber mais sobre outros valores de configuração (veja Compreender o ficheiro de configuração MSAL do Android.
O MSAL suporta autorização através de um WEBVIEW, ou do navegador do sistema. A imagem abaixo mostra como fica usando o WEBVIEW, ou o navegador do sistema com CustomTabs ou sem CustomTabs:
Implicações para a SSO
Se a aplicação usar uma WEBVIEW estratégia sem integrar a autenticação intermediária na sua aplicação, os utilizadores não terão uma experiência SSO em todo o dispositivo ou entre aplicações nativas e aplicações web.
As aplicações podem ser integradas com o MSAL para utilizar BROWSER para autorizar. Ao contrário do WEBVIEW, BROWSER partilha o armazenamento de cookies com o navegador predefinido do sistema, permitindo menos inícios de sessão em aplicações Web ou noutras aplicações nativas integradas com separadores personalizados.
Se a aplicação usar MSAL com um intermediário como o Microsoft Authenticator, Intune Portal da Empresa ou Link to Windows, então os utilizadores podem ter experiência SSO entre aplicações se tiverem um login ativo com uma das aplicações.
Note
O MSAL com broker utiliza WebView e fornece SSO para todas as aplicações que consomem a biblioteca MSAL e participam na autenticação intermediária. O estado SSO do broker não é estendido a outras aplicações que não usam MSAL.
Visualização Web
Para usar o WebView dentro da aplicação, coloque a seguinte linha na configuração JSON da aplicação que é passada para MSAL:
"authorization_user_agent" : "WEBVIEW"
Ao usar o WEBVIEW na aplicação, o utilizador inicia sessão diretamente na aplicação. Os tokens ficam guardados dentro do sandbox da aplicação e não estão disponíveis fora do frasco de bolachas da aplicação. Como resultado, o utilizador não pode ter experiência SSO entre aplicações a menos que estas se integrem com a aplicação Microsoft Authenticator, Intune Portal da Empresa ou Link to Windows.
No entanto, WEBVIEW oferece a capacidade de personalizar o aspeto e a sensação da interface de login. Consulte o Android WebViews para saber mais sobre como fazer esta personalização.
Browser
Recomendamos utilizar o WEBVIEW, embora ofereçamos a opção de usar o navegador e uma estratégia de custom tabs. Pode indicar explicitamente esta estratégia usando a seguinte configuração JSON no ficheiro de configuração personalizado:
"authorization_user_agent" : "BROWSER"
Use esta abordagem para proporcionar experiência SSO através do navegador do dispositivo. O MSAL utiliza um cookie jar partilhado, que permite que outras aplicações nativas ou aplicações web alcancem SSO no dispositivo usando o cookie de sessão persistente definido pelo MSAL.
Heurística de seleção de navegador
Como é impossível para a MSAL especificar exatamente qual o pacote de navegador a usar em cada um dos vários telemóveis Android, a MSAL implementa uma heurística de seleção de navegador que procura fornecer o melhor SSO entre dispositivos.
O MSAL recupera principalmente o navegador predefinido do gestor de pacotes e verifica se está numa lista testada de navegadores seguros. Caso contrário, o MSAL recorre ao uso do Webview em vez de lançar outro navegador não padrão a partir da lista segura. O navegador predefinido é escolhido independentemente de ter ou não suporte para separadores personalizados. Se o navegador suportar separadores personalizados, o MSAL abre o separador personalizado. Os separadores personalizados têm um aspeto mais semelhante ao de um WebView na aplicação e permitem alguma personalização básica da interface do utilizador.
Consulte Separadores Personalizados no Android para saber mais.
Se não houver pacotes de navegador no dispositivo, o MSAL utiliza a aplicação WebView. Se a definição padrão do dispositivo não for alterada, o mesmo navegador deve ser iniciado em cada login para garantir a experiência SSO.
Navegadores Testados
Os seguintes navegadores foram testados para verificar se redirecionam corretamente para o "redirect_uri" especificado no ficheiro de configuração:
| Dispositivo | Navegador Integrado | Cromado | Ópera | Microsoft Edge | UC Browser | Firefox |
|---|---|---|---|---|---|---|
| Nexus 4 (API 17) | passar | passar | não aplicável | não aplicável | não aplicável | não aplicável |
| Samsung S7 (API 25) | Passe1 | passar | passar | passar | falha | passar |
| Vivo (API 26) | passar | passar | passar | passar | passar | falha |
| Pixel 2 (API 26) | passar | passar | passar | passar | falha | passar |
| Oppo | passar | não aplicável2 | não aplicável | não aplicável | não aplicável | não aplicável |
| OnePlus (API 25) | passar | passar | passar | passar | falha | passar |
| Nexus (API 28) | passar | passar | passar | passar | falha | passar |
| MI | passar | passar | passar | passar | falha | passar |
1O navegador integrado da Samsung é o Samsung Internet.
2O navegador predefinido não pode ser alterado dentro das definições do dispositivo Oppo.
Passos seguintes
O modo de dispositivo partilhado para dispositivos Android permite configurar um dispositivo Android para que possa ser facilmente partilhado por vários colaboradores.
Para mais informações sobre candidaturas a corretores, consulte: