Allow only one application to connect to wcf service - security

I have one application and a wcf service hosted in a Windows service. Both are running on the same computer and I'm using netTcpBinding. I want my wcf service to be accessed only by my application only. How do I achieve this? Please help

Related

An attempt was made to access a socket in a way forbidden by its access permissions. (localhost:5001)

I'm facing issue with my multiple project solution in .net core webAPI. I've gatewayAPI which internally makes call to different microservices via http call.
Gateway API URI exposed to outer world which has domain as azure app name but the internal calls from gateway to microservices are configured with http://localhost:5001/{apiEndPoint} which is working fine in my local machine but after deploying it on azure app service I'm getting below error:
PostToServer call URL:'http://localhost:5001/api/authservice/authenticate' with Exception message An attempt was made to access a socket in a way forbidden by its access permissions. (localhost:5001).
Can someone please help me with this, I'm new to azure and learning on my own but could not find any solution for this yet.
PS: After going through some YouTube videos and blogs I got to know we have to use AKS but I'm not confident in that.
Would really appreciate any help on this issue.
The Gateway API you deployed to azure app service, it doesn't support custom port usage for 5001. Azure App Service only supports port 80|443(HTTP|HTTPS).
If you must use multiple ports in your actual project, then it is recommended to check whether Azure Cloud Service meets your needs. But it not the best choice.
The Best Practice:
Microservices architecture design
In short,create a Azure Gateway service, and your other microservice can be deployed in any where.(azure app service, vm or aks)
You just make sure you can access your microservices in your internal or public network environment.
If you're just learning, or the app isn't actually used by a lot of users, you can try the following suggestions:
Use SignalR (not azure signalr) to replace the websocket in your current project.
You have on azure app service, you can deploy your Gateway API Application to app service, and your other microservices can be deployed to Virtual Application in azure app service.

Communication between node.js and WCF service hosted in a windows service

I have a node.js application and a WCF service hosted in a windows service running on the same machine. I need to pass messages from Node.JS app to the WCF service exposed via windows service.It can be uni or bi directional communication. Can you help me to know how to achieve this?
My requirement is to open a communication channel between NodeJS and the WCF service hosted inside Windows Service. My WCF service has net.tcp binding.
I solved by modifying my WCF service and adding another end point for webHttpBinding. From Node.Js application I can access this endpoint of my WCF service.

azure webapp of windows service application

I have an existing Windows Service application that can run as a service or as a console application. It can be build x32 or x64.
It will by configuration file try to use a ip address and a port number.
Once it has that it will accept and send SOAP messages back and forth and service the requests.
The question is can this be deployed to Azure in a webapp framework, where scaling to meet increases in customer load is automatic. If not what implementation would work, moving from what I have?
Azure Web Apps (web sites) are not going to let you install a Windows Service, as that requires admin-level access to install.
You'd either need to run your Windows service in cloud services (web/worker roles, which are stateless Windows Server VMs) or Virtual Machines (where you have full VM access).
Alternatively, you'd need to extract your service code (pulling it out of the service shell) and run it in a different way. How you do this is up to you, but Web Apps provide certain features (such as Web Jobs) which may fit your model.

Azure to on premises web services

Can anybody tell me how to connect a web app running on azure to existing web services (.ASMX) on premises?
We do not have the source for the services they are exposed by third party applications and we do not want to open them up to public access.
Sounds like Azure's Service Bus Relay Service might be what you're looking for...
There might be three options based on your scenario. But I personally prefer the third one.
If you used azure cloud service (web role, worker role), you can use Windows Azure Connect. It builds an IP-sec communication between the azure machine and your local machine. Then you can connect to your local service through the its IPv6 address.
If you used azure virtual machine to host your azure project you can use Virtual Network. It's more powerful than the Windows Azure Connect.
You can use Windows Azure Service Bus Relay. It can open your local service to the cloud regardless how your azure project is hosted. But since it's only support WCF of Service Relay, and since you cannot change codes and config of your service, you might need some more works. Maybe you can create a small WCF on your local machine as a proxy, register it to Service Bus Relay, and pass all request/response to your local service.

Is it possible to host a WCF service in an Azure WebRole (MVC)

Is it possible to host a WCF service in an Azure WebRole (MVC)?
Also; I assume that net.tcp is not supported.
And you're correct that net.tcp won't work in a web role (where all input endpoints have to be HTTP). But net.tcp should work fine in a worker role.
Yes.
It's often a little easier to host your WCF services in a web project. Especially when you have multiple WCF Services.

Resources