Bots 通过Azure bot服务对您的bot进行身份验证

Bots 通过Azure bot服务对您的bot进行身份验证,bots,azure-ad-graph-api,Bots,Azure Ad Graph Api,无法使用Azure AD身份验证为同一组织内的机器人授权多个用户 以下是我们尝试的步骤。 1.创建了一个office 365组织,以便成为Azure广告的管理员 通过在同一组织的Azure上的应用程序注册注册Azure AD应用程序,然后通过以下URL为该应用程序分配阅读电子邮件和日历的权限- 然后在azure下创建了web应用程序bot 然后在bot的[OAuth Connection Settings]设置下添加了Azure AD应用程序详细信息,首先根据Microsoft URL中的建议添

无法使用Azure AD身份验证为同一组织内的机器人授权多个用户

以下是我们尝试的步骤。 1.创建了一个office 365组织,以便成为Azure广告的管理员

  • 通过在同一组织的Azure上的应用程序注册注册Azure AD应用程序,然后通过以下URL为该应用程序分配阅读电子邮件和日历的权限-

  • 然后在azure下创建了web应用程序bot

  • 然后在bot的[OAuth Connection Settings]设置下添加了Azure AD应用程序详细信息,首先根据Microsoft URL中的建议添加为Azure AD V1.0

  • 使用项目的标准模板代码-Github示例代码库中的BotAuthenticationMsGraph-

  • 在示例代码中,我们只需要编辑appsettings.json文件来添加[ConnectionName、MicrosoftAppId、MicrosoftAppPassword]

  • 然后将本地bot代码发布到Azure上web应用程序bot的应用程序服务

  • 在Azure上的[Test in Web Chat]上测试了机器人身份验证——它适用于我的Azure广告

  • 然后为bot启用Directline通道,并将bot分发给同一组织的其他用户

  • 问题就在这里——当其他用户打开bot时,他们可以看到最初登录的管理员用户的电子邮件和日历。因此,当其他用户注销并通过其广告凭证登录时,从那时起,只有他的电子邮件和日历数据可用

  • 问题-因此,在给定的时间点,只有一个用户的o365数据在bot聊天中全局可见,而不是登录该会话的单个用户的数据。AD令牌不是每个用户会话,而是所有会话的通用令牌

    当我使用Azure AD V2时,我在尝试登录时收到错误的请求

    请帮忙。谢谢

    使用了BotAuthenticationMsgraph项目


    预期的是,每个用户都应该能够单独登录,并且只有他的数据才能在bot对话中清晰可见。

    我已经测试了示例代码,它在Azure AD V1和V2上都可以正常工作

    我按照下面的步骤来配置它。不要忘记为范围输入
    Mail.Read Mail.Send openid profile User.readuser.ReadBasic.All
    。它与Azure AD V1不同。否则,它将在尝试登录时返回400个错误请求

    我没有复制第一期。你能告诉其他用户在哪里打开bot吗?来自“网络聊天测试”


    更新

    您需要知道,您正在处理两个用户身份:

    • 频道中用户的标识
    • bot所在的身份提供程序中的用户身份 对……感兴趣
    看。当bot要求通道中的用户a登录到身份提供商P时,登录过程必须确保用户a是登录到P的用户。如果允许另一个用户B登录,则用户a将通过bot访问用户B的资源

    要启用保护,您需要配置受信任的来源和防篡改的用户ID

    你可以参考


    本博客提供了更详细的信息。

    首先,感谢您的回复。是的,我还添加了广告V2的作用域,不过我会再次试一试,看看效果如何。。。接下来回答您的问题,对于其他用户,以下是我如何使bot可用。1。在Bot中添加Auth设置后,2。然后我为那个机器人启用Directline频道,因为某些原因webchat无法工作。3.然后在自定义网站上使用以下脚本发布bot,下面是脚本标记,我在其中使用directline机密和botname。(以下单独注释)var模型={“userId”:“You”,“userName”:“You”,“botId”:“Alfred”,“boticonur”:“//bot framework.azureedge.net/bot-icons-v1/bot framework default.png”,“botName”:“MyBotName”,“secret”:************************************************************************************************************************************,“/bot framework.azureedge.net/bot-icons-v1/bot framework default.png”,“directLineUrl:”,“webSocketEnabled:“true”,“SpeechEndpoint:”,“speechEnabled:“false”,“cssUrl:/css/bot.chat”,“css”cssFullWindowUrl:“/css/botchat-fullwindow.css”,“botChatJavaScriptUrl:”/scripts/botchat.js“,};