Botframework 在MS Team客户端上内部无法访问托管的映像
我们已经在公司团队中启用了Bot框架应用程序,我们希望使用Botframework 在MS Team客户端上内部无法访问托管的映像,botframework,microsoft-teams,Botframework,Microsoft Teams,我们已经在公司团队中启用了Bot框架应用程序,我们希望使用AdaptiveCards向用户展示丰富的内容。例如,我们正在发送AdaptiveImage,其中包含指向公司图像存储的url 示例代码: new AdaptiveImage { Size = AdaptiveImageSize.Small, Url = new Uri("https://corporate-storage.com/images/image1.png"), // This is image not host
AdaptiveCards
向用户展示丰富的内容。例如,我们正在发送AdaptiveImage
,其中包含指向公司图像存储的url
示例代码:
new AdaptiveImage
{
Size = AdaptiveImageSize.Small,
Url = new Uri("https://corporate-storage.com/images/image1.png"), // This is image not hosted publicly.
AltText = "Some text"
}
这在WebChat客户端中运行良好,因为url只是附加到img
HTML标记的src
属性中。然而,在MS团队中,它似乎被一些奇怪的代理/MITM预处理,url结果是:
https://urlp.asm.skype.com/v1/url/content?url=https%3a%2f%2fcorporate-proxy.com%2fimages%2fimage1.png
当我们试图浏览url以查看图片未呈现的位置时,我们会在调试器中看到带有502响应代码的空页面
是否有一种方法可以强制MS团队不更改图片的属性。要在自适应卡中渲染图像,必须将其托管在公共内容交付网络(CDN)中。给你 它在WebChat客户端中工作,因为在浏览器中,您的身份验证已经被缓存,而在Teams应用程序中没有缓存,并且图像需要身份验证
您需要将映像托管在公共域或Azure Blob存储中才能使其正常工作 尽管我无法回答您的问题,但值得注意的是,我怀疑他们正在对图像进行安全扫描、缓存和CDN分发,因此总体而言,这对我们有利,而不是不利。您不能在公司网络之外托管图像吗?也许是Azure Blob存储?在CDN中托管图片的问题是,我必须在特定的用例中呈现用户的化身,正如您已经想象到的,这些用户(图片)的数量相当大。接下来,由于我们的机器人托管在Azure中,我无法连接到本地网络来访问图片并将其上传到CND-即使使用gateway,这也不会得到我们安全部门的批准。我希望我可以简单地将我们的机器人标记为可信,以防止OOB代理。奇怪的是,微软在prem communicator上推荐团队,但你们不能在prem上共享内容。。。