# 原生 DRM 集成

通过 Universal Playback Session Contract，将原生 Widevine、PlayReady、FairPlay 或 WisePlay 客户端与 DRM-X 6.0 集成，无需在客户端嵌入服务器凭据。

加密视频和 DRM 许可证通过不同路径传输

CDN 负责传输加密视频。您的后端检查观看权限，DRM 许可证服务则授权兼容设备解密播放。

- 01**存储 / CDN**

向播放器传输加密媒体。

- 02**您的后端**

确认用户有权观看后，向 DRM-X 请求播放授权。

- 03**DRM-X**

验证播放授权并处理 DRM 许可证请求。

- 04**播放器 + 设备**

使用设备的 DRM 系统获取许可证，并播放加密媒体。

您的后端决定访问; DRM-X 执行已签名的政策。 加密的媒体和DRM 许可证会遵循不同的传送路径 。

## 各组件的职责[#](#responsibilities-by-layer)

| 组件层级 | 职责 | 
| --- | --- |

| 您的后端服务 | 认证用户并检查观看权限，选择可信的 Content ID 和服务器端策略，然后请求播放会话。 | 

| DRM-X | 查找加密输出包、验证策略、签发授权、转发 DRM 提供方请求，并管理会话生命周期。 | 

| 原生客户端 | 加载已注册的 Manifest，初始化平台 CDM，发送原生 Challenge，应用许可证，并在结束时释放会话。 | 



## 通用集成步骤[#](#common-integration-sequence)

- 检测受支持的 DRM 系统，并如实报告播放能力。
- 使用内容目录标识调用需要身份认证的播放接口。
- 加载返回的 Manifest，并初始化指定的 Key system。
- 仅向响应指定的 DRM 证书和许可证路径附加返回的授权信息。
- 原样传递原生二进制 Challenge 和许可证响应体，不转换内容。
- 应用许可证规定的轨道及视频最大高度限制。
- 播放结束、取消或发生不可恢复错误时，均调用会话释放路径。



## 各 DRM 提供方的注意事项[#](#provider-specific-care)

- **Widevine：**保持 PSSH/init 数据和许可证响应体的二进制形式，并遵循安全级别要求。
- **PlayReady：**保留原生 Challenge 的内容类型和响应数据，并在实体硬件上验证 Edge 和 Windows。
- **FairPlay：**配合应用证书和 SKD 标识符，原样交换 SPC/CKC 数据。
- **WisePlay：**使用目标华为平台支持且已验证的初始化方式和会话模型。



## 验证失败时拒绝授权[#](#fail-closed)

拒绝未注册的 Manifest、非预期重定向、内容类型变化、超大请求或响应体、过期授权、DRM 不匹配，以及来自会话允许范围以外源站的响应。不得从加密内容回退到未加密内容。

<!-- Canonical: https://docs.drm-x.com/zh-Hans/sdk/native -->
<!-- Language: zh-Hans -->
