使用OAuth 2.0协议进行身份验证
概述 overview
尽管SAML仍然是美国MVPD和一般企业用于身份验证的主要协议,但是向OAuth 2.0迁移作为主要身份验证协议的趋势是明显的。 OAuth 2.0协议(https://tools.ietf.org/html/rfc6749)主要针对消费者网站开发,并很快被Facebook、Google和Twitter等互联网巨头采用。
OAuth 2.0非常成功,这促使企业缓慢地升级其基础架构以支持它。
迁移到OAuth 2.0的优势 adv-oauth2
从较高层面来看,OAuth 2.0协议提供了与SAML协议相同的功能,但有一些重要的区别。
其中之一是刷新令牌流可用于作为后台刷新身份验证的方式。 这允许IdP(本例中为MVPD)在保持良好用户体验的同时保持控制,因为出于安全考虑,用户不再需要经常登录。
协议还提供了更大的灵活性,因为服务提供商现在可以使用令牌访问其他API以获取额外信息。 这进而为TVE用例生成“聊天层”协议,但它允许具有复杂工作流所需的灵活性。
切换到OAuth 2.0的要求 oauth-req
要支持使用OAuth 2.0进行身份验证,MVPD需要满足以下先决条件:
首先,MVPD必须确保它支持 授权码授权 流量。
在确认它支持该流之后,MVPD必须向我们提供以下信息:
-
身份验证端点
- 该端点将提供授权代码,该代码稍后将用于交换刷新和访问令牌
-
/token端点
- 这将提供刷新令牌和访问令牌
- 刷新令牌需要稳定(每次我们请求新访问令牌时它不能更改)
- mvpd需要为每个刷新令牌允许多个活动访问令牌
- 此端点还将交换访问令牌的刷新令牌
-
我们需要一个 用户配置文件端点
- 此端点将提供用户ID,该用户ID对于帐户必须是唯一的,并且不应包含任何个人身份信息
-
该 /logout 端点(可选)
- Adobe Pass身份验证将重定向到此端点,向MVPD提供重定向后端URI;在此端点上,MVPD可以清除客户端计算机上的Cookie或应用任何所需的逻辑进行注销
-
强烈建议支持授权的客户端(不会触发用户授权页面的客户端应用程序)
-
我们还将需要:
- clientID 和 客户端密码 用于集成配置
- 生存时间 刷新令牌和访问令牌的(TTL)值
- 我们可以向MVPD提供授权回调和注销回调URI。 此外,如果需要,我们还可以向MVPD提供要在防火墙设置中列入白名单的IP列表。
身份验证流程 authn-flow
在身份验证流程中,Adobe Pass身份验证将以配置中选择的协议与MVPD进行通信。 下图描述了OAuth 2.0流程:
图1: OAuth 2.0身份验证流程
身份验证请求和响应 authn-req-response
简而言之,支持OAuth 2.0协议的MVPD的身份验证流程遵循以下步骤:
-
最终用户导航到程序员网站,并选择使用其MVPD凭据登录
-
安装在程序员端的AccessEnabler以HTTP请求的形式向Adobe Pass身份验证端点发送身份验证请求,Adobe Pass身份验证端点将重定向到MVPD授权端点。
-
MVPD授权端点向Adobe Pass身份验证端点发送授权代码
-
Adobe Pass身份验证使用收到的授权代码从MVPD令牌端点请求刷新令牌和访问令牌
-
如果令牌中未包含用户信息,则可以将获取用户信息和元数据的调用发送到用户配置文件端点
-
身份验证令牌将传递到最终用户,最终用户现在可以成功浏览程序员网站
note note NOTE 刷新令牌用于在当前访问令牌无效或过期后获取新的访问令牌。
此限制源于不允许服务器更新AuthNToken的客户端流,对于OAuth 2.0协议,该客户端流还包含刷新令牌。
典型的授权流执行保存在AuthNToken中的刷新令牌的交换,以换取访问令牌,该访问令牌随后用于以在第一位置进行身份验证的用户的名义执行授权调用。 如果授权服务器(MVPD)更改刷新令牌并使旧令牌失效,我们将无法更新有效的AuthNToken。 因此,MVPD需要支持稳定的刷新令牌才能为其设置OAuth 2.0集成。
从SAML迁移到OAuth 2.0 saml-auth2-migr
将集成从SAML迁移到OAuth 2.0将由Adobe和MVPD执行。 程序员无需进行任何技术更改,但程序员可能希望在MVPD登录页面上检查/测试联合品牌。 从MVPD的角度来看,需要满足在Oauth 2.0要求中请求的端点和其他信息。
为了 保留SSO,则已拥有通过SAML获得的身份验证令牌的用户仍会被视为已进行身份验证,其请求将通过旧的SAML集成进行路由。
从技术角度来看:
- Adobe将启用程序员和MVPD之间的OAuth 2.0集成,而不删除SAML集成。
- 启用后,所有新用户都将使用OAuth 2.0流。
- 经过身份验证的用户,如果已具有包含SAML主体ID的本地AuthN令牌,将由Adobe通过SAML集成自动路由。
- 对于步骤3中的用户,一旦其SAML生成的AuthN令牌过期,Adobe会将他们视为新用户,并且其行为与步骤2中的用户类似。
- Adobe将审查使用模式,以确定何时可以安全停用SAML集成。