Apple FairPlay 授權需求和設定

媒體服務標誌 v3


警告

Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南

Azure 媒體服務可讓您使用 Apple FairPlay Streaming (AES-128 CBC) 加密 HLS 內容。 媒體服務也提供傳遞 FairPlay 授權的服務。 FairPlay 串流是 Apple 技術,僅適用於透過 iOS 裝置、Apple TV 和 macOS 上的 Safari HTTP 即時串流 (HLS) 傳輸的視訊。 當 Apple 用戶端嘗試透過 HLS 格式播放 FairPlay 保護的內容時,會將要求傳送至授權傳遞服務以取得授權。 如果授權服務核准要求,就會發出授權以傳送給用戶端,並將它用來解密和播放所指定內容。

媒體服務也會提供您可以用來設定 FairPlay 授權的 API。 本主題討論 FairPlay 授權需求,並示範如何使用媒體服務 API 設定 FairPlay 授權。

必要條件

當使用媒體服務搭配 Apple FairPlay 來加密您的 HLS 內容,以及使用媒體服務來傳遞 FairPlay 授權時,需要下列項目:

  • 註冊 Apple Development Program

  • Apple 要求內容擁有者必須取得 部署套件。 說明您已使用媒體服務實作金鑰安全性模組 (KSM),現在想要求最終的 FPS 套件。 最終 FPS 套件包含相關指示,用以產生憑證和取得應用程式密碼金鑰 (ASK)。 您可使用 ASK 來設定 FairPlay。

  • 必須在媒體服務金鑰/授權傳遞端設定下列各項︰

    • 應用程式憑證 (AC)︰這是包含私密金鑰的 .pfx 檔案。 您可建立這個檔案並以密碼加密。 .pfx 檔案應採用 Base64 格式。

      下列步驟說明如何產生 FairPlay 的 .pfx 憑證檔案:

      1. https://slproweb.com/products/Win32OpenSSL.html 安裝 OpenSSL。

        移至 FairPlay 憑證和其他 Apple 提供檔案所在的資料夾。

      2. 從命令列執行下列命令。 這會將 .cer 檔案轉換成 .pem 檔案。

        "C:\OpenSSL-Win32\bin\openssl.exe" x509 -inform der -in FairPlay.cer -out FairPlay-out.pem

      3. 從命令列執行下列命令。 這會將 .pem 檔案轉換為包含私密金鑰的 .pfx 檔案。 OpenSSL 程式會接著要求 .Pfx 檔案的密碼。

        "C:\OpenSSL-Win32\bin\openssl.exe" pkcs12 -export -out FairPlay-out.pfx -inkey privatekey.pem -in FairPlay-out.pem -passin file:privatekey-pem-pass.txt

    • 應用程式憑證密碼 - 用來建立 .pfx 檔案的密碼。

    • ASK:當您使用 Apple 開發人員入口網站產生憑證時,會收到此金鑰。 每個開發小組都會收到一個唯一的 ASK。 儲存一份 ASK,並將它存放在安全的地方。 您必須使用媒體服務將 ASK 設定為 FairPlayAsk。

  • FPS 用戶端必須設定下列各項︰

    • 應用程式憑證 (AC):這是 .cer/.der 檔案,其中包含作業系統用來加密某些承載的公開金鑰。 媒體服務必須了解它,因為播放程式需要它。 金鑰傳遞服務會使用對應的私密金鑰來解密。
  • 若要播放 FairPlay 加密的資料流,請先取得真正的 ASK,然後產生真正的憑證。 該處理程序會建立所有 3 個部分︰

    • .der 檔案
    • .pfx 檔案
    • .pfx 的密碼

注意

Azure 媒體服務不會在封裝或金鑰傳遞期間檢查憑證到期日。 憑證到期之後,其將會繼續運作。

FairPlay 和播放應用程式

當您透過 Apple FairPlay 加密內容時,個別的視訊和音訊範例會使用 AES-128 CBC 模式加密。 FairPlay 串流 (FPS) 已整合至裝置工作系統,在 iOS 和 Apple 電視上具有原生支援。 OS X 上的 Safari 使用加密媒體擴充功能 (EME) 介面支援來啟用 FPS。

Azure 媒體播放器也支援 FairPlay 播放。 如需詳細資訊,請參閱 Azure 媒體播放器文件 \(英文\)。

您可以使用 iOS SDK 開發自己的播放應用程式。 為了能夠播放 FairPlay 內容,您必須實作授權交換通訊協定。 此通訊協定不是由 Apple 指定。 而是由每個應用程式如何傳送金鑰傳遞要求而決定。 媒體服務 FairPlay 金鑰傳遞服務會對即將到來的 SPC 視為如下列格式的 www-form-url 已編碼張貼訊息:

spc=<Base64 encoded SPC>

在 Azure 金鑰保存庫 中儲存 FairPlay 私鑰 (.pfx)

您從 Apple 收到的私鑰 (.pfx) 應該視為安全憑證,而且可以儲存在 Azure 金鑰保存庫 中。

  • 系統管理員應該先將 .pfx 憑證檔案轉換成Base 64 文字檔
  • 轉換之後,此檔案可以儲存在 Azure DevOps Services 為安全的文本檔。
  • 字串接著可以手動儲存在 Azure KeyVault 中作為「秘密物件」,或作為解決方案部署/建置腳本的一部分。 您可以在 Gridwich 專案範例程式代碼中看到將 FairPlay 私人憑證儲存在 Azure KeyVault 中的範例
  • 或者,將 .pfx 檔案的密碼儲存為密鑰保存庫中的秘密。

範例 CLI 腳本

若要將base64編碼的私鑰檔案複製到 Azure KeyVault:

set -eu
echo key vault : $SHARED_KV_NAME
echo "Copying FairPlay certificate to key vault as secret"
az keyvault secret set --vault-name $SHARED_KV_NAME -n ams-fairPlay-certificate-b64 -f $(FairPlayCertificate.secureFilePath) --output none

取得說明及支援

您可以連絡媒體服務並提出問題,或遵循下列其中一種方法來追蹤我們的更新: