【问题标题】:how to hide authorization bearer in a rest call?如何在休息呼叫中隐藏授权承载?
【发布时间】:2016-06-13 20:30:46
【问题描述】:

我们正在开发一个 web 应用程序,该应用程序对 office 365 进行休息调用。在此过程中,在提供必要的详细信息后,我们会从 azure 活动目录中获取一个仅限应用程序的访问令牌。使用此访问令牌,我们可以访问活动目录中存在的所有用户的资源,同时执行各种 Outlook 操作(休息调用!!)。任何人都可以使用 fiddler 或其他 Web 调试器等应用程序查看这些请求和响应。这是一个漏洞,任何可以使用公开可见的访问令牌的人都可以利用该漏洞调用服务器。

可以用下面的图片清楚地提出事情:-

我们明显的问题是,如何避免这种情况以及如何保护我们的休息呼叫,是否需要访问令牌才能到达 Office 365,否则无法执行操作?请帮忙!!

【问题讨论】:

  • 通过 SSL 拨打电话??
  • 您是否担心令牌被您的应用用户滥用或有人嗅探用户浏览器上的流量的可能性?
  • 嘿,你明白我的意思,我担心它会被我的应用程序的用户滥用!!

标签: rest azure oauth-2.0 office365 azure-active-directory


【解决方案1】:

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

但是,您需要考虑用户已针对其 Office 365 进行身份验证/授权的情况,并且令牌不允许他们执行任何不允许的操作。他们根本无法获取该令牌并发出任何他们没有权限的任意请求。

【讨论】:

    【解决方案2】:

    任何人都可以使用以下方式查看这些请求和响应 像提琴手或其他网络调试器这样的应用程序

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

    调用是(或至少应该是)通过 HTTPS 进行的,HTTPS 对其进行端到端加密 - 因此“嗅探”网络的人不会看到。

    【讨论】:

    • 感谢 alex 的回答,但我担心它会被我的应用程序的用户滥用!!
    • 另外:本地机器上的任何人都看不到它,但同一浏览器“中”的任何人都无法看到它,因此除非您的浏览器受到其他方的控制(这意味着您无法挽救)你很安全,令牌不会泄露给除你以外的任何人
    • 写。到评论:令牌允许用户检索他们有权获得的信息以及他们在浏览器中看到的信息;这不是问题;令牌为每个用户单独“限定”
    • 实际上,在我们的问题中,访问令牌对属于该活动目录的所有用户都有效!!(特定活动目录),dushyantgill.com/blog/2015/05/23/… 感谢您的帮助,尽管感谢它:D跨度>
    猜你喜欢
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 2011-10-31
    相关资源
    最近更新 更多