如何在休息电话中隐藏授权持有人?

how to hide authorization bearer in a rest call?

我们正在开发一个 Web 应用程序,它可以对 Office 365 进行休息调用。在此过程中,我们在提供必要的详细信息后从 Azure Active Directory 获得一个 app-only 访问令牌。使用此访问令牌,我们可以访问活动目录中存在的所有用户的资源,同时执行各种 outlook 操作(休息电话!!)。任何人都可以使用 fiddler 或其他 Web 等应用程序查看这些请求和响应 debuggers.This 是一个漏洞,任何可以使用公开可见的访问令牌的人都可以利用该漏洞对服务器进行调用。

可以用下面的图片把事情说清楚:-

我们很明显的问题是,如何避免这种情况以及如何保护我们的休息电话,必须采取访问令牌才能到达 office 365,否则无法执行操作?请帮忙!!

Anyone would be able to view these requests and responses using applications like fiddler or other web debuggers

是的,在本地机器上 - 但本地用户可能已通过身份验证才能执行此操作... 以同样的方式,当您在网站上提交付款表格时,您可以使用 Fiddler 在本地捕获您的信用卡信息...

调用是(或至少应该是)通过端到端加密的 HTTPS 进行的 - 因此人们 'sniffing' 网络看不到。

如果您担心您的用户可能滥用令牌这一事实,您可以做的一件事是让所有请求通过您的服务器路由,而不是直接从浏览器进行 REST API 调用。您可以随时将不记名令牌保存在服务器上。您的用户将调用您的 API,然后您的 API(在您的服务器上是 运行)将代表使用该令牌的用户调用 Office 365 API。

但是您需要考虑用户 authenticated/authorized 反对他们的 Office 365 并且令牌不允许他们执行任何他们不允许的操作的情况。他们根本无法获取该令牌并发出他们无权发布的任意请求。