Habilite o SSO entre aplicativos no Android usando o MSAL
O logon único (SSO) permite que os usuários insiram suas credenciais apenas uma vez e que essas credenciais funcionem automaticamente entre aplicativos. Melhora a experiência do utilizador e melhora a segurança, reduzindo o número de palavras-passe que os utilizadores precisam de gerir, diminuindo o risco de fadiga da palavra-passe e vulnerabilidades associadas.
A plataforma de identidade da Microsoft e a Biblioteca de Autenticação da Microsoft (MSAL) ajudam você a habilitar o SSO em seu conjunto de aplicativos. Ao habilitar o recurso do Broker, você pode estender o SSO em todo o dispositivo.
Neste tutorial, você aprenderá como configurar os SDKs usados pelo seu aplicativo para fornecer SSO aos seus clientes.
Pré-requisitos
Este procedimento pressupõe que você saiba como:
- Provisione seu aplicativo. Para obter mais informações, consulte as instruções para criar um aplicativo no tutorial do Android
- Integre a sua aplicação com o MSAL para Android
Métodos para SSO
Há duas maneiras de os aplicativos que usam o MSAL para Android alcançarem o SSO:
Através de uma aplicação de corretagem
Através do navegador do sistema
É recomendável usar um aplicativo de corretagem para benefícios como SSO em todo o dispositivo, gerenciamento de contas e acesso condicional. No entanto, ele exige que seus usuários baixem aplicativos adicionais.
SSO através de autenticação intermediada
Recomendamos que você use um dos agentes de autenticação da Microsoft para participar do SSO em todo o dispositivo e atender às políticas organizacionais de Acesso Condicional. A integração com um corretor oferece os seguintes benefícios:
- SSO do dispositivo
- Acesso condicional para:
- Proteção de Aplicações do Intune
- Registro de dispositivo (ingresso no local de trabalho)
- Gestão de Dispositivos Móveis
- Gerenciamento de conta em todo o dispositivo
- via Android AccountManager & Configurações da conta
- "Conta de trabalho" - tipo de conta personalizada
No Android, o Agente de Autenticação da Microsoft é um componente incluído no Microsoft Authenticator, no Portal da Empresa do Intune e no Link to Windows apps.
O diagrama a seguir ilustra a relação entre seu aplicativo, o MSAL e os agentes de autenticação da Microsoft.
Instalando aplicativos que hospedam um broker
Os aplicativos de hospedagem de corretores podem ser instalados pelo proprietário do dispositivo a partir de sua loja de aplicativos (normalmente Google Play Store) a qualquer momento. No entanto, algumas APIs (recursos) são protegidas por Políticas de Acesso Condicional que exigem que os dispositivos sejam:
- Registado (local de trabalho associado) e/ou
- Inscritos na Gestão de Dispositivos ou
- Inscrito na Proteção de Aplicações do Intune
Se o dispositivo com os requisitos acima mencionados ainda não tiver um aplicativo de corretor instalado, a MSAL instruirá o usuário a instalar um assim que o aplicativo tentar obter um token interativamente. O aplicativo conduzirá o usuário pelas etapas para tornar o dispositivo compatível com a política necessária. Se não houver nenhum requisito de política ou se o usuário estiver entrando com a conta da Microsoft, a instalação do aplicativo Broker não será necessária.
Efeitos da instalação e desinstalação de um broker
Quando um broker é instalado
Quando um broker é instalado em um dispositivo, todas as solicitações de token interativo subsequentes (chamadas para acquireToken()
) são tratadas pelo broker em vez de localmente pela MSAL. Qualquer estado de SSO anteriormente disponível para a MSAL não está disponível para o corretor. Como resultado, o usuário precisa se autenticar novamente ou selecionar uma conta na lista existente de contas conhecidas pelo dispositivo.
A instalação de um broker não exige que o usuário entre novamente. Somente quando o usuário precisa resolver uma MsalUiRequiredException
vontade a próxima solicitação vai para o corretor. MsalUiRequiredException
pode ser jogado por vários motivos, e precisa ser resolvido interativamente. Por exemplo:
- O utilizador alterou a palavra-passe associada à sua conta.
- A conta do usuário não atende mais a uma política de Acesso Condicional.
- O utilizador revogou o seu consentimento para que a aplicação fosse associada à sua conta.
Vários corretores - Se vários corretores estiverem instalados em um dispositivo, a MSAL identificará o corretor ativo por conta própria para concluir o processo de autenticação
Quando um broker é desinstalado
Se houver apenas um aplicativo de hospedagem de corretor instalado e ele for removido, o usuário precisará entrar novamente. A desinstalação do broker ativo remove a conta e os tokens associados do dispositivo.
Se o Microsoft Authenticator, o Portal da Empresa do Intune ou o Link to Windows forem desinstalados, o usuário poderá ser solicitado a entrar novamente.
Integração com um corretor
Gerar um URI de redirecionamento para um broker
Gorjeta
As etapas neste artigo podem variar ligeiramente com base no portal a partir do qual você começou.
Você deve registrar um URI de redirecionamento que seja compatível com o corretor. O URI de redirecionamento para o broker deve incluir o nome do pacote do seu aplicativo e a representação codificada em Base64 da assinatura do seu aplicativo.
O formato do URI de redirecionamento é: msauth://<yourpackagename>/<base64urlencodedsignature>
Você pode usar keytool para gerar um hash de assinatura codificado em Base64 usando as chaves de assinatura do seu aplicativo e, em seguida, gerar seu 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 o keytool, utilize o portal do Azure para gerar o URI de redirecionamento:
- Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos 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é Registros do aplicativo Identity>Applications>.
- Selecione seu aplicativo e, em seguida, selecione Autenticação>Adicionar uma plataforma>Android.
- No painel Configurar a aplicação Android aberto, introduza o Hash de assinatura que gerou anteriormente e o Nome do pacote.
- Selecione o botão Configurar .
O URI de redirecionamento é gerado para você e exibido no campo URI de redirecionamento do painel de configuração do Android.
Para obter mais informações sobre como assinar seu aplicativo, consulte Assinar seu aplicativo no Guia do Usuário do Android Studio.
Configurar o MSAL para usar um broker
Para usar um broker em seu aplicativo, você deve atestar que configurou o redirecionamento do broker. Por exemplo, inclua o URI de redirecionamento habilitado para o broker e indique que você o registrou, incluindo as seguintes configurações no arquivo de configuração do MSAL:
"redirect_uri" : "<yourbrokerredirecturi>",
"broker_redirect_uri_registered": true
Exceções relacionadas ao corretor
A MSAL comunica com o corretor de duas formas:
- Serviço vinculado ao corretor
- Gestor de Conta Android
A MSAL primeiro usa o serviço vinculado ao broker porque chamar esse serviço não requer nenhuma permissão do Android. Se a ligação ao serviço associado falhar, a MSAL utiliza a API AccountManager do Android. A MSAL só o faz se a sua aplicação já tiver recebido a "READ_CONTACTS"
permissão.
Se você receber um com código "BROKER_BIND_FAILURE"
de MsalClientException
erro, então há duas opções:
- Peça ao usuário para desabilitar a otimização de energia para o aplicativo Microsoft Authenticator e o Portal da Empresa do Intune.
- Pedir ao usuário para conceder a
"READ_CONTACTS"
permissão
Verificar a integração do broker
Pode não estar imediatamente claro se a integração do broker está funcionando, mas você pode usar as seguintes etapas para verificar:
- No seu dispositivo Android, conclua uma solicitação usando o 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.
Você pode remover a conta das configurações se quiser repetir o teste.
SSO através do navegador do sistema
As aplicações Android têm a opção de utilizar o navegador do sistema ou os WEBVIEW
separadores personalizados do Chrome para a experiência do utilizador de autenticação. Se o aplicativo não estiver usando autenticação intermediada, ele precisará usar o navegador do sistema em vez da visualização web nativa para obter o SSO.
Agentes de autorização
Escolher uma estratégia específica para agentes de autorização é importante e representa funcionalidades adicionais que os aplicativos podem personalizar. Recomendamos o uso de 'WEBVIEW'. Para saber mais sobre outros valores de confguração (consulte Compreender o arquivo de configuração MSAL do Android.
MSAL suporta autorização usando um WEBVIEW
, ou o navegador do sistema. A imagem abaixo mostra como fica usando o WEBVIEW
, ou o navegador do sistema com CustomTabs ou sem CustomTabs:
Implicações da SSO
Se o aplicativo usar uma WEBVIEW
estratégia sem se integrar com a autenticação intermediada em seu aplicativo, os usuários não terão uma experiência de logon único em todo o dispositivo ou entre aplicativos nativos e aplicativos Web.
Os aplicativos podem ser integrados com o MSAL para usar o BROWSER
para autorizar. Ao contrário do WEBVIEW, partilhe um jar de cookies com o browser do sistema predefinido, BROWSER
permitindo menos entradas com aplicações Web ou outras aplicações nativas que tenham sido integradas com separadores personalizados.
Se o aplicativo usa o MSAL com um agente como o Microsoft Authenticator, o Portal da Empresa do Intune ou o Link to Windows, os usuários podem ter experiência de SSO entre aplicativos se tiverem uma entrada ativa com um dos aplicativos.
Nota
MSAL com broker utiliza WebView e fornece Single Sign-On (SSO) para todos os aplicativos que consomem a biblioteca MSAL e participam da autenticação intermediada. O estado SSO do broker não é estendido a outros aplicativos que não usam MSAL.
Visualização da Web
Para usar o WebView no aplicativo, coloque a seguinte linha no JSON de configuração do aplicativo que é passado para o MSAL:
"authorization_user_agent" : "WEBVIEW"
Ao usar o aplicativo no WEBVIEW
, o usuário entra diretamente no aplicativo. Os tokens são mantidos dentro da sandbox do aplicativo e não estão disponíveis fora do jar de cookies do aplicativo. Como resultado, o usuário não pode ter experiência de SSO entre aplicativos, a menos que os aplicativos se integrem ao aplicativo Microsoft Authenticator, ao Portal da Empresa do Intune ou ao Link to Windows.
No entanto, WEBVIEW
fornece a capacidade de personalizar a aparência da interface do usuário de entrada. Consulte Android WebViews para saber mais sobre como fazer essa personalização.
Browser
Recomendamos o uso do WEBVIEW, embora forneçamos a opção de usar o navegador e uma estratégia de guias personalizadas . Você pode indicar explicitamente essa estratégia usando a seguinte configuração JSON no arquivo de configuração personalizado:
"authorization_user_agent" : "BROWSER"
Use essa abordagem para fornecer experiência de SSO por meio do navegador do dispositivo. A MSAL usa um jar de cookie compartilhado, que permite que outros aplicativos nativos ou aplicativos da Web alcancem SSO no dispositivo usando o cookie de sessão persistente definido pela MSAL.
Heurística de seleção do navegador
Como é impossível para a MSAL especificar o pacote exato do navegador a ser usado em cada uma das amplas gamas de telefones Android, a MSAL implementa uma heurística de seleção de navegador que tenta fornecer o melhor SSO entre dispositivos.
O MSAL recupera principalmente o navegador padrão do gerenciador de pacotes e verifica se ele está em uma lista testada de navegadores seguros. Caso contrário, a MSAL recorre ao uso do Webview em vez de iniciar outro navegador não padrão da lista segura. O navegador padrão é escolhido independentemente de suportar guias personalizadas. Se o navegador oferecer suporte a guias personalizadas, a MSAL iniciará a guia personalizada. As guias personalizadas têm uma aparência mais próxima de um aplicativo WebView
e permitem a personalização básica da interface do usuário. Consulte Separadores personalizados no Android para saber mais.
Se não houver pacotes de navegador no dispositivo, a MSAL usará o aplicativo WebView
. Se a configuração padrão do dispositivo não for alterada, o mesmo navegador deverá ser iniciado para cada entrada para garantir a experiência de SSO.
Navegadores testados
Os seguintes navegadores foram testados para ver se redirecionam corretamente para o "redirect_uri"
especificado no arquivo de configuração:
Dispositivo | Navegador integrado | Chrome | Opera | Microsoft Edge | UC Browser | Firefox |
---|---|---|---|---|---|---|
Nexo 4 (API 17) | passe | passe | não aplicável | não aplicável | não aplicável | não aplicável |
Samsung S7 (API 25) | Passe1 | passe | passe | passe | reprovado | passe |
Vivo (API 26) | passe | passe | passe | passe | passe | reprovado |
Pixel 2 (API 26) | passe | passe | passe | passe | reprovado | passe |
Oppo | passe | não aplicável2 | não aplicável | não aplicável | não aplicável | não aplicável |
OnePlus (API 25) | passe | passe | passe | passe | reprovado | passe |
Nexo (API 28) | passe | passe | passe | passe | reprovado | passe |
MI | passe | passe | passe | passe | reprovado | passe |
1 O navegador integrado da Samsung é o Samsung Internet.
2 O navegador padrão não pode ser alterado dentro da configuração do dispositivo Oppo.
Próximos passos
O modo de dispositivo compartilhado para dispositivos Android permite que você configure um dispositivo Android para que ele possa ser facilmente compartilhado por vários funcionários.
Para obter mais informações sobre aplicativos de corretagem, vá para as seguintes páginas: