代码之家  ›  专栏  ›  技术社区  ›  math

如何以及为什么在oauth2中保护客户机密

  •  0
  • math  · 技术社区  · 7 年前

    让我复制一些配置文件,我将用它来说明我的一般问题

    oauth2_client_id = clientId
    oauth2_client_secret = clientSecretToken
    oauth2_request_url = requestUrl
    oauth2_refresh_token = refreshToken
    type = IMAP
    remotehost = imap.gmail.com
    remoteuser = xyz@gmail.com
    remotepass = mailpasswd('gmail')
    

    据我所知,client_id是用来识别我的:)请求url只是我在谷歌网站上连接外部应用程序的一个点。刷新令牌用于生成实际的访问令牌。

    据我所知,客户端的秘密是应用程序和gmail之间的共享秘密,以使gmail确信正确的应用程序正在请求某些访问权限。

    问题 如果我正确理解了这一点,刷新令牌和客户端机密应该是“机密”。这是否意味着将这些信息放在这样的配置文件中是危险的?我们应该像密码一样加密它吗(例如gpg)?

    我在oauth2中不清楚的最后一点是:我是否正确理解我需要提供凭据(用户名/密码),因为oauth2基本上假设我已登录?

    公平地说,oauth2在高层所做的一切都是为了确保某个外部应用程序能够访问我的gmail。这是对特定应用程序特定数据的授权。但我仍然需要提供登录gmail的凭据。

    2 回复  |  直到 7 年前
        1
  •  1
  •   Andrei Dragotoniu    7 年前

    例如,假设您使用公共代码repo作为github,并将代码与正在使用的配置文件一起推送到那里。你刚刚向全世界暴露了你的秘密,我无法告诉你有多少人做过这样的事情。

    如果您的代码不是公共的,那么最好确保您的web服务器在直接请求时不提供配置文件。只要没有人可以访问它一旦整个事情是活的,你是安全的。

    哦,为了澄清刷新令牌是如何工作的。。。。它用于延长先前已过期或即将过期的令牌的寿命,因此您不必请求新令牌。

    这样想吧,ClientID是你的用户名,ClientSecret是你的密码。

        2
  •  1
  •   palasjir    7 年前