2012年9月25日 星期二

ONVIF -- Authentication



ONVIF 的運作過程中,可以分別在 HTTP Level 或是 web service leve 進行使用者認證,根據使用者提供的帳號密碼,可將用戶分成以下四類:
  1. Administrator 
  2. Operator
  3. User
  4. Anonymous
注意:沒有認證的用戶皆歸類於 Anonymous,原文摘錄如下
Unauthenticated users are placed into the anonymous category and a device shall not allow users to be added to the anonymous user level category


ONVIF 認證方式
HTTP Level 使用 [RFC2617] 定義的 Digest Authenticaion。
Web Service Level 使用 WS-Security Network 定義的 user name token profile 認證機制,如下
  1. User name token profile [WS-UsernameToken] 
  2. X.509 security token profile [WS-X.509Token] 
  3. SAML token profile [WS-SAMLToken] 
  4. Kerberos token profile [WS-KerberosToken]
  5. Rights Expression Language (REL) Token Profile [WS-RELToken]
兩種認證機制可同時存在。

參考 ONVIF-Core-Specification-v220.pdf,若使用者沒有經過正確的認證,則將使用者定義為 anonymous ,此類用戶可以存取 ACCESS CLASS 為 PRE_AUTH 的服務,也就是說下列這些服務的存取可以不需要經過帳號密碼的認證程序。共有8個
  • GetWsdlUrl
  • GetServices
  • GetServiceCapabilities
  • GetCapabilities
  • GetHostname
  • GetSystemDateAndTime
  • GetEndpointReference
  • GetRelayOutputOptions

註:PRE_AUTH
The service shall not require user authentication.
Example: GetEndpointReference