Solução de problemas do plug-in de extensão SSO do Microsoft Enterprise em dispositivos Apple

Este artigo fornece diretrizes de solução de problemas usadas pelos administradores para resolver problemas com a implantação e o uso do plug-in SSO do Enterprise. A extensão de SSO da Apple pode ser implantada no iOS/iPadOS e no macOS.

As organizações podem optar por implantar o SSO em seus dispositivos corporativos para fornecer uma experiência melhor aos usuários finais. Nas plataformas Apple, esse processo envolve a implementação do SSO (logon único) por meio de tokens de atualização principais. O SSO libera os usuários finais do excesso de prompts de autenticação.

A Microsoft implementou um plug-in criado com base na estrutura de SSO da Apple, que fornece autenticação intermediada para aplicativos integrados ao Microsoft Entra ID. Para obter mais informações, confira o artigo Plug-in SSO do Microsoft Enterprise para dispositivos Apple.

Tipos de extensão

A Apple dá suporte a dois tipos de extensões de SSO que fazem parte de sua estrutura: redirecionamento e credencial. O plug-in de SSO do Microsoft Enterprise foi implementado como um tipo de redirecionamento e é mais adequado para intermediar a autenticação para o Microsoft Entra ID. A tabela a seguir compara os dois tipos de extensões.

Tipo de extensão Mais indicado para Como ele funciona Principais diferenças
Redirecionar Métodos de autenticação modernos, como OpenID Connect, OAUTH2 e SAML (Microsoft Entra ID) O sistema operacional intercepta a solicitação de autenticação do aplicativo para as URLs do provedor de identidade definidas no perfil de configuração do MDM de extensão. As extensões de redirecionamento recebem: URLs, cabeçalhos e corpo. Solicitação de credenciais antes de solicitar dados. Uso de URLs no perfil de configuração do MDM.
Credencial Tipos de autenticação de desafio e resposta, como Kerberos (Active Directory Domain Services local) A solicitação é enviada do aplicativo para o servidor de autenticação (controlador de domínio do AD). As extensões de credencial são configuradas com HOSTS no perfil de configuração do MDM. Se o servidor de autenticação retornar um desafio que corresponda a um host listado no perfil, o sistema operacional encaminhará o desafio para a extensão. A extensão tem a opção de lidar ou rejeitar o desafio. Se tratada, a extensão retornará os cabeçalhos de autorização para concluir a solicitação e o servidor de autenticação retorna a uma resposta ao chamador. Solicite dados e, em seguida, seja desafiado para autenticação. Use HOSTs no perfil de configuração do MDM.

A Microsoft tem implementações para autenticação agenciada para os seguintes sistemas operacionais clientes:

Sistema operacional Agente de autenticação
Windows Gerenciador de Contas da Web (WAM)
iOS/iPadOS Microsoft Authenticator
Android Microsoft Authenticator ou Portal da Empresa do Microsoft Intune
macOS Portal da Empresa do Microsoft Intune (por meio da extensão de SSO)

Todos os aplicativos agentes da Microsoft usam um artefato-chave conhecido como Token de atualização principal (PRT), que é um Token Web JSON (JWT) usado para adquirir tokens de acesso para aplicativos e recursos da Web protegidos com o Microsoft Entra ID. Quando implantada por meio de um MDM, a extensão SSO do Enterprise para macOS ou iOS obtém um PRT semelhante aos PRTs usados em dispositivos Windows pelo Gerenciador de Contas da Web (WAM). Para obter mais informações, confira o artigo O que é um token de atualização principal?.

Modelo de solução de problemas

O fluxograma a seguir descreve um fluxo lógico para abordar a solução de problemas da extensão de SSO. O restante deste artigo detalha as etapas descritas neste fluxograma. A solução de problemas pode ser dividida em duas áreas de foco separadas: implantação e fluxo de autenticação de aplicativo.

Etapas para Recusar o SSO da Plataforma no macOS

Para desativar o PSSO que foi habilitado por engano, os administradores devem remover o perfil de extensão do SSO com o PSSO habilitado dos dispositivos e implantar um novo perfil de extensão do SSO com os sinalizadores PSSO desabilitados/removidos.

Contexto:

Os usuários começarão a ver a notificação de registro do PSSO nos dispositivos macOS 13+ em dois cenários:

  1. Se o dispositivo já tiver a versão do Portal da Empresa do Intune compatível com PSSO e o administrador implantar uma nova política de extensão de SSO com PSSO habilitado
  2. Se o usuário já estiver direcionado com a política de extensão de SSO com o PSSO habilitado e, posteriormente, uma versão do Portal da Empresa do Intune com suporte para PSSO for instalada no dispositivo.

Cuidado

Os administradores NÃO devem direcionar usuários com a política de extensão do SSO que tenha o PSSO habilitado, a menos que eles tenham sido testados e estejam prontos para serem implantados, pois isso pode interromper os usuários existentes e suas condições de conformidade.

Importante

Observação: para os usuários que concluírem o registro PSSO, o registro WPJ herdado será removido do conjunto de chaves. Se o registro do PSSO tiver sido feito por engano, quando o administrador remover o perfil do SSO com o PSSO e instalar um novo perfil sem o PSSO, o registro WPJ herdado deverá ser feito novamente para que a conformidade do dispositivo funcione.

Solução de problemas de implantação

A maioria dos problemas encontrados pelos clientes decorre de configurações inadequadas do MDM (gerenciamento de dispositivo móvel) do perfil de extensão de SSO ou de uma incapacidade para o dispositivo Apple receber o perfil de configuração do MDM. Esta seção aborda as etapas que você pode seguir para garantir que o perfil de MDM seja implantado em um Mac e que ele tenha a configuração correta.

Requisitos para implantação

Verificar a versão do sistema operacional macOS

Use as etapas a seguir para verificar a versão do sistema operacional (SO) no dispositivo macOS. Os perfis de extensão de SSO da Apple são implantados em dispositivos que executam o macOS 10.15 (Catalina) ou superior. Você pode verificar a versão do macOS na interface do usuário ou no terminal.

Interface do usuário
  1. No dispositivo macOS, selecione o ícone da Apple no canto superior esquerdo e selecione Sobre este Mac.

  2. A versão do sistema operacional está listada ao lado de macOS.

Terminal
  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos e clique duas vezes na pasta Utilitários.

  2. Clique duas vezes no aplicativo Terminal.

  3. Quando o terminal abrir, digite sw_vers no prompt, procure um resultado semelhante ao seguinte:

    % sw_vers
    ProductName: macOS
    ProductVersion: 13.0.1
    BuildVersion: 22A400
    

Verificar a versão do sistema operacional iOS

Use as etapas a seguir para verificar a versão do sistema operacional (SO) no dispositivo iOS. Os perfis de extensão de SSO da Apple são implantados em dispositivos que executam o iOS 13 ou superior. Você pode verificar a versão do iOS no aplicativo Configurações. Abra o aplicativo Configurações:

Captura de tela mostrando o ícone do aplicativo Configurações do iOS.

Navegue até Geral e, em seguida, Sobre. Esta tela lista informações sobre o dispositivo, incluindo o número da versão do iOS:

Captura de tela mostrando a versão do iOS no aplicativo Configurações.

Implantação do MDM do perfil de configuração de extensão de SSO

Trabalhe com o administrador do MDM (ou a equipe de gerenciamento de dispositivo) para garantir que o perfil de configuração de extensão seja implantado nos dispositivos Apple. O perfil de extensão pode ser implantado de qualquer MDM que dê suporte a dispositivos macOS ou iOS.

Importante

A Apple exige que os dispositivos sejam registrados em um MDM para que a extensão de SSO seja implantada.

A tabela a seguir fornece diretrizes específicas de instalação do MDM, dependendo de qual sistema operacional você está implantando a extensão:

Importante

Embora haja suporte para qualquer MDM para implantar a extensão de SSO, muitas organizações implementam políticas de Acesso Condicional baseadas em dispositivos por meio da avaliação das políticas de conformidade do MDM. Se um MDM de terceiros estiver sendo usado, verifique se o fornecedor de MDM dá suporte à conformidade de parceiro do Intune se você quiser usar políticas de acesso condicional baseadas em dispositivo. Quando a extensão de SSO é implantada por meio do Intune ou de um provedor de MDM que dá suporte à conformidade de parceiro do Intune, a extensão pode passar o certificado do dispositivo para o Microsoft Entra ID para que a autenticação do dispositivo possa ser concluída.

Validar a configuração de rede no dispositivo macOS

A estrutura de extensão SSO da Apple e a extensão SSO do Microsoft Enterprise criada nela exigem que determinados domínios sejam isentos de interceptação/inspeção TLS (também conhecida como proxy de interrupção e inspeção). Os domínios a seguir não devem estar sujeitos à inspeção TLS:

  • app-site-association.cdn-apple.com
  • app-site-association.networking.apple
Verifique se a configuração de SSO está interrompida devido à inspeção TLS

Você pode validar se a inspeção TLS está afetando sua configuração de SSO executando um sysdiagnose do aplicativo Terminal em um dispositivo afetado:

sudo sysdiagnose -f ~/Desktop/

O sysdiagnose será salvo em sua área de trabalho como um arquivo .tar.gz. Extraia os arquivos e abra o arquivo system_logs.logarchive. Ele será aberto no aplicativo console. Pesquise com.apple.appsso e altere o filtro para SUBSYSTEM:

Captura de tela mostrando o sysdiagnose.

Procure eventos informando que há falhas de domínio associadas, especialmente relacionadas a domínios da Microsoft, como login.microsoftonline.com. Esses eventos podem indicar problemas de inspeção TLS, o que impedirá que a extensão SSO funcione corretamente. Os domínios da Apple não aparecerão no log do sysdiagnose, mesmo que sejam afetados por uma configuração de inspeção TLS sem suporte.

Validar a configuração de inspeção TLS

A Apple fornece uma ferramenta macOS para verificar uma série de problemas de configuração comuns chamada de Mac Evaluation Utility. Essa ferramenta pode ser baixada do AppleSeed for IT. Se você tiver acesso ao AppleSeed para TI, baixe o Mac Evaluation Utility na área Recursos. Depois de instalar o aplicativo, execute uma avaliação. Depois que a avaliação for concluída, navegue até Interceptação HTTPS -->Conteúdo Adicional --> e verifique os dois itens abaixo:

Captura de tela mostrando o Utilitário de Avaliação do Mac.

Se essas verificações tiverem um aviso ou erro, talvez haja uma inspeção TLS ocorrendo no dispositivo. Trabalhe com sua equipe de rede para isentar *.cdn-apple.com e *.networking.apple da inspeção TLS.

Saída de logs swcd detalhados

A Apple fornece um utilitário de linha de comando chamado swcutil que permite monitorar o progresso da validação de domínio associada. Você pode monitorar quaisquer erros de domínio associados usando o seguinte comando:

sudo swcutil watch --verbose

Localize a seguinte entrada nos logs e verifique se ela está marcada como aprovada ou se há algum erro:


    ```
    Entry s = authsrv, a = UBF8T346G9.com.microsoft.CompanyPortalMac, d = login.microsoftonline.com
    ```

Limpar o cache de inspeção TLS do macOS

Se você tiver problemas com domínios associados e tiver domínios na lista de permitidos em sua ferramenta de inspeção TLS no dispositivo, pode levar algum tempo para que o cache de validação de domínio associado da Apple seja invalidado. Infelizmente, não há etapas determinísticas que acionem novamente a revalidação de domínio associado em todas as máquinas, mas há algumas coisas que podem ser tentadas.

Você pode executar os seguintes comandos para redefinir o cache do dispositivo:

pkill -9 swcd
sudo swcutil reset
pkill -9 AppSSOAgent

Teste novamente a configuração de extensão SSO depois de redefinir o cache.

Às vezes, esse comando é insuficiente e não redefine totalmente o cache. Nesses casos, você pode tentar o seguinte:

  • Remova ou mova o aplicativo Portal da Empresa do Intune para a Lixeira e reinicie o dispositivo. Após a conclusão da reinicialização, você pode tentar reinstalar o aplicativo Portal da Empresa.
  • Registre o seu dispositivo novamente.

Se nenhum dos métodos acima resolver o problema, pode haver outra coisa em seu ambiente que pode estar bloqueando a validação de domínio associado. Se isso acontecer, entre em contato com o suporte da Apple para obter mais soluções de problemas.

Validar o perfil de configuração de SSO no dispositivo macOS

Supondo que o administrador do MDM tenha seguido as etapas na seção anterior Implantação do MDM do perfil de extensão de SSO, a próxima etapa é verificar se o perfil foi implantado com êxito no dispositivo.

Localizar o perfil de configuração do MDM da extensão de SSO
  1. No dispositivo macOS, selecione as Configurações do Sistema.

  2. Quando as Configurações do Sistema aparecerem, digite Perfis e pressione voltar.

  3. Essa ação deve abrir o painel Perfis.

    Captura de tela mostrando os perfis de configuração.

    Texto explicativo da captura de tela Descrição
    1 Indica que o dispositivo tem gerenciamento de MDM.
    2 Pode haver vários perfis para escolher. Neste exemplo, o perfil de extensão de SSO do Microsoft Enterprise é chamado Extensible Single Sign On Profile-32f37be3-302e-4549-a3e3-854d300e117a.

    Observação

    Dependendo do tipo de MDM que está sendo usado, pode haver vários perfis listados e seu esquema de nomenclatura é arbitrário dependendo da configuração do MDM. Selecione cada uma delas e inspecione se a linha Configurações indica que ela é uma extensão de logon único.

  4. Clique duas vezes no perfil de configuração que corresponde a um valor de Configurações da extensão de logon único.

    Captura de tela mostrando o perfil de configuração da extensão de SSO.

    Texto explicativo da captura de tela Configuração do perfil Descrição
    1 Com sinal Autoridade de assinatura do provedor de MDM.
    2 Instalado Data ou carimbo de data/hora mostrando quando a extensão foi instalada (ou atualizada).
    3 Configurações: extensão de logon único Indica que esse perfil de configuração é um tipo de extensão de SSO da Apple.
    4 Extensão Identificador que mapeia para a ID do pacote do aplicativo que está executando o plug-in de extensão do Microsoft Enterprise. O identificador deve sempre ser definido como com.microsoft.CompanyPortalMac.ssoextension e o identificador da equipe deverá aparecer como (UBF8T346G9) se o perfil estiver instalado em um dispositivo macOS. Se algum valor for diferente, o MDM não invocará a extensão corretamente.
    5 Tipo A extensão de SSO do Microsoft Enterprise deve sempre ser definida como um tipo de extensão de redirecionamento. Para obter mais informações, confira Tipos de extensão: redirecionamento vs credencial.
    6 URLs As URLs de logon pertencentes ao Provedor de Identidade (Microsoft Entra ID). Confira a lista de URLs com suporte.

    Todas as extensões de redirecionamento de SSO da Apple devem ter os seguintes componentes do payload MDM no perfil de configuração:

    Componente do payload MDM Descrição
    Identificador da extensão Inclui o identificador do pacote e o identificador da equipe do aplicativo no dispositivo macOS executando a extensão. Observação: a extensão de SSO do Microsoft Enterprise sempre deve ser definida como: com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9) para informar ao sistema operacional macOS que o código do cliente de extensão faz parte do aplicativo Portal da Empresa do Intune.
    Tipo Deve ser definido como redirecionamento para indicar um tipo de extensão de redirecionamento.
    URLs URLs de ponto de extremidade do provedor de identidade (Microsoft Entra ID), em que o sistema operacional roteia solicitações de autenticação para a extensão.
    Configuração específica da extensão opcional Valores de dicionário que podem atuar como parâmetros de configuração. No contexto da extensão de SSO do Microsoft Enterprise, esses parâmetros de configuração são chamados de sinalizadores de recursos. Confira as definições de sinalizador de recurso.

    Observação

    As definições de MDM para o perfil de extensão de SSO da Apple podem ser referenciadas no artigo Configurações do payload MDM de logon único extensível para dispositivos Apple. A Microsoft implementou nossa extensão com base nesse esquema. Confira Plug-in SSO do Microsoft Enterprise para dispositivos Apple

  5. Para verificar se o perfil correto para a extensão de SSO do Microsoft Enterprise está instalado, o campo Extensão deve corresponder: com.microsoft.CompanyPortalMac.ssoextension (UBF8T346G9).

  6. Observe o campo Instalado no perfil de configuração, pois ele pode ser um indicador útil para solução de problemas, quando forem feitas alterações em sua configuração.

Se o perfil de configuração correto tiver sido verificado, prossiga para a seção Solução de problemas do fluxo de autenticação do aplicativo.

O perfil de configuração do MDM está ausente

Se o perfil da configuração de extensão de SSO não aparecer na lista Perfis após a seguinte seção anterior, pode ser que a configuração de MDM tenha o direcionamento de usuário/dispositivo habilitado, o que está efetivamente filtrando o usuário ou o dispositivo de receber o perfil de configuração. Verifique com o administrador do MDM e colete os logs do Console encontrados na próxima seção.

Coletar logs de console específicos do MDM
  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos e clique duas vezes na pasta Utilitários.

  2. Clique duas vezes no aplicativo Console.

  3. Clique no botão Iniciar para habilitar o log de rastreamento do console.

    Captura de tela mostrando o aplicativo Console e o botão Iniciar sendo clicado.

  4. Faça com que o administrador do MDM tente reimplantar o perfil de configuração para esse dispositivo/usuário do macOS e force um ciclo de sincronização.

  5. Digite subsystem:com.apple.ManagedClient na barra de pesquisa e pressione Return.

    Captura de tela mostrando o aplicativo Console com o filtro do subsistema.

  6. Onde o cursor está piscando na barra de pesquisa, digite message:Extensible.

    Captura de tela mostrando o console sendo ainda mais filtrado no campo de mensagens.

  7. Agora você deve ver os logs do console do MDM filtrados em atividades do perfil de configuração do SSO extensível. A captura de tela a seguir mostra uma entrada de log Perfil de configuração instalado, mostrando que o perfil de configuração foi instalado.

Solução de problemas de fluxo de autenticação de aplicativo

As diretrizes nesta seção pressupõem que o dispositivo macOS tenha um perfil de configuração implantado corretamente. Confira Validar perfil de configuração de SSO no dispositivo macOS para obter as etapas.

Uma vez implantada, a extensão de SSO do Microsoft Enterprise para dispositivos Apple dá suporte a dois tipos de fluxos de autenticação de aplicativo para cada tipo de aplicativo. Ao solucionar problemas, é importante entender o tipo de aplicativo que está sendo usado.

Tipos de aplicativos

Tipo de aplicativo Autenticação interativa Autenticação silenciosa Descrição Exemplos
Aplicativo MSAL nativo X X A MSAL (Biblioteca de Autenticação da Microsoft) é uma estrutura de desenvolvimento de aplicativos adaptada para a criação de aplicativos com a plataforma de identidade da Microsoft (Microsoft Entra ID).
Os aplicativos criados na MSAL versão 1.1 ou superior podem ser integrados à extensão de SSO do Microsoft Enterprise.
Se o aplicativo souber que a extensão de SSO (agente) utiliza a extensão sem nenhuma configuração adicional para obter mais informações, confira nossa documentação de exemplo de desenvolvimento da MSAL.
Microsoft To-Do
SSO de navegador/nativo não MSAL X Aplicativos que utilizam tecnologias de rede da Apple ou modos de exibição da Web podem ser configurados para obter uma credencial compartilhada da extensão SSO
Os sinalizadores de recursos devem ser configurados para garantir que a ID do pacote para cada aplicativo tenha permissão para obter o PRT (credencial compartilhada).
Microsoft Word
Safari
Microsoft Edge
Visual Studio

Importante

Nem todos os aplicativos nativos da Microsoft usam a estrutura MSAL. No momento da publicação deste artigo, a maioria dos aplicativos macOS do Microsoft Office ainda dependem da estrutura de biblioteca ADAL mais antiga e, portanto, dependem do fluxo de SSO do navegador.

Como localizar a ID do pacote para um aplicativo no macOS

  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos e clique duas vezes na pasta Utilitários.

  2. Clique duas vezes no aplicativo Terminal.

  3. Quando o terminal abrir, digite osascript -e 'id of app "<appname>"' no prompt. Veja alguns exemplos a seguir:

    % osascript -e 'id of app "Safari"'
    com.apple.Safari
    
    % osascript -e 'id of app "OneDrive"'
    com.microsoft.OneDrive
    
    % osascript -e 'id of app "Microsoft Edge"'
    com.microsoft.edgemac
    
  4. Agora que as IDs do pacote foram coletadas, siga nossas diretrizes para configurar os sinalizadores de recursos para garantir que aplicativos SSO do navegador/nativo não MSAL possam utilizar a extensão de SSO. Observação: todas as IDs de pacote diferenciam maiúsculas de minúsculas para a configuração do sinalizador de recurso.

Cuidado

Aplicativos que não usam tecnologias de rede da Apple (como WKWebview e NSURLSession) não poderão usar a credencial compartilhada (PRT) da extensão de SSO. Tanto o Google Chrome quanto o Mozilla Firefox se enquadram nessa categoria. Mesmo que eles estejam configurados no perfil de configuração do MDM, o resultado será um prompt de autenticação regular no navegador.

Inicialização

Por padrão, somente os aplicativos MSAL invocam a extensão de SSO e, por sua vez, a extensão adquire uma credencial compartilhada (PRT) do Microsoft Entra ID. No entanto, o aplicativo navegador Safari ou outros aplicativos não MSAL podem ser configurados para adquirir o PRT. Confira Permitir que os usuários entrem a partir de aplicativos que não utilizam a MSAL e o navegador Safari. Depois que a extensão de SSO adquirir um PRT, ela armazenará a credencial na Keychain de logon do usuário. Em seguida, verifique se o PRT está presente nas chaves do usuário:

Verificando o acesso às chaves para PRT

  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos e clique duas vezes na pasta Utilitários.

  2. Clique duas vezes no aplicativo Acesso ao Keychain.

  3. Em Chaves Padrão, selecione Itens Locais (ou iCloud).

    • Verifique se Todos os Itens está selecionado.
    • Na barra de pesquisa, no lado direito, digite primaryrefresh (para filtrar).

    captura de tela mostrando como localizar o PRT no aplicativo Acesso às Chaves.

    Texto explicativo da captura de tela Componente de credencial de chaves Descrição
    1 Todos os itens Mostra todos os tipos de credenciais no Acesso às Chaves
    2 Barra de Pesquisa das Chaves Permite a filtragem por credencial. Para filtrar o PRT do Microsoft Entra, digite primaryrefresh
    3 Tipo Refere-se ao tipo de credencial. A credencial de PRT do Microsoft Entra é um tipo de credencial de Senha do Aplicativo
    4 Conta Exibe a conta de usuário do Microsoft Entra, que possui o MAP no formato: UserObjectId.TenantId-login.windows.net
    5 Onde Exibe o nome completo da credencial. A credencial de PRT do Microsoft Entra começa com o seguinte formato: primaryrefreshtoken-29d9ed98-a469-4536-ade2-f981bc1d605 O 29d9ed98-a469-4536-ade2-f981bc1d605 é a ID do aplicativo para o serviço do Agente de Autenticação da Microsoft, responsável por lidar com solicitações de aquisição de PRT
    6 Modificado Mostra quando a credencial foi atualizada pela última vez. Para a credencial de PRT do Microsoft Entra, sempre que a credencial é inicializada ou atualizada por um evento de logon interativo, ela atualiza o carimbo de data/hora
    7 Keychain Indica em qual conjunto de chaves a credencial selecionada reside. A credencial de PRT do Microsoft Entra reside nos Itens Locais ou na Keychain do iCloud. Qquando o iCloud estiver habilitado no dispositivo macOS, a Keychain dos Itens Locais se tornará a keychain do iCloud
  4. Se o PRT não for encontrado no Acesso às Chaves, faça o seguinte com base no tipo de aplicativo:

    • MSAL nativa: verifique se o desenvolvedor do aplicativo, se o aplicativo foi criado com a MSAL versão 1.1 ou superior, permitiu que o aplicativo saiba do agente. Além disso, verifique Etapas da solução de problemas de implantação para descartar os problemas de implantação.
    • Não MSAL (Safari): verifique se o sinalizador de recurso browser_sso_interaction_enabled está definido como 1 e não como 0 no perfil de configuração do MDM

Fluxo de autenticação após inicializar um PRT

Agora que o PRT (credencial compartilhada) foi verificado, antes de fazer qualquer solução de problemas mais profunda, é útil entender as etapas de alto nível para cada tipo de aplicativo e como ele interage com o plug-in de extensão de SSO do Microsoft Enterprise (aplicativo do agente). As animações e descrições a seguir devem ajudar os administradores do macOS a entender o cenário antes de examinar os dados de log.

Aplicativo MSAL nativo

Cenário: um aplicativo desenvolvido para usar a MSAL (exemplo: cliente Microsoft To Do) que está em execução em um dispositivo Apple precisa conectar o usuário com sua conta do Microsoft Entra para acessar um serviço protegido do Microsoft Entra (exemplo: Serviço Microsoft To Do).

Uma animação GIF mostrando o fluxo de autenticação em um aplicativo MSAL com um PRT.

  1. Os aplicativos desenvolvidos pela MSAL invocam a extensão de SSO diretamente e enviam o PRT para o ponto de extremidade de token do Microsoft Entra juntamente com a solicitação do aplicativo de um token para um recurso protegido do Microsoft Entra
  2. O Microsoft Entra ID valida a credencial de PRT e retorna um token específico do aplicativo de volta para o agente de extensão de SSO
  3. Em seguida, o agente da extensão de SSO passa o token para o aplicativo cliente MSAL, que o envia para o recurso protegido do Microsoft Entra
  4. O usuário agora está conectado ao aplicativo e o processo de autenticação está concluído
SSO de navegador/não MSAL

Cenário: um usuário em um dispositivo Apple abre o navegador Safari (ou qualquer aplicativo nativo que não seja MSAL que dê suporte à Pilha de Rede da Apple) para entrar em um recurso protegido do Microsoft Entra (Exemplo: https://office.com).

Uma animação mostrando o fluxo de autenticação de alto nível de um aplicativo não MSAL usando a extensão de SSO.

  1. Usando um aplicativo não MSAL (Exemplo: Safari), o usuário tenta entrar em um aplicativo integrado do Microsoft Entra (exemplo: office.com) e é redirecionado para obter um token do Microsoft Entra ID
  2. Desde que o aplicativo não MSAL esteja listado na configuração de conteúdo do MDM, a pilha de rede da Apple intercepta a solicitação de autenticação e redireciona a solicitação para o agente de extensão de SSO
  3. Depois que a extensão de SSO recebe a solicitação interceptada, o PRT é enviado para o ponto de extremidade do token do Microsoft Entra
  4. O Microsoft Entra ID valida o PRT e retorna um token específico do aplicativo de volta para o agente de extensão de SSO
  5. O token específico do aplicativo é fornecido ao aplicativo cliente que não seja MSAL e o aplicativo cliente envia o token para acessar o serviço protegido do Microsoft Entra
  6. O usuário concluiu a entrada e o processo de autenticação foi concluído

Obtendo os logs de extensão de SSO

Uma das ferramentas mais úteis para solucionar vários problemas com a extensão de SSO são os logs do cliente do dispositivo Apple.

Salvar logs de extensão de SSO do aplicativo Portal da Empresa

  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos.

  2. Clique duas vezes no aplicativo Portal da Empresa.

  3. Quando o Portal da Empresa for carregado, navegue até a barra de menus superior: Ajuda->Salvar relatório de diagnóstico. Não é necessário fazer logon no aplicativo.

    Captura de tela mostrando como navegar no menu superior de Ajuda para Salvar relatório de diagnóstico.

  4. Salve o arquivo de log do Portal da Empresa onde quiser (por exemplo: Desktop).

  5. Abra o arquivo CompanyPortal.zip e abra o arquivo SSOExtension.log com qualquer editor de texto.

Dica

Uma maneira útil de exibir os logs é usar o Visual Studio Code e instalar a extensão Log Viewer.

Acompanhando os logs de extensão de SSO no macOS com o terminal

Durante a solução de problemas, pode ser útil reproduzir um problema ao seguir os logs de SSOExtension em tempo real:

  1. No dispositivo macOS, clique duas vezes na pasta Aplicativos e clique duas vezes na pasta Utilitários.

  2. Clique duas vezes no aplicativo Terminal.

  3. Quando o terminal abrir, digite:

    tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    

    Observação

    O /* à direita indica que vários logs serão seguidos caso existam

    % tail -F ~/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/*
    ==> /Users/<username>/Library/Containers/com.microsoft.CompanyPortalMac.ssoextension/Data/Library/Caches/Logs/Microsoft/SSOExtension/SSOExtension 2022-12-25--13-11-52-855.log <==
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Handling SSO request, requested operation: 
    2022-12-29 14:49:59:281 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Ignoring this SSO request...
    2022-12-29 14:49:59:282 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Finished SSO request.
    2022-12-29 14:49:59:599 | I | Beginning authorization request
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_interaction_enabled, value in config 1, value type __NSCFNumber
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Feature flag browser_sso_interaction_enabled is enabled
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag browser_sso_disable_mfa, value in config (null), value type (null)
    2022-12-29 14:49:59:599 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag disable_browser_sso_intercept_all, value in config (null), value type (null)
    2022-12-29 14:49:59:600 | I | Request does not need UI
    2022-12-29 14:49:59:600 | I | TID=783491 MSAL 1.2.4 Mac 13.0.1 [2022-12-29 19:49:59] Checking for feature flag admin_debug_mode_enabled, value in config (null), value type (null)
    
  4. À medida que você reproduz o problema, mantenha a janela do terminal aberta para observar a saída dos logs de SSOExtension finalizados.

Exportando os logs de extensão de SSO no iOS

Não é possível exibir os logs da Extensão de SSO do iOS em tempo real, como no macOS. Os logs da extensão de SSO do iOS podem ser exportados do aplicativo Microsoft Authenticator e, em seguida, analisados a partir de outro dispositivo:

  1. Abra o aplicativo Microsoft Authenticator:

    Captura de tela mostrando o ícone do aplicativo Microsoft Authenticator no iOS.

  2. Pressione o botão menu no canto superior esquerdo:

    Captura de tela mostrando a localização do botão menu no aplicativo Microsoft Authenticator.

  3. Escolha a opção "Enviar comentários":

    Captura de tela mostrando a localização da opção de envio de comentários no aplicativo Microsoft Authenticator.

  4. Escolha a opção "Estou com problemas":

    Captura de tela mostrando a localização da opção

  5. Pressione a opção Exibir dados de diagnóstico:

    Captura de tela mostrando o botão de exibição de dados de diagnóstico no aplicativo Microsoft Authenticator.

    Dica

    Se você estiver trabalhando com Suporte da Microsoft, neste estágio, poderá pressionar o botão Enviar para enviar os logs para o suporte. Isso fornecerá uma ID do Incidente, que você pode fornecer ao seu contato no Suporte da Microsoft.

  6. Pressione o botão "Copiar tudo" para copiar os logs para a área de transferência do dispositivo iOS. Em seguida, você pode salvar os arquivos de log em outro lugar para analisá-los ou enviá-los por email ou outros métodos de compartilhamento de arquivos:

    Captura de tela mostrando a opção copiar todos os logos no aplicativo Microsoft Authenticator.

Noções básicas sobre os logs de extensão de SSO

Analisar os logs de extensão de SSO é uma excelente maneira de solucionar problemas de fluxo de autenticação de aplicativos que enviam solicitações de autenticação para o Microsoft Entra ID. Sempre que o agente de extensão de SSO é invocado, uma série de atividades de registro acontece, e essas atividades são conhecidas como solicitações de autorização. Os logs contêm as seguintes informações úteis para solução de problemas:

  • Configuração do sinalizador de recurso
  • Tipos de solicitação de autorização
    • MSAL nativa
    • SSO de navegador/não MSAL
  • Interação com as chaves do macOS para operações de recuperação/armazenamento de credenciais
  • IDs de correlação para eventos de credenciais do Microsoft Entra
    • Aquisição do PRT
    • Registro de dispositivo

Cuidado

Os logs de extensão de SSO são extremamente detalhados, especialmente ao examinar as operações de credencial das chaves. Por esse motivo, é sempre melhor entender o cenário antes de examinar os logs durante a solução de problemas.

Estrutura de log

Os logs de extensão de SSO são divididos em colunas. A captura de tela a seguir mostra o detalhamento de coluna dos logs:

Captura de tela mostrando a estrutura de coluna dos logs de extensão de SSO.

Coluna Nome da coluna Descrição
1 Data/Hora Local A data e a hora locais exibidas
2 I-Information
W-Warning
E-Error
Exibe informações, avisos ou erros
3 ID do thread (TID) Exibe a ID do thread de execução do aplicativo do agente de extensão de SSO
4 Número de versão da MSAL O plug-in do agente da extensão de SSO do Microsoft Enterprise é criado como um aplicativo MSAL. Esta coluna indica a versão da MSAL que o aplicativo do agente está em execução
5 Versão do macOS Mostrar a versão do sistema operacional macOS
6 Data/Hora UTC A data e a hora UTC exibidas
7 ID de Correlação As linhas nos logs que têm a ver com o Microsoft Entra ID ou operações de Keychain estendem a coluna Data/Hora UTC com uma ID de correlação
8 Mensagem Mostra as mensagens detalhadas dos logs. A maioria das informações para solução de problemas podem ser encontradas nesta coluna

Configuração do sinalizador de recurso

Durante a configuração do MDM da extensão de SSO do Microsoft Enterprise, uma extensão opcional de dados específicos pode ser enviada como instruções para alterar o comportamento da extensão de SSO. Essas instruções específicas de configuração são conhecidas como sinalizadores de recursos. A configuração do sinalizador de recurso é particularmente importante para tipos de solicitações de autorização de SSO não-MSAL/navegador, pois a ID do Pacote pode determinar se a extensão é invocada ou não. Confira a documentação do sinalizador de recurso. Cada solicitação de autorização começa com um relatório de configuração do sinalizador de recurso. A captura de tela a seguir mostra um exemplo de configuração de sinalizador de recurso:

Captura de tela mostrando um exemplo de configuração de sinalizador de recurso da extensão de SSO da Microsoft.

Balão Sinalizador de recurso Descrição
1 browser_sso_interaction_enabled O navegador não MSAL ou Safari pode inicializar um PRT
2 browser_sso_disable_mfa (Preterido no momento) Durante a inicialização da credencial PRT, por padrão, a MFA é necessária. Observe que essa configuração é definida como nula, o que significa que a configuração padrão é imposta
3 disable_explicit_app_prompt Substitui solicitações de autenticação prompt=login de aplicativos para reduzir a solicitação
4 AppPrefixAllowList Qualquer aplicativo não MSAL que tenha uma ID de pacote que comece com com.micorosoft. pode ser interceptado e manipulado pelo agente de extensão de SSO

Importante

Sinalizadores de recursos definidos como nulos significa que a configuração padrão está em vigor. Verifique a documentação do sinalizador de recurso para obter mais detalhes

Fluxo de entrada do aplicativo nativo da MSAL

A seção a seguir explica como examinar os logs de extensão de SSO para o fluxo de autenticação do aplicativo MSAL nativo. Para este exemplo, estamos usando o aplicativo de exemplo MSAL macOS/iOS como aplicativo cliente, e o aplicativo está fazendo uma chamada para a API do Microsoft Graph para exibir as informações das credenciais do usuário.

MSAL nativa: passo a passo do fluxo interativo

As seguintes ações devem ocorrer para um logon interativo bem-sucedido:

  1. O usuário entra no aplicativo de exemplo MSAL macOS.
  2. O agente de extensão de SSO da Microsoft é invocado e manipula a solicitação.
  3. O agente de extensão de SSO da Microsoft passa pelo processo de inicialização para adquirir um PRT para o usuário conectado.
  4. Armazene o PRT nas chaves.
  5. Verifique a presença de um objeto de registro de dispositivo no Microsoft Entra ID (WPJ).
  6. Retorne um token de acesso ao aplicativo cliente para acessar o Microsoft Graph com um escopo User.Read.

Importante

Os snippets de log de exemplo a seguir foram anotados com cabeçalhos de comentário // que não são vistos nos logs. Eles são usados para ajudar a ilustrar uma ação específica que está sendo realizada. Documentamos os snippets de log dessa forma para ajudar nas operações de cópia e colagem. Além disso, os exemplos de log foram cortados para mostrar apenas linhas de significância para solução de problemas.

O usuário clica no botão Chamar a API do Microsoft Graph para invocar o processo de credenciais.

Captura de tela mostrando o aplicativo de exemplo MSAL para macOS iniciado com o botão Chamar a API do Microsoft Graph.

//////////////////////////
//get_accounts_operation//
//////////////////////////
Handling SSO request, requested operation: get_accounts_operation
(Default accessor) Get accounts.
(MSIDAccountCredentialCache) retrieving cached credentials using credential query
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 08dc26ab-e050-465e-beb4-d3f2d66647a5, scopes (null)
(Default accessor) No accounts found in default accessor.
(Default accessor) No accounts found in other accessors.
Completed get accounts SSO request with a personal device mode.
Request complete
Request needs UI
ADB 3.1.40 -[ADBrokerAccountManager allBrokerAccounts:]
ADB 3.1.40 -[ADBrokerAccountManager allMSIDBrokerAccounts:]
(Default accessor) Get accounts.
No existing accounts found, showing webview

/////////
//login//
/////////
Handling SSO request, requested operation: login
Handling interactive SSO request...
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/common";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "08dc26ab-e050-465e-beb4-d3f2d66647a5";
    "client_version" = "1.1.7";
    "correlation_id" = "3506307A-E90F-4916-9ED5-25CF81AE97FC";
    "extra_oidc_scopes" = "openid profile offline_access";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    prompt = "select_account";
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
}

////////////////////////////////////////////////////////////
//Request PRT from Microsoft Authentication Broker Service//
////////////////////////////////////////////////////////////
Using request handler <ADInteractiveDevicelessPRTBrokerRequestHandler: 0x117ea50b0>
(Default accessor) Looking for token with aliases (null), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Attempting to get Deviceless Primary Refresh Token interactively.
Caching AAD Environements
networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
Resolved authority, validated: YES, error: 0
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Start webview authorization session with webview controller class MSIDAADOAuthEmbeddedWebviewController: 
[MSAL] Presenting web view controller. 

O exemplo de registro em log pode ser dividido em três segmentos:

Segment Descrição
get_accounts_operation Verifica se há contas existentes no cache
- ClientID: A ID do aplicativo registrada no Microsoft Entra ID para este aplicativo MSAL
O ADB 3.1.40 indica essa versão do plug-in do agente da extensão de SSO do Microsoft Enterprise
login O Agente manipula a solicitação para o Microsoft Entra ID:
- Manipulando a solicitação interativa de SSO...: indica uma solicitação interativa
- correlation_id: útil para fazer referência cruzada com os logs de credenciais do lado do servidor do Microsoft Entra
- escopo: escopo de permissão da API User.Read que está sendo solicitado do Microsoft Graph
- client_version: versão da MSAL em que o aplicativo está em execução
- redirect_uri: os aplicativos MSAL usam o formato msauth.com.<Bundle ID>://auth
Solicitação PRT O processo de inicialização para adquirir um PRT interativamente foi iniciado e renderiza a sessão de SSO do modo de exibição da Web

Serviço do agente de autenticação da Microsoft
- clientId: 29d9ed98-a469-4536-ade2-f981bc1d605e
- Todas as solicitações de PRT são feitas no serviço do agente de autenticação da Microsoft

O Controlador do modo de exibição da Web do SSO é exibido e o usuário é solicitado a inserir seu logon do Microsoft Entra (UPN/email)

Captura de tela mostrando o prompt de SSO da Apple com informações do usuário sendo inseridas e mais informações de texto explicativo.

Observação

Ao clicar no botão i no canto inferior esquerdo do controlador do modo de exibição da Web, será exibido mais informações sobre a extensão de SSO e as especificidades sobre o aplicativo que a invocou.

Captura de tela que mostra mais detalhes sobre a extensão de SSO na tela de SSO do prompt. Após o usuário inserir com êxito suas credenciais do Microsoft Entra, as seguintes entradas de log são escritas nos logs de extensão de SSO

SSOExtensionLogs
///////////////
//Acquire PRT//
///////////////
[MSAL] -completeWebAuthWithURL: msauth://microsoft.aad.brokerplugin/?code=(not-null)&client_info=(not-null)&state=(not-null)&session_state=(not-null)
[MSAL] Dismissed web view controller.
[MSAL] Result from authorization session callbackURL host: microsoft.aad.brokerplugin , has error: NO
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId 29d9ed98-a469-4536-ade2-f981bc1d605e, scopes (null)
Saving PRT response in cache since no other PRT was found
[MSAL] Saving keychain item, item info Masked(not-null)
[MSAL] Keychain find status: 0
Acquired PRT.

///////////////////////////////////////////////////////////////////////
//Discover if there is an Azure AD Device Registration (WPJ) present //
//and if so re-acquire a PRT and associate with Device ID            //
///////////////////////////////////////////////////////////////////////
WPJ Discovery: do discovery in environment 0
Attempt WPJ discovery using tenantId.
WPJ discovery succeeded.
Using cloud authority from WPJ discovery: https://login.microsoftonline.com/common
ADBrokerDiscoveryAction completed. Continuing Broker Flow.
PRT needs upgrade as device registration state has changed. Device is joined 1, prt is joined 0
Beginning ADBrokerAcquirePRTInteractivelyAction
Attempting to get Primary Refresh Token interactively.
Acquiring broker tokens for broker client id.
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Enrollment id read from intune cache : (null).
Handle silent PRT response Masked(not-null), error Masked(null)
Acquired broker tokens.
Acquiring PRT.
Acquiring PRT using broker refresh token.
Requesting PRT from authority https://login.microsoftonline.com/<TenantID>/oauth2/v2.0/token
[MSAL] (Default accessor) Looking for token with aliases (
    "login.windows.net",
    "login.microsoftonline.com",
    "login.windows.net",
    "login.microsoft.com",
    "sts.windows.net"
), tenant (null), clientId (null), scopes (null)
[MSAL] Acquired PRT successfully!
Acquired PRT.
ADBrokerAcquirePRTInteractivelyAction completed. Continuing Broker Flow.
Beginning ADBrokerAcquireTokenWithPRTAction
Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
Resolved authority, validated: YES, error: 0
Handle silent PRT response Masked(not-null), error Masked(null)

//////////////////////////////////////////////////////////////////////////
//Provide Access Token received from Azure AD back to Client Application// 
//and complete authorization request                                    //
//////////////////////////////////////////////////////////////////////////
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm TenantID, clientID 08dc26ab-e050-465e-beb4-d3f2d66647a5, unique user ID dbb22b2f, target User.Read profile openid email
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: 4A07DFC2796FD75A27005238287F2505A86BA7BB9E6A00E16A8F077D47D6D879
payload: Masked(not-null)
Completed interactive SSO request.
Completed interactive SSO request.
Request complete
Completing SSO request...
Finished SSO request.

Neste ponto do fluxo de autenticação/autorização, o PRT foi inicializado e deve estar visível no acesso às chaves do macOS. Confira Verificando o acesso ao Keychain para PRT. O aplicativo de exemplo MSAL macOS usa o token de acesso recebido do agente de extensão de SSO da Microsoft para exibir as informações do usuário.

Em seguida, examine os Logs de credenciais do Microsoft Entra do lado do servidor com base na ID de correlação coletada dos logs da extensão de SSO do lado do cliente. Para obter mais informações, consulte Logs de credenciais no Microsoft Entra ID.

Exibir os logs de credenciais do Microsoft Entra por filtro de ID de correlação
  1. Abra as Credenciais do Microsoft Entra para o locatário em que o aplicativo está registrado.
  2. Selecione Credenciais do usuário (interativo).
  3. Selecione o botão de opção Adicionar Filtros e a ID de Correlação.
  4. Copie e cole a ID de correlação obtida dos logs de extensão de SSO e selecione Aplicar.

Para o fluxo de logon interativo da MSAL, esperamos ver credenciais interativas para o serviço do agente de autenticação da Microsoft. Esse evento é onde o usuário inseriu sua senha para inicializar o PRT.

Captura de tela que mostra as credenciais interativas do usuário do Microsoft Entra ID mostrando um logon interativo no serviço do agente de autenticação da Microsoft.

Também existem eventos de credenciais não interativas, devido ao fato de que o PRT é usado para adquirir o token de acesso para a solicitação do aplicativo cliente. Siga a Exibição de logs de credenciais do Microsoft Entra por filtro de ID de correlação, mas na etapa 2, selecione Credenciais de usuário (não interativas).

Captura de tela mostrando como a extensão de SSO usa o PRT para adquirir um token de acesso para o Microsoft Graph.

Atributo do log de credenciais Descrição
Aplicativo Nome de exibição do Registro do aplicativo no locatário do Microsoft Entra em que o aplicativo cliente é autenticado.
ID do aplicativo Também referenciado à ClientID do registro de aplicativo no locatário do Microsoft Entra.
Recurso O recurso da API ao qual o aplicativo cliente está tentando obter acesso. Neste exemplo, o recurso é a API do Microsoft Graph.
Tipo de token de entrada Um tipo de token de entrada de PRT (token de atualização principal) mostra o token de entrada sendo usado para obter um token de acesso para o recurso.
Agente de usuário A cadeia de caracteres do agente de usuário neste exemplo está mostrando que a extensão de SSO da Microsoft é o aplicativo que está processando essa solicitação. Um indicador útil de que a extensão de SSO está sendo usada e a solicitação de autenticação do agente está ocorrendo.
Biblioteca de autenticação de aplicativo do Microsoft Entra Quando um aplicativo MSAL está sendo usado, os detalhes da biblioteca e da plataforma são gravados aqui.
Informações de escopo do Oauth As informações de escopo Oauth2 solicitadas para o token de acesso. (User.Read,profile,openid,email).
MSAL nativa: passo a passo do fluxo silencioso

Após um período de tempo, o token de acesso não será mais válido. Portanto, se o usuário clicar novamente no botão Chamar o Microsoft API do Graph. A extensão de SSO tenta atualizar o token de acesso com o PRT já adquirido.

SSOExtensionLogs
/////////////////////////////////////////////////////////////////////////
//refresh operation: Assemble Request based on User information in PRT  /  
/////////////////////////////////////////////////////////////////////////
Beginning authorization request
Request does not need UI
Handling SSO request, requested operation: refresh
Handling silent SSO request...
Looking account up by home account ID dbb22b2f, displayable ID auth.placeholder-61945244__domainname.com
Account identifier used for request: Masked(not-null), auth.placeholder-61945244__domainname.com
Starting SSO broker request with payload: {
    authority = "https://login.microsoftonline.com/<TenantID>";
    "client_app_name" = MSALMacOS;
    "client_app_version" = "1.0";
    "client_id" = "08dc26ab-e050-465e-beb4-d3f2d66647a5";
    "client_version" = "1.1.7";
    "correlation_id" = "45418AF5-0901-4D2F-8C7D-E7C5838A977E";
    "extra_oidc_scopes" = "openid profile offline_access";
    "home_account_id" = "<UserObjectId>.<TenantID>";
    "instance_aware" = 0;
    "msg_protocol_ver" = 4;
    "provider_type" = "provider_aad_v2";
    "redirect_uri" = "msauth.com.microsoft.idnaace.MSALMacOS://auth";
    scope = "user.read";
    username = "auth.placeholder-61945244__domainname.com";
}
//////////////////////////////////////////
//Acquire Access Token with PRT silently//
//////////////////////////////////////////
Using request handler <ADSSOSilentBrokerRequestHandler: 0x127226a10>
Executing new request
Beginning ADBrokerAcquireTokenSilentAction
Beginning silent flow.
[MSAL] Resolving authority: Masked(not-null), upn: auth.placeholder-61945244__domainname.com
[MSAL] (Default cache) Removing credentials with type AccessToken, environment login.windows.net, realm <TenantID>, clientID 08dc26ab-e050-465e-beb4-d3f2d66647a5, unique user ID dbb22b2f, target User.Read profile openid email
[MSAL] (MSIDAccountCredentialCache) retrieving cached credentials using credential query
[MSAL] Silent controller with PRT finished with error Masked(null)
ADBrokerAcquireTokenWithPRTAction succeeded.
Composing broker response.
Sending broker response.
Returning to app (msauth.com.microsoft.idnaace.MSALMacOS://auth) - protocol version: 3
hash: 292FBF0D32D7EEDEB520098E44C0236BA94DDD481FAF847F7FF6D5CD141B943C
payload: Masked(not-null)
Completed silent SSO request.
Request complete
Completing SSO request...
Finished SSO request.

O exemplo de registro em log pode ser dividido em dois segmentos:

Segment Descrição
refresh O Agente manipula a solicitação para o Microsoft Entra ID:
- Manipulação de solicitação de SSO silenciosa...: indica uma solicitação silenciosa
- correlation_id: útil para fazer referência cruzada com os logs de credenciais do lado do servidor do Microsoft Entra
- escopo: escopo de permissão da API User.Read que está sendo solicitado do Microsoft Graph
- client_version: versão da MSAL em que o aplicativo está em execução
- redirect_uri: os aplicativos MSAL usam o formato msauth.com.<Bundle ID>://auth

A atualização tem diferenças notáveis no payload da solicitação:
- authority: Contém o ponto de extremidade da URL do locatário do Microsoft Entra em vez do ponto de extremidade comum
- home_account_id: mostra a conta de usuário no formato <UserObjectId>.< TenantID>
- username: formato UPN com hash auth.placeholder-XXXXXXXX__domainname.com
Atualizar PRT e adquirir token de acesso Essa operação revalida o PRT e o atualiza, se necessário, antes de retornar o token de acesso de volta ao aplicativo cliente de chamada.

Podemos usar novamente a ID de correlação obtida dos logs da Extensão de SSO do lado do cliente e fazer referência cruzada com os logs de credenciais do Microsoft Entra do lado do servidor.

Captura de tela que mostra a solicitação de logon silencioso do Microsoft Entra usando o plug-in do Agente de SSO do Enterprise.

As credenciais do Microsoft Entra mostram informações idênticas ao recurso do Microsoft Graph da operação de logon na seção de logon interativo anterior.

Fluxo de logon do aplicativo SSO de navegador/não MSAL

A seção a seguir explica como examinar os logs de extensão de SSO para o fluxo de autenticação do aplicativo de navegador/não MSAL. Para este exemplo, estamos usando o navegador Apple Safari como aplicativo cliente e o aplicativo está fazendo uma chamada para o aplicativo Web Office.com (OfficeHome).

Passo a passo do fluxo de SSO de navegador/não MSAL

As seguintes ações devem ocorrer para um logon bem-sucedido:

  1. Suponha que o usuário que já passou pelo processo de inicialização tenha um PRT existente.
  2. Em um dispositivo, com o agente de extensão de SSO da Microsoft implantado, os sinalizadores de recursos configurados são verificados para garantir que o aplicativo possa ser manipulado pela extensão de SSO.
  3. Como o navegador Safari adere à Pilha de Rede da Apple, a extensão de SSO tenta interceptar a solicitação de autenticação do Microsoft Entra.
  4. O PRT é usado para adquirir um token para o recurso que está sendo solicitado.
  5. Se o dispositivo estiver registrado no Microsoft Entra, ele passa a ID do dispositivo junto com a solicitação.
  6. A extensão de SSO preenche o cabeçalho da solicitação do navegador para entrar no recurso.

Os logs de extensão de SSO do lado do cliente a seguir mostram a solicitação sendo tratada de forma transparente pelo agente de extensão de SSO para atender à solicitação.

SSOExtensionLogs
Created Browser SSO request for bundle identifier com.apple.Safari, cookie SSO include-list (
), use cookie sso for this app 0, initiating origin https://www.office.com
Init MSIDKeychainTokenCache with keychainGroup: Masked(not-null)
[Browser SSO] Starting Browser SSO request for authority https://login.microsoftonline.com/common
[MSAL] (Default accessor) Found 1 tokens
[Browser SSO] Checking PRTs for deviceId 73796663
[MSAL] [Browser SSO] Executing without UI for authority https://login.microsoftonline.com/common, number of PRTs 1, device registered 1
[MSAL] [Browser SSO] Processing request with PRTs and correlation ID in headers (null), query 67b6a62f-6c5d-40f1-8440-a8edac7a1f87
[MSAL] Resolving authority: Masked(not-null), upn: Masked(null)
[MSAL] No cached preferred_network for authority
[MSAL] Caching AAD Environements
[MSAL] networkHost: login.microsoftonline.com, cacheHost: login.windows.net, aliases: login.microsoftonline.com, login.windows.net, login.microsoft.com, sts.windows.net
[MSAL] networkHost: login.partner.microsoftonline.cn, cacheHost: login.partner.microsoftonline.cn, aliases: login.partner.microsoftonline.cn, login.chinacloudapi.cn
[MSAL] networkHost: login.microsoftonline.de, cacheHost: login.microsoftonline.de, aliases: login.microsoftonline.de
[MSAL] networkHost: login.microsoftonline.us, cacheHost: login.microsoftonline.us, aliases: login.microsoftonline.us, login.usgovcloudapi.net
[MSAL] networkHost: login-us.microsoftonline.com, cacheHost: login-us.microsoftonline.com, aliases: login-us.microsoftonline.com
[MSAL] Resolved authority, validated: YES, error: 0
[MSAL] Found registration registered in login.microsoftonline.com, isSameAsRequestEnvironment: Yes
[MSAL] Passing device header in browser SSO for device id 43cfaf69-0f94-4d2e-a815-c103226c4c04
[MSAL] Adding SSO-cookie header with PRT Masked(not-null)
SSO extension cleared cookies before handling request 1
[Browser SSO] SSO response is successful 0
[MSAL] Keychain find status: 0
[MSAL] (Default accessor) Found 1 tokens
Request does not need UI
[MSAL] [Browser SSO] Checking PRTs for deviceId 73796663
Request complete
Componente do log de extensão de SSO Descrição
Solicitação de SSO do navegador criada Todas as solicitações de SSO de navegador/não MSAL começam com esta linha:
- identificador de pacote: ID do pacote: com.apple.Safari
- iniciando a origem: URL da Web que o navegador está acessando antes de acessar uma das URLs de logon para o Microsoft Entra ID (https://office.com)
Iniciando a solicitação de SSO do navegador para autoridade Resolve o número de PRTs e se o dispositivo está registrado:
https://login.microsoftonline.com/common, número de PRTs 1, dispositivo registrado 1
ID de Correlação [SSO do navegador] Solicitação de processamento com PRTs e ID de correlação em cabeçalhos (nulo), consulta <CorrelationID>. Essa ID é importante para fazer referência cruzada com os logs de credenciais do lado do servidor do Microsoft Entra
Registro de dispositivo Opcionalmente, se o dispositivo estiver registrado no Microsoft Entra, a extensão de SSO poderá passar o cabeçalho do dispositivo nas solicitações de SSO do navegador:
- Registro encontrado registrado em
- login.microsoftonline.com, isSameAsRequestEnvironment: Sim

Passando o cabeçalho do dispositivo no SSO do navegador para a ID do dispositivo43cfaf69-0f94-4d2e-a815-c103226c4c04

Em seguida, use a ID de correlação obtida dos logs de extensão de SSO do navegador para fazer referência cruzada aos logs de credenciais do Microsoft Entra.

Captura de tela que mostra a referência cruzada nos logs de credenciais do Microsoft Entra para a extensão de SSO do navegador.

Atributo do log de credenciais Descrição
Aplicativo Nome de exibição do Registro do aplicativo no locatário do Microsoft Entra em que o aplicativo cliente é autenticado. Neste exemplo, o nome de exibição é OfficeHome.
ID do aplicativo Também referenciado à ClientID do registro de aplicativo no locatário do Microsoft Entra.
Recurso O recurso da API ao qual o aplicativo cliente está tentando obter acesso. Neste exemplo, o recurso é o aplicativo Web OfficeHome.
Tipo de token de entrada Um tipo de token de entrada de PRT (token de atualização principal) mostra o token de entrada sendo usado para obter um token de acesso para o recurso.
Método de autenticação detectado Na guia Detalhes da Autenticação, o valor do Plug-in de SSO do Microsoft Entra é um indicador útil de que a extensão de SSO está sendo usada para facilitar a solicitação de SSO do navegador
Versão de extensão de SSO do Microsoft Entra Na guia Detalhes Adicionais, esse valor mostra a versão do aplicativo do agente da extensão de SSO do Microsoft Enterprise.
ID do Dispositivo Se o dispositivo estiver registrado, a extensão de SSO poderá passar a ID do dispositivo para lidar com solicitações de autenticação de dispositivo.
Sistema operacional Mostra o tipo de sistema operacional.
Em conformidade A extensão de SSO pode facilitar as políticas de conformidade passando o cabeçalho do dispositivo. Esses requisitos são:
- Registro de Dispositivo do Microsoft Entra
- Gerenciamento de MDM
- Intune ou Conformidade de Parceiro do Intune
Gerenciada Indica que o dispositivo está sob gerenciamento.
Tipo de junção macOS e iOS, se registrados, só podem ser do tipo: Registrados no Microsoft Entra.

Dica

Se você usar o Jamf Connect, é recomendável que siga as diretrizes mais recentes do Jamf sobre como integrar o Jamf Connect com o Microsoft entra ID. O padrão de integração recomendado garante que o Jamf Connect funcione corretamente com suas políticas de Acesso Condicional e com a Proteção do Microsoft Entra ID.

Próximas etapas