Habilitar logon único para o aplicativo do Teams

O Microsoft Teams fornece a função de logon único (SSO) para que um aplicativo obtenha o token de usuário do Teams conectado para acessar o Microsoft Graph e outras APIs. O Microsoft 365 Agents Toolkit (anteriormente conhecido como Teams Toolkit) simplifica o processo incorporando determinados fluxos de trabalho e integrações do Microsoft Entra em APIs diretas e de alto nível. Como resultado, você pode incorporar facilmente os recursos de SSO ao seu aplicativo do Teams. Para obter mais informações, consulte autenticar usuários no Microsoft Teams.

Configurações principais

Para habilitar o SSO, configure seu aplicativo Teams da seguinte maneira:

  • Manifesto do aplicativo Microsoft Entra: certifique-se de definir URIs, incluindo o URI que identifica o aplicativo de autenticação do Microsoft Entra e o URI de redirecionamento que retorna o token.

  • Manifesto do aplicativo Teams: conecte seu aplicativo SSO ao aplicativo Teams incorporando a configuração correta.

  • Configuração e arquivos de infraestrutura do Agents Toolkit: Certifique-se de que as configurações necessárias estejam em vigor para habilitar o SSO para seu aplicativo do Teams.

  • Informações do aplicativo SSO nos arquivos de configuração do Agents Toolkit: Verifique se o aplicativo de autenticação é registrado no serviço de back-end e se o Agents Toolkit o inicia durante a depuração ou visualização do aplicativo do Teams.

Criar manifesto do aplicativo Microsoft Entra

  1. Baixe o modelo de manifesto do aplicativo Microsoft Entra.

  2. Adicione o código do modelo de manifesto do aplicativo baixado ao ./aad.manifest.json arquivo. Isso permite que você personalize diferentes aspectos do registro do aplicativo e atualize o manifesto conforme necessário. Para obter mais informações, consulte o manifesto do aplicativo.

Atualizar manifesto do aplicativo Teams

No ./appPackages/manifest.json arquivo, adicione o seguinte código:

"webApplicationInfo": {
  "id": "${{AAD_APP_CLIENT_ID}}",
  "resource": "api://${{TAB_DOMAIN}}/${{AAD_APP_CLIENT_ID}}"
}

webApplicationInfofornece a ID do aplicativo Microsoft Entra e as informações do Microsoft Graph para ajudar os usuários a entrar no seu aplicativo.

Observação

Você pode usar {{ENV_NAME}} para fazer referência a variáveis no env/.env.{TEAMSFX_ENV} arquivo.

Arquivos de configuração do Kit de Ferramentas de Agentes de Atualização

  1. Localize os arquivos de configuração do Agents Toolkit, como ./m365agents.yml e ./m365agents.local.yml. Atualize as configurações necessárias relacionadas ao Microsoft Entra nesses arquivos.

  2. Adicione a ação em provision e ./m365agents.yml./m365agents.local.yml crie o aadApp/create novo aplicativo do Microsoft Entra usado para SSO:

    - uses: aadApp/create
      with:
        name: "YOUR_AAD_APP_NAME"
        generateClientSecret: true
        signInAudience: "AzureADMyOrg"
      writeToEnvironmentFile:
          clientId: AAD_APP_CLIENT_ID
          clientSecret: SECRET_AAD_APP_CLIENT_SECRET
          objectId: AAD_APP_OBJECT_ID
          tenantId: AAD_APP_TENANT_ID
          authority: AAD_APP_OAUTH_AUTHORITY
    

    Observação

    Substitua o name valor pelo nome desejado para o aplicativo do Teams.

    Para obter mais informações, consulte aadApp/create.

  3. Adicione a aadApp/update ação em provision e ./m365agents.yml./m365agents.local.yml para atualizar seu aplicativo Microsoft Entra:

    - uses: aadApp/update
      with:
        manifestPath: "./aad.manifest.json"
        outputFilePath: "./build/aad.manifest.${{TEAMSFX_ENV}}.json"
    

    Observação

    • Atualize o manifestPath valor para o caminho relativo do modelo aad.manifest.jsonde manifesto do aplicativo Microsoft Entra, se você alterou o caminho do arquivo.
    • Em uma configuração local, posicione o aad/update após a file/createOrUpdateEnvironmentFile ação. Isso é necessário porque aad/update usa a saída de file/createOrUpdateEnvironmentFile.

    Para obter mais informações, veja aadApp/update

  4. Para um projeto do React, atualize cli/runNpmCommand em deploy.

  5. Se você estiver criando um aplicativo de guia usando a estrutura do React na CLI, encontre a cli/runNpmCommand ação no build appm365agents.yml arquivo e adicione as seguintes variáveis de ambiente:

    env:
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    
  6. Se você estiver criando um aplicativo de guia com a estrutura do React, localize a file/createOrUpdateEnvironmentFile ação para implantação no m365agents.local.yml arquivo e adicione as seguintes variáveis de ambiente:

    envs:
      ...
      REACT_APP_CLIENT_ID: ${{AAD_APP_CLIENT_ID}}
      REACT_APP_START_LOGIN_PAGE_URL: ${{TAB_ENDPOINT}}/auth-start.html
    

Atualizar código-fonte

Com as alterações acima implementadas, seu ambiente está preparado. Agora você pode atualizar seu código para incorporar o SSO no aplicativo Teams.

Vanilla JavaScript

Para um aplicativo de guia que não usa o React, use o código a seguir como um exemplo básico para obter o token SSO:

function getSSOToken() {
  return new Promise((resolve, reject) => {
    microsoftTeams.authentication.getAuthToken()
      .then((token) => resolve(token))
      .catch((error) => reject("Error getting token: " + error));
  });
}

function getBasicUserInfo() {
  getSSOToken().then((ssoToken) => {
    const tokenObj = JSON.parse(window.atob(ssoToken.split(".")[1]));
    console.log(`username: ${tokenObj.name}`);
    console.log(`user email: ${tokenObj.preferred_username}`);
  });
}

Reagir

Para projetos do React, verifique se as seguintes variáveis de ambiente estão definidas no processo de implantação:

Para atualizar o código-fonte, siga estas etapas:

  1. Mova os auth-start.html arquivos auth/public and auth-end.html da pasta para a public/ pasta. Esses arquivos HTML servem ao propósito de lidar com redirecionamentos de autenticação.

  2. Mover sso pasta para src/sso/.auth/

    1. InitTeamsFx: Este arquivo executa uma função que inicializa o SDK do TeamsFx. Após a inicialização do SDK, o componente é aberto GetUserProfile .
    2. GetUserProfile: Este arquivo executa uma função para recuperar informações do usuário invocando a API do Graph.
  3. Importar e adicionar InitTeamsFxWelcome.*.

Para obter mais informações, consulte Aplicativo de guia SSO habilitado.


Depurar seu aplicativo

Para depurar seu aplicativo, selecione a tecla F5 . O Agents Toolkit usa o manifesto do Microsoft Entra para registrar um aplicativo habilitado para SSO. Para obter mais informações, consulte depurar seu aplicativo do Teams localmente.

Personalizar os aplicativos do Microsoft Entra

O manifesto do aplicativo Teams permite que você personalize diferentes aspectos do registro do aplicativo. Você pode atualizar o manifesto conforme necessário.

Para incluir permissões de API adicionais para acessar as APIs desejadas, consulte editar manifesto do Microsoft Entra.

Para exibir seu aplicativo Microsoft Entra no portal do Azure, consulte editar manifesto do Microsoft Entra.

Confira também