Compartilhar via


Ativar o SSO para extensões de mensagens baseadas em API

O método de autenticação de início de sessão único (SSO) para a extensão de mensagens baseada em API utiliza a identidade do Teams de um utilizador da aplicação para lhes fornecer acesso à sua aplicação. Um utilizador que tenha sessão iniciada no Teams não precisa de iniciar sessão novamente na sua aplicação no ambiente do Teams. Microsoft Entra SSO permite que a aplicação obtenha automaticamente um token de utilizador que é emitido para o respetivo recurso por Microsoft Entra. Em seguida, a aplicação pode autenticar este token e obter as informações do perfil de utilizador sem o consentimento do utilizador.

Pré-requisitos

Antes de começar, certifique-se de que tem o seguinte:

  • Uma conta do Azure com uma subscrição ativa.
  • Conhecimentos básicos sobre Microsoft Entra ID e desenvolvimento de aplicações do Teams.

A imagem seguinte mostra como o SSO funciona quando um utilizador da aplicação Teams tenta aceder à aplicação de extensão de mensagens baseada em API:

Captura de ecrã a mostrar como funciona Microsoft Entra autorização de SSO para autenticar a extensão de mensagens baseada em API.

  • O utilizador invoca a aplicação de extensão de mensagens baseada em API no Teams e invoca um comando que requer autenticação.
  • A aplicação envia um pedido para o serviço de back-end do Teams com o ID da aplicação e o âmbito necessário (access_as_user).
  • O serviço de back-end do Teams verifica se o utilizador deu consentimento à aplicação e ao âmbito. Caso contrário, mostra um ecrã de consentimento ao utilizador.
  • Se o utilizador consentir, Microsoft Entra gera um token de acesso para o utilizador e a aplicação e envia-o para a aplicação no cabeçalho de autorização do pedido.
  • A aplicação valida o token e extrai as informações do utilizador do token, como o nome, o e-mail e o ID do objeto.
  • Após a autenticação bem-sucedida, é concedido ao utilizador acesso à extensão de mensagens baseada em API.

Para ativar a autenticação SSO para a extensão de mensagens baseada em API, siga estes passos:

Registar uma nova aplicação no Microsoft Entra ID

  1. No navegador da Web, vá para o Portal do Azure.

  2. Selecione o ícone Registros de aplicativo.

    Captura de ecrã a mostrar a página centro de administração do Microsoft Entra.

    A página Registros de aplicativo é exibida.

  3. Selecione o ícone + Novo registro.

    Captura de ecrã a mostrar a nova página de registo no centro de administração do Microsoft Entra.

    A página Registrar um aplicativo é exibida.

  4. Insira o nome do aplicativo que você deseja exibir para o usuário do aplicativo. Se quiser, pode alterar o nome numa fase posterior.

    Captura de ecrã a mostrar a página de registo de aplicações no centro de administração do Microsoft Entra.

  5. Selecione o tipo de conta de usuário que pode acessar seu aplicativo. Pode selecionar a partir de opções individuais ou multi-inquilinos em diretórios organizacionais ou restringir o acesso apenas a contas Microsoft pessoais.

    Opções para tipos de conta suportados
    Opção Selecione essa opção para...
    Contas apenas neste diretório organizacional (apenas Microsoft - Inquilino único) Crie um aplicativo para uso somente por usuários (ou convidados) em seu locatário.
    Muitas vezes denominada aplicação personalizada criada para a sua organização (aplicação LOB), esta aplicação é uma aplicação de inquilino único no plataforma de identidade da Microsoft.
    Contas em qualquer diretório organizacional (qualquer inquilino Microsoft Entra ID - Multi-inquilino) Permitir que os utilizadores em qualquer inquilino Microsoft Entra utilizem a sua aplicação. Esta opção é adequada se, por exemplo, estiver a criar uma aplicação SaaS e pretender disponibilizá-la a várias organizações.
    Este tipo de aplicação é conhecido como uma aplicação multi-inquilino na plataforma de identidade da Microsoft.
    Contas em qualquer diretório organizacional (qualquer Microsoft Entra ID inquilino - Multi-inquilino) e contas Microsoft pessoais (por exemplo, Skype, Xbox) Destina-se ao conjunto mais amplo de clientes.
    Ao selecionar esta opção, está a registar uma aplicação multi-inquilino que também pode suportar utilizadores de aplicações que tenham contas Microsoft pessoais.
    Contas pessoais da Microsoft Crie um aplicativo somente para usuários que têm contas pessoais da Microsoft.

    Observação

    Não precisa de introduzir o URI de Redirecionamento para ativar o SSO para uma aplicação de extensão de mensagens baseada em API.

  6. Selecione Registrar. Uma mensagem é exibida no navegador informando que o aplicativo foi criado.

    Captura de ecrã a mostrar um exemplo da notificação após o registo da aplicação ter sido efetuado com êxito no portal do Azure.

    É apresentada a página com o ID da aplicação e outros detalhes da aplicação.

    Captura de ecrã a mostrar a página de detalhes da aplicação no portal do Azure.

  7. Anote e guarde o ID da aplicação do ID da Aplicação (cliente) para atualizar o manifesto da aplicação mais tarde.

    A sua aplicação está registada no Microsoft Entra ID. Tem agora o ID da aplicação para a sua aplicação de extensão de mensagens baseada em API.

Configurar o escopo para o token de acesso

Depois de criar um novo registo de aplicações, configure as opções de âmbito (permissão) para enviar o token de acesso para o cliente do Teams e autorizar aplicações cliente fidedignas para ativar o SSO.

Para configurar o âmbito e autorizar aplicações cliente fidedignas, tem de:

  • Adicionar URI do ID da Aplicação: configure as opções de âmbito (permissão) para a sua aplicação. Expor uma API Web e configurar o URI do ID da aplicação.
  • Configurar o âmbito da API: defina o âmbito da API e os utilizadores que podem consentir um âmbito. Você pode permitir que somente administradores forneçam consentimento para permissões com privilégios mais altos.
  • Configurar a aplicação cliente autorizada: crie IDs de cliente autorizados para aplicações que pretende pré-autorizar. Isso permite que o usuário do aplicativo acesse os escopos do aplicativo (permissões) que você configurou, sem a necessidade de qualquer consentimento adicional. Pré-autorizar apenas as aplicações cliente nas quais confia, uma vez que os utilizadores da sua aplicação não têm a oportunidade de recusar o consentimento.

URI da ID do Aplicativo

  1. Selecione Gerenciar>Expor uma API no painel esquerdo.

    A página Expor uma API é exibida.

  2. Selecione Adicionar para gerar o URI do ID da aplicação sob a forma de api://{AppID}.

    Captura de ecrã a mostrar como definir o URI do ID da aplicação.

    É apresentada a secção para definir o URI do ID da aplicação.

  3. Introduza o URI do ID da Aplicação no formato explicado aqui.

    Captura de ecrã a mostrar o URI do ID da Aplicação no Microsoft Entra ID.

    • O URI do ID da Aplicação está pré-preenchido com o ID da aplicação (GUID) no formato api://{AppID}.
    • O formato URI do ID da aplicação tem de ser: api://fully-qualified-domain-name.com/{AppID}.
    • Insira fully-qualified-domain-name.com entre api:// e {AppID} (ou seja, a GUID). Por exemplo, api://example.com/{AppID}.

    Importante

    • Se estiver a criar um bot autónomo, introduza o URI do ID da aplicação como api://botid-{YourBotId}. Aqui, {YourBotId} é o seu ID de aplicação Microsoft Entra.
    • Se estiver a criar uma aplicação com um bot, uma extensão de mensagem e um separador, introduza o URI do ID da aplicação como api://fully-qualified-domain-name.com/botid-{YourClientId}, em que {YourClientId} é o ID da aplicação de bot.
    • Se estiver a criar uma aplicação com uma extensão de mensagem ou capacidades de separador sem o bot, introduza o URI do ID da aplicação como api://fully-qualified-domain-name.com/{YourClientId}, em que {YourClientId} é o seu ID de aplicação Microsoft Entra.
    • URI do ID da Aplicação para a aplicação com múltiplas capacidades: se estiver a criar uma extensão de mensagem baseada em API, introduza o URI do ID da aplicação como api://fully-qualified-domain-name.com/{YourClientId}, em que {YourClientId} é o seu ID de aplicação Microsoft Entra.
    • Formato do nome de domínio: utilize apenas letras minúsculas para o nome de domínio.
  4. Selecione Salvar.

    É apresentada uma mensagem no browser a indicar que o URI do ID da aplicação foi atualizado.

    Captura de ecrã a mostrar a mensagem do URI do ID da aplicação.

    O URI do ID da aplicação é apresentado na página.

    Captura de ecrã a mostrar o URI do ID da aplicação atualizado.

  5. Anote e guarde o URI do ID da aplicação para atualizar o manifesto da aplicação mais tarde.

Configurar o âmbito da API

Observação

  • A extensão de mensagens baseada em API suporta apenas o âmbito de access_as_user .
  • A API recebe um token de acesso Microsoft Entra com o âmbito definido access_as_user como registado no portal do Azure. No entanto, o token não está autorizado a chamar outras APIs a jusante, como o Microsoft Graph.
  1. Selecione + Adicionar um escopo nos Escopos definidos por esta seção de API.

    Captura de ecrã a mostrar a opção selecionar âmbito.

    A página Adicionar um escopo é exibida.

  2. Insira os detalhes para configurar o escopo.

    A captura de ecrã mostra como adicionar detalhes de âmbito no Azure.

    1. Insira o nome do escopo. Este campo é obrigatório.
    2. Selecione o usuário que pode dar consentimento para este escopo. A opção padrão é Somente administradores.
    3. Insira o Nome de exibição de consentimento do administrador. Este campo é obrigatório.
    4. Insira a descrição do consentimento do administrador. Este campo é obrigatório.
    5. Insira o Nome de exibição do consentimento do usuário.
    6. Insira a descrição para o consentimento do usuário.
    7. Selecione a opção Habilitado para o estado.
    8. Selecione Adicionar escopo.

    Uma mensagem é exibida no navegador informando que o escopo foi adicionado.

    Captura de ecrã a mostrar a mensagem de âmbito adicionado.

    O novo escopo que você definiu é exibido na página.

    Captura de ecrã a mostrar um exemplo do âmbito adicionado à aplicação no portal do Azure.

Configurar a aplicação cliente autorizada

  1. Percorra a página Expor uma API para a secção Aplicação cliente autorizada e selecione + Adicionar uma aplicação cliente.

    Captura de ecrã a mostrar a aplicação cliente autorizada.

    A página Adicionar um aplicativo cliente será exibida.

  2. Introduza o ID de cliente do Microsoft 365 adequado para as aplicações que pretende autorizar para a aplicação Web da sua aplicação.

    Captura de ecrã a mostrar a opção ID de Cliente e Âmbitos autorizados para adicionar uma aplicação cliente à aplicação no portal do Azure. Adicionar uma aplicação cliente

    Observação

    Os IDs de cliente do Microsoft 365 para aplicações móveis, de ambiente de trabalho e Web para o Teams são os IDs reais que tem de adicionar.

    1. Selecione um dos seguintes IDs de cliente:

      Usar a ID do cliente Para autorizar...
      1fec8e78-bce4-4aaf-ab1b-5451cc387264 Aplicação teams para dispositivos móveis ou de ambiente de trabalho
      5e3ce6c0-2b1f-4285-8d4b-75ee78787346 Aplicativo web do Teams
    2. Selecione o URI do ID da aplicação que criou para a sua aplicação em Âmbitos autorizados para adicionar o âmbito à API Web que expôs.

    3. Selecione Adicionar aplicativo.

      Uma mensagem é exibida no navegador informando que o aplicativo cliente autorizado foi adicionado.

      Captura de ecrã a mostrar a mensagem adicionada à aplicação cliente.

      O ID de cliente da aplicação autorizada é apresentado na página.

      Captura de ecrã a mostrar a aplicação cliente adicionada.

Observação

Você pode autorizar mais de um aplicativo cliente. Repita as etapas deste procedimento para configurar outro aplicativo cliente autorizado.

Configurou com êxito o âmbito da aplicação, as permissões e as aplicações cliente. Certifique-se de que anota e guarda o URI do ID da aplicação. Em seguida, configure a versão do token de acesso.

Autenticar token

Quando a extensão de mensagem chama a API durante a autenticação, recebe um pedido com o token de acesso do utilizador. Em seguida, a extensão da mensagem adiciona o token no cabeçalho de autorização do pedido HTTP de saída. O formato do cabeçalho é Authorization: Bearer <token_value>. Por exemplo, quando uma extensão de mensagem faz uma chamada à API para um serviço que requer autenticação. A extensão cria um pedido HTTP da seguinte forma:

GET /api/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Depois de a extensão de mensagem baseada em API receber um cabeçalho de pedido com token, execute os seguintes passos:

  • Autenticar: verifique o token para a audiência, âmbito, emissor e afirmações de assinatura para marcar se o token for para a sua aplicação. Para obter mais afirmações, veja Afirmações de tokens de ID.

    O exemplo seguinte mostra o JSON Web Token (JWT) com um cabeçalho e uma resposta:

    {
    "typ": "JWT",
    "rh": "0.AhoAv4j5cvGGr0GRqy180BHbR6Rnn7s7iddIqxdA7UZsDxYaABY.",
    "alg": "RS256",
    "kid": "q-23falevZhhD3hm9CQbkP5MQyU"
    }.{
      "aud": "00000002-0000-0000-c000-000000000000",
      "iss": "https://login.microsoftonline.com/72f988bf-86f1-41af-91ab-2d7cd011db47/v2.0",
      "iat": 1712509315,
      "nbf": 1712509315,
      "exp": 1712513961,
      "aio": "Y2NgYEjJqF0stqv73u41a6ZmxPEvBgA=",
      "azp": "1fec8e78-bce4-4aaf-ab1b-5451cc387264",
      "azpacr": "0",
      "name": "John Doe",
      "oid": "00000000-0000-0000-0000-000000000000",
      "preferred_username": "john.doe@contoso.com",
      "rh": "I",
      "scp": "access_as_user",
      "sub": "e4uM7JgAEm08GBuasSltQjvPuMX1fR5TqxopJpqZJB8",
      "tid": "12345678-aaaa-bbbb-cccc-9876543210ab",
      "uti": "h7DMQwSPAEeiEe62JJUGAA",
      "ver": "2.0"
      }
    
  • Utilize o token: extraia as informações do utilizador do token, como o nome, o e-mail e o ID do objeto, e utilize o token para chamar a própria API da extensão de mensagem. Para obter mais informações sobre a referência de afirmações com detalhes sobre as afirmações incluídas nos tokens de acesso, veja Afirmações de tokens de acesso.

Atualizar manifesto do aplicativo

Atualize as seguintes propriedades no ficheiro de manifesto da aplicação:

  • webApplicationInfo: a webApplicationInfo propriedade é utilizada para ativar o SSO para a sua aplicação para ajudar os utilizadores da aplicação a acederem facilmente à sua aplicação de extensão de mensagens baseada em API. O URI do ID da aplicação que registou no Microsoft Entra ID está configurado com o âmbito da API que expôs. Para obter mais informações, consulte webApplicationInfo.

       Captura de ecrã a mostrar a configuração do manifesto da aplicação.

  • microsoftEntraConfiguration: ativa a autenticação SSO para a sua aplicação. Configure a supportsSingleSignOn propriedade para true para suportar o SSO e reduzir a necessidade de várias autenticações. Se a propriedade estiver definida como false ou ficar vazia, o utilizador não poderá carregar a aplicação para o Teams e a aplicação falhará a validação.

Para configurar o manifesto da aplicação:

  1. Abra a aplicação de extensão de mensagens baseada em API.

  2. Abra a pasta de manifesto da aplicação.

    Observação

  3. Abra o arquivo manifest.json.

  4. Adicione o fragmento de código seguinte à webApplicationInfo secção do ficheiro de manifesto da aplicação:

    "webApplicationInfo":
    {
    "id": "{Microsoft Entra AppId}",
    "resource": "api://subdomain.example.com/{Microsoft Entra AppId}"
    }
    

    Em que:

    • {Microsoft Entra AppId}é o ID da aplicação que criou quando registou a sua aplicação no Microsoft Entra ID. É o GUID.
    • api://subdomain.example.com/{Microsoft Entra AppId}é o URI do ID da aplicação que registou ao criar o âmbito no Microsoft Entra ID.
  5. Adicione o fragmento de código seguinte à composeExtensions secção do ficheiro de manifesto da aplicação:

    "authorization": {
      "authType": "microsoftEntra",
      “microsoftEntraConfiguration”: {
        “supportsSingleSignOn”: true
      }
    },
    
  6. Guarde o ficheiro de manifesto da aplicação.

Parabéns! Ativou o SSO para as extensões de mensagens baseadas em API.

Confira também