使用证书或 MSI 进行应用身份验证

可以使用基于证书或 MSI 的身份验证来验证机器人应用,而不是机器人 ID 和机密。 此身份验证解决了与使用Microsoft Entra ID和机器人机密相关的合规性问题。

先决条件

确保已将 Teams 机器人应用部署到 Azure,其中包含以下资源:

  • Azure 机器人。
  • 包含用于机器人身份验证的机密的 Entra ID。
  • 托管机器人应用的资源,例如Azure 应用服务Azure Functions。

若要更新机器人应用以使用基于证书的身份验证,请执行以下操作:

  1. 在 Azure AD 中创建和上传证书
  2. 更新机器人应用代码
  3. 删除机器人机密

在 Azure AD 中创建和上传证书

若要使用证书进行机器人身份验证,请执行以下操作:

  1. 准备证书和私钥。

  2. 转到Azure 门户

  3. 选择“应用注册”。

    屏幕截图显示用于选择应用注册的 Azure 服务。

  4. 选择已注册的应用。

  5. 在左窗格中的 “管理”下,选择“ 证书 & 机密”。

  6. “证书”下,选择“ 上传证书”。

    屏幕截图显示了“证书和机密”选项。

    此时会显示 “上传证书 ”窗口。

    注意

    使用以下文件类型之一上传证书 (公钥) :.cer、.pem、.crt。

  7. 上传你准备的证书。

  8. 输入 “说明”。

  9. 选择“添加”。

    屏幕截图显示了“上传证书”选项。

更新机器人应用代码

按照步骤更新机器人应用代码:

  1. 在 Visual Studio 或 Visual Studio Code 中打开机器人应用项目。

  2. 更新代码。

        const credentialsFactory = new ConfigurationServiceClientCredentialFactory({
        MicrosoftAppId: config.botId,
        CertificatePrivateKey: '{your private key}',
        CertificateThumbprint: '{your cert thumbprint}',
        MicrosoftAppType: "MultiTenant",
        });
    
        const botFrameworkAuthentication = new ConfigurationBotFrameworkAuthentication(
        {},
        credentialsFactory
        );
    
        const adapter = new CloudAdapter(botFrameworkAuthentication);
    
  3. 确保测试机器人以确认操作与更新的身份验证一致。

删除机器人机密

在删除机器人密码之前,请确保机器人应用使用证书进行身份验证。

删除机器人机密:

  1. 转到Azure 门户

  2. 选择“应用注册”。

    屏幕截图显示用于选择应用注册的 Azure 服务。

  3. 选择已注册的应用。

  4. 在左窗格中的 “管理”下,选择“ 证书 & 机密”。

  5. 从 Entra 中删除机密。

    屏幕截图显示删除客户端密码值。

机器人应用现在使用证书进行身份验证。

另请参阅