4.2.3 RTCOAuthCredential Dictionary

RTCOAuthCredential字典用于描述OAuth auth凭证信息,STUN / TURN 客户端(在 ICE 代理内部)使用该信息对 STUN / TURN 务器进行身份验证,如[RFC7635]中所述。请注意,kid参数不在此字典中,而是在RTCIceServer的成员变量 username 中。

  1. dictionary RTCOAuthCredential {
  2. required DOMString macKey;
  3. required DOMString accessToken;
  4. };

字典RTCOAuthCredential成员

DOMString类型的macKey,需要:

  1. `mac_key`,如[RFC7635]第 6.2 节中所述,采用 base64-url 编码格式。它用于 STUN 消息完整性哈希计算(因为密码用于基于密码的身份验证)。请注意,OAuth 响应“key”参数是 JSON Web KeyJWK)或使用 JWE 格式加密的 JWK 。另请注意,这是唯一不直接使用其值的OAuth参数,但必须从JWK的“k”参数值中提取,该参数值包含所需的base64编码的“mac_key”。

DOMString类型的accessToken,需要:

  1. `access_token`,如[RFC7635]第6.2节中所述,采用 base64 编码格式。这是一个加密的自包含令牌,对应用程序不透明。认证加密用于消息加密和完整性保护。访问令牌包含非加密的nonce值,授权服务器使用该值来生成唯一的mac_key。令牌的第二部分受认证加密保护。它包含 mac_key ,时间戳和生命周期。时间戳与生命周期相结合提供了到期信息;此信息描述了令牌凭证有效并能被TURN服务器接受的时间窗口。

RTCOAuthCredential字典的一个示例是:

  1. {
  2. macKey: 'WmtzanB3ZW9peFhtdm42NzUzNG0=',
  3. accessToken: 'AAwg3kPHWPfvk9bDFL936wYvkoctMADzQ5VhNDgeMR3+ZlZ35byg972fW8QjpEl7bx91YLBPFsIhsxloWcXPhA=='
  4. }