My question is how could protect the Web Service's call.
There are 4 rules to security:
Web applications and services typically use HTTPS for "transport
encryption". Private web services may supplement with an additional keyed
based encryption algorithm.
"Authentication" requires issuing "credentials" (User ID and Password,
generally) and a challenge for valid credentials via an "entry point" URL.
"Authorization" requires granting "authority" to users to various
"services" which is generally managed in a database.
"Access" is the process of exposing private URLs which may be dynamically
generated and assigned to "sessions" based on "authentication" and
"authority", where sessions may expire.
Dynamically generated private URLs may be further encrypted by issuing a
private key to a user (ie "abc123" may be the encryption key for user
Regarding the discussion about "single sign-on" (oAuth, etc.), that seems
only appropriate for web applications (browser user interfaces), but
inappropriate for web services (private user interfaces).
Regarding the discussion about tooling available in other language
environments, I'm not aware of any "tooling" which adequately implements
all of the rules indicated above.