Итак, у вас есть User -> clientServer -> yourServer, да?
Вам необходимо аутентифицировать clientServer -> yourServer, чтобы убедиться, что никто не может общаться с вашим сервером.
Если это установившиеся доверительные отношения (то есть вы, ребята, общаетесь, подписываете документы и делаете что-то «вне диапазона»), то вы можете просто использовать SSL-сертификаты, сертификаты, которые вы можете подписать.
Обычно вы устанавливаете свой собственный центр сертификации, создаете корневой сертификат, а затем создаете сертификат клиента, подписанный этим корневым сертификатом.
Затем вы отправляете этот сертификат на clientServer и не позволяете никому подключаться к вашей службе, у которой нет сертификата, подписанного вашим корневым сертификатом.
Если клиент когда-либо прекращает свои отношения, вы можете отозвать его сертификат, и он больше не может с вами разговаривать.
Что касается идентификации пользователя, он должен быть частью API. Клиент должен правильно их аутентифицировать, а затем направить вам все необходимые учетные данные.
Это может быть часть первого класса вашего веб-сервиса (например, параметр), или, если вы используете SOAP, его можно передать во вложении SAML в заголовке SOAP, которое затем можно извлечь.
WS-Security предлагает около 8000 способов защиты веб-служб SOAP, как вы, возможно, обнаружили.
Итак, это отчасти зависит от того, что вы хотите сделать, и от других требований. Но учитывая то, что у тебя мало, это должно сработать.