С такой проблемой не сталкивался, но подошел бы к решению со стороны CRM CDK.
У CrmServiceClient есть возможность имперсониваться через установку свойства CallerId -
https://docs.microsoft.com/en-us/dot...rmtooling-ce-9
Так что алгоритм был бы следующий:
1. Получить из контекста идентификатор пользователя, который стучится.
2. Инстанциировал CrmServiceClient под учетной записью администратора.
3. Из systemuser по AD имени пользователя получил бы его Guid в CRM.
4. Присвоил бы полученный Guid свойству CallerId.
5. Все последующие вызовы будут идти от имени указанного пользователя.