--- title: Part 2-1 11.2 設備授權存取介面要求事項 tags: 5G 智慧杆系統技術規範 image: --- # 11.2 設備授權存取介面要求事項 ## 11.2.1 存取介面 應用伺服器之設備授權存取介面應提供 HTTPS 伺服器端及 HTTPS 客戶端功能,執行步驟及連線方向參照 10.4.1 說明。 應用伺服器之設備授權存取介面應支援 IPv6 及 IPv4,IP 位址應使用網際網路公開位址。存取介面 URI 應與設備登錄請求封包之 **authorizer** 參數一致 (參照 A.3),域名應使用經公開域名管理機構登錄之完整域 (FQDN)。 ## 11.2.2 接收設備授權申請 應用伺服器接收設備授權申請之 HTTPS 請求時,應依 6.3.1 及以下規定處理: * (a) 若請求方法不為〝POST〞,則應回應狀態碼 ==**405**== ( **method not allowed** )。 * (b) 請求標頭應包含 **Authorization** 欄位,型式應為 **Bearer**,鑑別資訊內容依實作而定,物聯網設備與應用伺服器應使用相同之資料格式及計算方式。若請求封包內未包含鑑別資訊、格式錯誤或鑑別未成功,則應回應狀態碼 ==**401**== ( **unauthorized** )。 * (c) 請求主體應包含 JSON 物件,內容格式應參照 B.1,編碼格式應依 6.2 規定。若請求主體不符合上述規定,則應回應狀態碼 ==**400**== ( **bad request** )。 * (d) 若未發生上述錯誤狀況,則應回應狀態碼 202 (**accepted** ),回應不包含主體,後續應依 11.2.3 規定,發送設備授權確認之 HTTPS 請求至組態伺服器。 備考: 物聯網設備於啟用網路服務過程中將取得 1 組單次隨機數 (**jti** 參數,參照 A.2),該參數與設備授權請求封包之 **nonce** 參數內容為一致。實作宜使用該參數作為單次隨機數計算鑑別資訊 (例:參考 D.6 實例),避免使用固定預設鑑別資訊。 ## 11.2.3 發送設備授權確認 應用伺服器應檢視請求設備授權申請資訊 (參照 B.1),評估是否允許物聯網設備加入運作。應用伺服器應依 IETF / RFC 7519 規定,解析設備授權申請資訊中 **credAuthCfm** 參數之未加密酬載部分 (參照 B.3),並於 **exp** 參數指定之期限內完成評估。評估方式依實作而定。 若應用伺服器允許物聯網設備加入運作,則應依物聯網設備之應用服務建立詮釋資料相關紀錄,格式應符合 11.3 規定。所有應用服務之詮釋資料相關紀錄皆應指派 URI,並能透過共同資料存取介面進行存取。 若應用伺服器無法於期限內完成,則應至少建立主要應用服務 (參照B.1) 之詮釋資料相關紀錄。 應用伺服器完成評估後,應發送設備授權確認之 HTTPS 請求至組態伺服器,發送時應依以下規定執行: * (a) 方法應為 **POST**。 * (b) URI 應符合設備授權申請之 **replyto** 參數內容(參照 B.1)。 * (c) 請求標頭應包含 **Authorization** 欄位,型式應為 **Bearer**,鑑別資訊應使用設備授權申請之 **credAuthCfm** 參數內容。 * (d) 請求主體應包含 JSON 物件,內容格式應參照 B.4,編碼格式應依 6.2 規定。 * (e) 若應用伺服器允許物聯網設備加入運作,則請求主體應包含應用服務所需之防火牆規則,且 **Thing** 參數應包含上述詮釋資料相關紀錄之 URI。 ## 11.2.4 後續處理 應用伺服器發送設備授權確認 HTTPS 請求至應用伺服器後,應等候組態伺服器發送回應。處理回應時,應依 6.3.3 及下列規定執行: * (a) 若回應狀態碼為 ==**202**== ( **accepted** ),則應等候組態伺服器完成防火牆設定,實作宜設計等候機制 (例: 主動定時探索或被動等候入向連線等方式)。 * (b) 若回應狀態碼為 ==**308**== ( **permanent redirect** ),則應依 **Location** 標頭欄位指示,向更新後之 URI 重新發送請求。 * (c) 除 6.3.3 及以上列舉之回應狀態碼外,其他狀態碼皆視為異常。後續處理方式依實作而定。實作宜檢視錯誤發生原因,並嘗試重新發送。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up