Excel Azure Active Directory-为什么没有注册的浏览器可以进行身份验证,而不是第一方应用程序?

Excel Azure Active Directory-为什么没有注册的浏览器可以进行身份验证,而不是第一方应用程序?,excel,authentication,asp.net-web-api,azure-active-directory,Excel,Authentication,Asp.net Web Api,Azure Active Directory,我们已设置Windows azure active Directory以保护Web API。 WebAPI公开了一个OData3端点,它工作得很好。 现在,我正在尝试使用Excel连接到此odata端点。它不起作用。我还找到了答案,例如,在这个堆栈溢出帖子上: 基本上,问题是: AAD不支持第三方的第一方客户端(PowerQuery) 今天进行服务(您的服务)身份验证。但希望很快 :)也许就在你做完剩下的事情的时候:) 好的,我知道如果你想访问受AAD保护的web api或web应用程序,你需

我们已设置Windows azure active Directory以保护Web API。 WebAPI公开了一个OData3端点,它工作得很好。 现在,我正在尝试使用Excel连接到此odata端点。它不起作用。我还找到了答案,例如,在这个堆栈溢出帖子上:

基本上,问题是:

AAD不支持第三方的第一方客户端(PowerQuery) 今天进行服务(您的服务)身份验证。但希望很快 :)也许就在你做完剩下的事情的时候:)

好的,我知道如果你想访问受AAD保护的web api或web应用程序,你需要在Azure Active Directory中注册任何客户端应用程序。 但我真正不明白的是: 使用任何浏览器,我都可以对受保护的资源进行身份验证?为什么这样做,我的意思是我没有注册浏览器,但他们实际上只是一个客户端!?我可以使用任何浏览器对我的服务进行身份验证,但使用Excel它无法工作。为什么?也许我搞砸了一些事情,但一些解释对解决我的节点非常有帮助:)

先谢谢你 最好的
Laurin

原因是,虽然本地客户端在令牌获取流期间拥有一个身份,但是浏览器没有。浏览器只是一个渲染引擎,使与用户的交互成为可能,但协议交互中没有识别浏览器的内容。在这种情况下,真正的客户机是在每次请求时执行的服务器代码。一般的想法是,尽管应用程序可以独立运行,即使用户不在场,但浏览器并非如此-浏览器只是用户手中的工具(因此称为用户代理),一旦用户离开,所有活动都停止。
不幸的是,当前的限制不是你可以解决的——简而言之,Azure AD中的Excel条目无法更新,无法将每个第三方服务作为请求的资源列出。主要的解决方法是注册你自己的客户机,在这种情况下你可以自由地列出你想要的任何服务,但是把东西插回现有的客户机是很困难的。很抱歉我们正在努力解决这个问题,但我现在没有时间表。

您好,vibronet。非常感谢您的回复!好的,但从安全角度来看,我并不清楚这一点。我的意思是任何客户端都可以模拟浏览器,对吗?(例如,win forms应用程序打开浏览器,让用户登录并提取令牌,就像ADAL那样)。因此,注册或不注册客户端是不安全的。AAD如何确定它是已注册的客户端还是浏览器?只是通过检查用户代理?那么,为什么需要这种客户机注册,如果最终不安全,那么在这背后有什么考虑?对不起,我还是一团糟:-)嗨,Vibranet:)如果你有时间的话,我的评论的答案会非常好!!:)浏览器流仅为您提供一个用于在网站中签名的idtoken,该令牌不允许您调用web API,因为它缺少密钥声明(作用域)。它不是指你实际使用的手段(应用或浏览器),而是指目录中记录的权限(clientid可以调用什么)以及获取这些令牌(应用凭据、用户凭据…)所需的内容。如果目录中没有表示某个客户端可以获取某个资源的令牌的委托条目,那么无论您使用的是应用程序、浏览器还是fiddler,都不会产生可行的令牌。