SOAP services for XProtect
Overview of services
The following table illustrates what to use where:
User type | Authentication method | Default port | Path |
OpenID and OAuth2 | 443 | /ManagementServer/ServerCommandServiceOAuth.svc | |
Windows | Windows | 80 | /ManagementServer/ServerCommandService.svc |
Windows | Windows | 80 | /ServerAPI/ServerCommandService.asmx Deprecated, use /ManagementServer/ServerCommandServiceOAuth.svc or /ManagementServer/ServerCommandService.svc |
Basic | Basic HTTP over TLS | 443 | /ManagementServer/ServerCommandService.svc |
OpenID and OAuth2 | 443 | /ManagementServer/ServiceRegistrationServiceOAuth.svc | |
Windows | Windows | 80 | /ManagementServer/ServiceRegistrationService.svc |
Basic | Basic HTTP over TLS | 443 | /ManagementServer/ServiceRegistrationService.svc |
OpenID and OAuth2 | 443 | /ManagementServer/ConfigurationApiServiceOAuth.svc | |
Windows | Windows | 80 | /ManagementServer/ConfigurationApiService.svc |
Basic | Basic HTTP over TLS | 443 | /ManagementServer/ConfigurationApiService.svc |
XProtect token | 7563 | /RecorderCommandService/RecorderCommandService.asmx | |
XProtect token | 7563 | /RecorderStatusService/RecorderStatusService2.asmx | |
Windows | XProtect token | 22331 | /Central/AlarmService2 |
Basic | XProtect token | 22331 | /Central/AlarmServiceToken |
Authentication methods
OpenID Connect and OAuth2
In XProtect 2021 R1 and later, authentication and authorization can be provided by an internal OpenID Connect- and OAuth2-compliant identity provider service. This improves privacy and is a step towards unified user management and better integration with cloud services and 3rd-party identity providers.
In the XProtect 2021 R1 release, the focus has been on secure user authentication and securing the Management Server services. There are no essential changes to how users are added and managed, and both Basic and Windows users are supported.
After login, an OAuth2 access token is acquired from the internal identity provider service and can be used to authorize communication with other OAuth-enabled services, currently only Management Server services.
To support backwards compatibility for already deployed clients and integrations, the existing Management Server service endpoints for Windows and Basic users are still supported.
Windows
The Windows user authentication protocol can be either NTLM or Kerberos, and is the underlying technique used with the SOAP protocol to convey user name and password, while encrypting the communication. The NTLM or Kerberos protocol is not directly visible in the SOAP protocol.
When developing .NET Framework applications, the .NET library will handle this protocol. Developing for Linux requires you to implement this yourself.
Basic HTTP over TLS
Basic user login uses standard basic HTTP authentication over TLS (HTTPS). TLS encrypts the traffic and provides some level of security.
XProtect token
After login, an XProtect token is acquired from the Management Server and used to authorize communication with other services. A token only lives for a short period of time, and needs to be refreshed regularly.
Services and how to find addresses and ports
When connecting to an XProtect server, only an address (port), user name and password are required. From that point, all information is fetched from the server via GetConfiguration
calls, ConfigurationApiService
calls or other calls. A person installing a solution should not have to configure any addresses or ports for Recording Servers, Event Servers or any other services.
ServiceRegistrationService
contains all relevant information for connecting to the Management Server, Recording Server, Event Server, Mobile Server and any other server services in the future.
The service provides address, port and server type information, for all registered services.
Multiple instances can be available for the same service, but this is currently only used for the Mobile Server.
The ServiceRegistrationService
is always located on the Management Server. Address and port of Recording Servers are not found here, but are included as part of the configuration.
Protocol implementation versus MIP SDK .NET library
Use the MIPSDK .NET library when possible; it will take care of many details.
Use ServiceRegistrationService
for getting the address, port and authentication information. Partners are welcome to register their own services, to e.g. make connections from Smart Clients easy, because external server addresses can be configured once in the Management Client, and used by many Smart Client operators.
Avoid asking end-users to configure addresses in the Smart Client.