SSO do AAD para guias e extensão de mensagem
O SSO do AAD (logon único) do Azure Active Directory ajuda a autenticar usuários no Teams.
Principais aspectos do guia passo a passo do SSO do AAD para guias e extensões de mensagem:
- Após a primeira entrada, o SSO do AAD permite que o usuário entre automaticamente.
- Permite que o usuário entre em outros dispositivos sem inserir novamente as credenciais de entrada.
- Obtém o token para o usuário conectado.
Este guia passo a passo ajuda você a criar guias e extensões de mensagem que habilitam a autenticação de SSO do AAD. Você verá a seguinte saída:

Pré-requisitos
Instale as seguintes ferramentas e configure seu ambiente de desenvolvimento:
Microsoft Teams com conta válida
SDK do .NET Core versão 3.1
versão mais recente do ngrok (somente para teste de devbox) ou qualquer solução de túnel equivalente
Conta de desenvolvedor do Microsoft 365 ou acesso à conta do Teams com as permissões apropriadas para instalar um aplicativo
Observação
Depois de baixar o ngrok, inscreva-se e instale o authtoken.
Configurar o ambiente local
Clone Microsoft-Teams-Samples o repositório para o GitHub local:
Selecione Código.
No menu suspenso, selecione Abrir com o GitHub Desktop.

Selecione Clonar.
Criar e registrar seu bot no Azure AD portal
As etapas a seguir orientam você a:
- Crie um recurso de Bot do Azure para registrar o bot no Azure Serviço de Bot.
- Crie um segredo do cliente que habilite a autenticação de SSO do bot.
- Adicione o canal do Microsoft Teams para implantar o bot em um canal do Teams.
- Use o ngrok para criar um túnel para os pontos de extremidade do servidor Web.
- Adicione o ponto de extremidade de mensagens ao túnel ngrok que você criou.
Para criar um recurso de Bot do Azure
Vá para o Microsoft portal do Azure.
Selecione Criar um recurso.
Na caixa de pesquisa, insira o Bot do Azure.
Selecione Enter.
Selecione o Bot do Azure.
Selecionar Criar.
Insira o nome do identificador do bot necessário no identificador do Bot.
Selecione sua Assinatura na lista suspensa.
Na lista suspensa grupo de recursos, selecione o grupo de recursos existente. Você também pode criar um novo grupo de recursos (selecione Criar > insira o nome do recurso > selecione OK).

Na seção ID do Aplicativo da Microsoft , por padrão , a opção Criar nova ID de Aplicativo da Microsoft está selecionada.
Selecione Usar o registro de aplicativo existente e insira a ID do aplicativo existente e a senha do aplicativo existente para um aplicativo existente. Selecione Criar nova ID de Aplicativo da Microsoft para um novo aplicativo.
Observação
Não é possível criar mais de um bot com a mesma ID do Aplicativo da Microsoft.
Selecione Tipo de Aplicativo como
Multi Tenant.Selecione Rever + criar.

Se a validação for aprovada, selecione Criar.
Levará alguns minutos para o serviço de bot ser provisionado.
Selecione Vá para o recurso.

Seu bot do Azure é criado.

Para criar o segredo do cliente
Execute as seguintes etapas se você tiver criado uma nova ID de Aplicativo da Microsoft:
No painel esquerdo, selecione Configuração.
Dica
Salve a ID do Aplicativo da Microsoft ou a ID do Cliente para referência futura.
Ao lado da ID do Aplicativo da Microsoft, selecione Gerenciar.

Na seção Segredos do cliente , selecione Novo segredo do cliente.

A janela Adicionar um segredo do cliente é exibida.
Insira Descrição.
Selecione Adicionar.

Na coluna Valor , selecione Copiar para área de transferência.

Dica
Salve o valor de segredos do cliente ou a senha do aplicativo para referência futura.
Para adicionar o canal do Microsoft Teams
Selecione Início.

Selecione seu bot de recursos recentes.
Selecione Canais no painel esquerdo.
Selecionar o Microsoft Teams
.Marque a caixa de seleção para aceitar os Termos de Serviço.
Selecione Concordar.

Selecione Salvar.

Para criar um túnel para o servidor Web local
Use o ngrok para criar um túnel para os pontos de extremidade HTTPS disponíveis publicamente do servidor Web em execução localmente. Execute o seguinte comando no ngrok:
ngrok http -host-header=localhost 3978
Para adicionar o ponto de extremidade de mensagens
No ngrok, copie a URL HTTPS (https para io).

Observação
A URL HTTPS em seu ngrok é seu nome de domínio totalmente qualificado. É
WebAppDomainum nome de domínio totalmente qualificado que não incluihttps://nele.Em Configurações do bot do Azure que você criou, selecione Configuração.
No ponto de extremidade de Mensagens, use a URL HTTPS disponível no ngrok e, no final da URL, adicione /api/messages.

Selecione Aplicar.
Você configurou com êxito um bot no Azure Serviço de Bot.
Configurar o SSO para sua guia
Acesse o Portal do Azure.
Selecione Azure Active Directory.
Forme o painel esquerdo, selecione Registros de Aplicativo.
Selecione seu bot.
Selecione Expor uma API.
Selecione Definir.

Defina o URI da ID do Aplicativo na forma de
api://your ngrok/botid-{your AppID}.
Selecione Adicionar um escopo.
No painel exibido, insira como
access_as_usero nome do escopo.Definir Quem pode consentir? para
Admins and users.Para configurar os prompts de consentimento do administrador e do usuário com os valores apropriados para
access_as_usero escopo, forneça as seguintes informações nos campos:Insira
Teams can access the user’s profilecomo Administração de exibição de consentimento.Insira
Allows Teams to call the app’s web APIs as the current usercomo Administração de consentimento.Insira como
Teams can access the user profile and make requests on the user’s behalfnome de exibição de consentimento do usuário.Insira como
Enable Teams to call this app’s APIs with the same rights as the userdescrição de consentimento do usuário.
Verifique se o Estado está definido como Habilitado.
Selecione Adicionar escopo para salvar.

Observação
O nome do escopo deve corresponder ao URI da ID do Aplicativo
/access_as_usercom acrescentado no final.api://your ngrok/botid-00000000-0000-0000-0000-000000000000/access_as_user
Na seção Aplicativos cliente autorizados, identifique os aplicativos que você deseja autorizar para o aplicativo Web do seu aplicativo.
Selecione Adicionar um aplicativo cliente.
Insira cada uma das seguintes IDs de cliente e selecione o escopo autorizado:
1fec8e78-bce4-4aaf-ab1b-5451cc387264(Aplicativo móvel ou da área de trabalho do Teams)
5e3ce6c0-2b1f-4285-8d4b-75ee78787346(Aplicativo Web do Teams)
A imagem a seguir exibe a ID do Cliente:

No painel esquerdo, selecione Permissões de API.
Observação
Os usuários precisarão consentir com essas permissões somente se o Azure AD aplicativo estiver registrado em um locatário diferente.
Selecione Adicionar uma permissão.
Selecione Microsoft Graph.

Selecione Permissões delegadas.
Adicione as seguintes permissões:
- offline_access
- Openid
- profile
- User.Read
Selecione Adicionar permissões.
No painel esquerdo, selecione Autenticação para definir um URI de redirecionamento.
Observação
Se um aplicativo não receber consentimento do administrador de TI, os usuários deverão fornecer consentimento na primeira vez que usarem um aplicativo.
Selecione Adicionar uma plataforma.
Selecione Web.

Insira URIs de Redirecionamento como
https://token.botframework.com/.auth/web/redirect.Habilite a concessão implícita e os fluxos híbridos selecionando as seguintes caixas de seleção:
- Tokens de ID
- Tokens de acesso
Selecione Configurar.

Para atualizar o manifesto
Selecione Manifesto no painel esquerdo.
Verifique se o item de configuração está definido como "accessTokenAcceptedVersion": 2. Caso contrário, altere seu valor para 2 e selecione Salvar.
Dica
Se você já estiver testando seu bot no Teams, deverá sair do bot e sair do Teams. Em seguida, entre novamente para ver essa alteração.

Para configurar uma Serviço de Bot conexão
Vá para a página Configuração > Adicionar Configurações de Conexão OAuth.
Selecione Adicionar configurações de conexão OAuth.
Em Nova Configuração de Conexão, insira os seguintes detalhes:
Campo Valor ou descrição Nome Insira o nome da nova configuração de conexão. Você pode usar o nome nas configurações do código do serviço de bot. Provedor de Serviços Selecione O Azure Active Directory V2. ID do cliente Salvo anteriormente como sua ID de Aplicativo da Microsoft. Segredo do cliente Salvo anteriormente como Valor da ID do segredo do cliente. URL do Exchange de Tokens Use o URI da ID do Aplicativo obtido anteriormente ao expor o ponto de extremidade da API. ID do locatário Insira comum. Escopos Insira User.Read e adicione todos os Escopos selecionados ao especificar permissões para APIs downstream. Selecione Salvar.
Definir configurações de aplicativo
Navegue até appsettings.json no repositório clonado.

Abra appsettings.json no Visual Studio Code e atualize as seguintes informações:
- Defina
"MicrosoftAppId"como a ID do aplicativo Microsoft do bot. - Defina
"MicrosoftAppPassword"como o valor da ID do segredo do cliente do bot. - Defina
"DOMAIN-NAME"como a URL do ngrok. - Defina
"ConnectionName"como o nome da configuração de conexão OAuth. - Defina
"ClientId"como a ID do aplicativo Microsoft do bot. - Defina
"AppSecret"como o valor da ID do segredo do cliente do bot. - Definido
"ApplicationIdURI"na forma deapi://584f****.ngrok.io/botid-{AppID}.

- Defina
Configurar o arquivo de manifesto
Navegue até
manifest.jsono repositório clonado.
Abra
manifest.jsonno Visual Studio Code e faça as seguintes alterações:Substitua todas as ocorrências pelo
[DOMAIN-NAME]nome de domínio ngrok.Substitua todas as ocorrências pela
[YOUR-MICROSOFT-APP-ID]ID do aplicativo Microsoft do bot.Observação
Dependendo do cenário e
[YOUR-MICROSOFT-APP-ID]pode[DOMAIN-NAME]ocorrer várias vezes.Defina
"resource"comoapi://584f****.ngrok.io/botid-{AppID}.

Compilar e executar o serviço
Para compilar e executar o serviço usando o Visual Studio 2019 ou a linha de comando
Inicie o Visual Studio 2019.
Navegue até o projeto > /solução de > abertura de arquivo.

Selecione o arquivo Sample.csproj do SSO do aplicativo na pasta csharp .

Você verá a seguinte saída:

Pressione F5 para executar o projeto.
Selecione Sim se a caixa de diálogo a seguir for exibida:

Uma página da Web é aberta com uma mensagem Seu bot está pronto!

Carregar o aplicativo SSO no Teams
Em seu repositório clonado, navegue até csharp > exemplo de SSO do aplicativo > TeamsAppManifest.
Crie um .zip com os seguintes arquivos que estão presentes na pasta Manifesto :
- manifest.json
- icon-outline.png
- icon-color.png

Vá para o Microsoft Teams.
Selecione Repositório.
Selecione Gerenciar seus aplicativos.
Selecione Publicar um aplicativo.

Selecione Fazer o upload de um aplicativo personalizado.

Selecione Abrir para carregar o .zip arquivo criado na pasta Manifesto .

Selecione Adicionar.

Envie uma mensagem para o bot.
O bot executará o logon único e exibirá o cartão de perfil junto com o prompt de opção para exibir o token.

Selecione Sim para exibir token ou Não para continuar com o chat.

Se o SSO não for executado, o bot executará o método de autenticação padrão para sua guia.

Selecione reticências ... para abrir a extensão de mensagem.

Selecione seu novo aplicativo de SSO.

Selecione entrar.

Insira suas credenciais na caixa de entrada e selecione Avançar.

Selecione Aceitar.

Abra a extensão de mensagem e selecione seu aplicativo.
Selecione seu perfil na caixa de pesquisa. Você verá algo assim:

Envie
https://profile.botframework.compara o aplicativo para obter um cartão de perfil.
Desafio completo
Você conseguiu algo assim?

Parabéns!
Você concluiu o tutorial para começar a usar o SSO para aplicativo de extensão de mensagem e guia.
Tem algum problema com essa seção? Se tiver, envie seus comentários para que possamos melhorar esta seção.
