Your question can be divided into three parts. Two of them are directly related to security in WCF, and one of them is beyond the scope.
Authentication and authorization - yes, it is possible. WCF offers several settings that allow you to authenticate the client and provide its roles. You can also create your own. The most common scenario for authenticating clients that are not in your AD domain are username and password credentials with user verification on the service or using client certificates.
Conflict and integrity - Due to your attention to security, you must also include the secure transfer of credentials (and message data). If you do not provide safe transport, someone on the network can sniff the connection and steal credentials (or data). The attacker will also be able to intercept the connection and change the data transferred. To ensure communication, you need transport security (TLS, SSL / HTTPS) or message security β in the Internet script provided by certificates.
Client credential protection is mainly because of your control. After you deploy the client application with credentials to a client computer that is not under your control, you can never ensure the security of the provided credentials. It depends on your users / clients. If you somehow incorporate credentials into your application, the end user / attacker is likely to always be able to obtain them. But this is the problem of every secure solution - someone must have access to credentials.
source share