我对 OpenID 的理解是,它提供了一种方法让一个站点包含您所有的身份和外围信息,但让其他符合 OpenID(和用户信任)的站点重新使用该信息来识别和验证用户。从本质上讲,它最大限度地减少了用户在互联网上拥有的登录凭据(用户名和密码)的数量。
我对 OpenSSO 的理解是,它允许您登录到一个站点并自动登录到第一个站点信任的所有其他站点。从本质上讲,它最大限度地减少了用户必须登录这些不同站点的次数。
我对 OAuth 的理解是,它允许用户授予 3rd 方站点对其位于某个特定站点的信息的某些访问权限。本质上,就像 OpenSSO 一样,它最大限度地减少了用户必须登录这些不同站点的次数。与 OpenSSO 的不同之处在于,OpenSSO 一次将用户登录到所有参与站点(打开了完全权限),而 OAuth 授予对这些参与站点的更细粒度的访问权限。
所以,首先,如果我说的有什么不正确的地方,请先纠正我!
假设我或多或少是正确的,那么我对以下项目有以下问题/需要澄清:
- 我什么时候会选择 OpenSSO 而不是 OAuth - 就在我想限制其他参与站点在用户登录其中一个站点时的访问权限时?
- 我将不得不考虑并集成到我的应用程序中的每种技术的不同安全风险 - 或者它们本身是否被认为是安全的(基本上我可以放心,如果我的应用程序使用它们,我的应用程序不会开放任何新的攻击)?
由于这些技术密切相关,我很难在这里看到整个“森林穿过树木” - 在此先感谢!