【问题标题】:How does OAuth2.0 security works in Mobile APPs ? What happens if client_id gets compromised?OAuth2.0 安全性如何在移动应用程序中发挥作用?如果 client_id 被泄露会发生什么?
【发布时间】:2016-02-24 01:34:52
【问题描述】:

Web 应用程序中的 OAuth 2.0 使用重定向 URI 工作,其中身份验证提供程序重定向到重定向 URI 并与开发人员在应用注册期间提供的已注册的 URI 验证相同,然后再使用访问令牌进行重定向。

如果是移动应用,由于没有指向移动应用的重定向 URI,它是如何工作的?

如果有人获得客户端 id,他们可以使用相同的方式来构建重复的应用程序吗?在上述情况下,安全性如何运作?

【问题讨论】:

    标签: redirect oauth-2.0 mobile-application


    【解决方案1】:

    由于移动应用无法保证client_secret 的机密性,它们可以使用不需要的授权类型。这是Implicit Grant。这个想法是使用response_type=token参数将移动浏览器重定向到授权端点:

    https://example.com/authorize?response_type=token&client_id=CLIENT_ID&redirect_uri=http://REDIRECT_URI
    

    根据身份提供者对用户进行身份验证后,浏览器将被重定向回授权请求中指定的redirect_uri,并传递访问令牌:

    http://REDIRECT_URI/#token=ACCESS_TOKEN
    

    然后,您可以在浏览器中拦截对这个特制 url 的请求(通过订阅在 url 更改时触发的相应事件),提取传递的访问令牌并使用此令牌发出经过身份验证的请求。

    如果有人获得客户端 id,他们可以使用相同的方式来构建重复的应用程序吗? 在上述情况下,安全性如何运作?

    OAuth 2 并非旨在保护您的应用程序的知识产权。它是一种身份验证协议。无论有没有它,任何人都可以复制您的应用程序。这个想法是,如果没有client_secret,应用程序将无法使用需要它的授权类型,并且通常会为颁发的访问令牌提供更多权限和范围。

    【讨论】:

      猜你喜欢
      • 2019-04-27
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多