我正在构建一个Web服务,用作网站中的api组件或其他人构建的应用程序。
我正在构建一组功能,我的客户可以在他们的网站上为他们的用户使用这些功能,但这些功能由我的应用程序提供。
其中一项服务是用户登录。我打算支持多种类型的登录,并在用户登录后为客户端应用程序提供用户令牌。因此客户端应用程序只需要实现一个登录界面,但是它们可以获得各种oauth2策略。
要使用google或facebook帐户进行此操作,他们必须为我的应用提供应用程序ID和密钥。在别人的网站上输入密钥,即使是与您自己的网站集成也是危险的。出于某种原因,他们称之为“秘密”密钥。
我找到了一个似乎正在做类似于我计划做的事情的网络服务: https://www.authic.com/documentation/google_oauth2
他们有一个客户帐户配置页面,用户输入oauth2凭据以代表客户端应用程序启用Authic oauth2登录页面。
使用此类服务需要注意哪些安全问题,客户端应用程序是否可以安全地使用此类服务?如果可以安全使用,安全使用需要什么?我认为执行oauth2界面的应用程序可以代表客户端应用程序执行其他操作,因为它有应用程序机密,并且客户端应用程序所有者必须相信这不会发生。
此策略的替代方案似乎是使用我自己的应用程序ID和oauth2,并将客户端应用程序重定向到我的应用程序的登录页面。然后,用户将看到带有应用程序徽标的oauth2权限页面,而不是他们打算登录的应用程序。