(旧版)REST API指南(客户端到服务器) rest-api-cookbook-client-to-server
概述 overview
此文档为程序员的工程团队提供了分步说明,介绍如何使用REST API服务将“智能设备”(游戏机、智能电视应用程序、机顶盒等)与Adobe Pass身份验证集成。 这种客户端到服务器方法使用REST API而不是客户端SDK,允许更广泛地支持各种平台,对于这些平台,开发大量独特SDK将不可行。 有关无客户端解决方案工作方式的广泛技术概述,请参阅无客户端技术概述。
此方法需要两个组件(流应用程序和AuthN应用程序)来完成所需的流程:流应用程序中的启动、注册、授权和查看媒体流,以及AuthN应用程序中的身份验证流。
节流机构
Adobe Pass身份验证REST API受限制机制控制。
组件 components
在使用中的客户端到服务器解决方案中,涉及到以下组件:
流 flows
动态客户端注册(DCR)
Adobe Pass使用DCR来保护程序员应用程序或服务器与Adobe Pass服务之间的客户端通信。 DCR流程是独立的,在Dynamic Client Registration Overview文档中进行了说明。
流(智能设备)应用程序流量
启动流程
-
您的应用程序启动并加载其初始UI。
-
获取/生成设备ID。
-
发出Check-authentication调用以查看设备是否已通过身份验证。 例如:
<SP_FQDN>/api/v1/checkauthn [device ID] -
如果
checkauthn调用成功,则继续从步骤2开始执行授权流程。 如果失败,则启动注册流。
注册流程
-
获取用户用于访问第二屏登录应用程序的注册码和URL,并将它们呈现给用户:
a.向Adobe注册代码服务发送POST请求,传递经过哈希处理的设备ID和“注册URL”。 例如:
<REGGIE_FQDN>/reggie/v1/[requestorId]/regcode [device ID]b.向用户呈现返回的注册码和URL。
c.指示用户切换到支持Web的设备,导航到URL,然后输入注册码。
授权流程
-
用户从第二屏应用程序返回并按设备上的“继续”按钮。 或者,您可以实施轮询机制来检查身份验证状态,但Adobe Pass身份验证建议使用继续按钮方法而不是轮询。 例如: <SP_FQDN>/api/v1/tokens/authn
-
将GET请求发送到Adobe Pass身份验证授权服务以启动授权。 例如:
<SP_FQDN>/api/v1/authorize [device ID, Requestor ID, Resource ID]
-
如果响应指示成功:用户具有有效的AuthN令牌,并且用户有权观看请求的媒体(此用户具有有效的AuthZ令牌)。
-
如果响应指示失败:请检查引发的异常,以确定其类型(AuthN、AuthZ或其他):
-
如果是AuthN错误,则重新启动注册流。
-
如果是AuthZ错误,则用户无权观看请求的媒体,应向用户显示某种错误消息。
-
如果发生其他错误(连接错误、网络错误等),则向用户显示相应的错误消息。
-
查看媒体流
-
显示介质选项。 用户选择要查看的媒体。
-
媒体是否受保护?
a.您的应用程序检查媒体是否受保护。
b.如果媒体受到保护,您的应用程序将启动授权
(AuthZ)以上流量。c.如果媒体未受保护,则播放
用户。 -
播放媒体。
AuthN(第2屏)应用程序流程
-
获取此用户的MVPD列表。 例如:
<SP_FQDN>/api/v1/config/[requestorID] -
启动身份验证流程。 例如:
<SP_FQDN>/api/v1/authenticate [requestorID, MVPD ID, Redirect URL, Domain name, Registration Code, "noflash=true"] -
检查身份验证是否成功。 例如:
<SP_FQDN>/api/v1/checkauthn/[registration code][requestor ID] -
将用户发送回您的智能设备应用程序以完成授权流程。
合作伙伴单点登录 partner-sso
某些设备为合作伙伴单点登录(SSO)提供专用支持:
Platform单点登录 platform-sso
某些设备提供对Platform单点登录(SSO)的专用支持:
REST API的TempPass和提升TempPass temppass
对于不需要用户输入凭据的TempPass和Promotional TempPass实施,可以直接在流应用程序中实施身份验证。
要使用此API,流应用程序需要确保设备ID的唯一性,因为此设备ID正用于标识令牌以及可选的额外数据。