WAP 2016 not sending client to ADFS properly - adfs

We are setting up on premises ADFS and WAP servers.
We are using a SSL cert shared between the SDFS server and WAP.
We are using split brain DNS so that the internal clients point to the ADFS server and the external users get routed to the WAP.
The ADFS service name is the external DNS name and is different than the host name.
The MVC web application has been published on the WAP.
Internal clients get routed to the ADFS server login page and get authenticated correctly. The external clients get routed to the login page but a TCP rst gets sent to the client immediately. I can't find any logs in the event viewer to help troubleshoot this.
Can someone offer a suggestion?

Related

ADFS multiple hostname bindings

I'm looking for how to add hostname bindings to ADFS like you would add additional hostname bindings for a website in IIS. e.g. adfs.mydomain.com is the domain used for ADFS. In addition I'd like to add server1.adfs.mydomain.com. This has nothing to do with SSL certs. I know this can be done as I did it on the ADFS server I'm retiring.
For those who ask why I want to do this. There is a farm of ADFS servers behind a load balancer all using adfs.mydomain.com hostname. I'd like specific bindings for each server e.g. server1.adfs.mydomain.com so I can probe the service on a specific server from our monitoring system to verify the ADFS service is online.
The old ADFS server is whatever role service comes with Win2k16. The new ADFS server is the role service on Win2k22. This used the be easier to find searching google, but now adfs related postings have become littered with references to Azure and O365 implementations. Anyone know how to add the additional binding? I feel like previously it was powershell or netsh command, but I could be wrong.
• Since, the ADFS servers in your ADFS farm are behind a load balancer which has a hostname of ‘adfs.mydomain.com’, the ADFS servers in the farm also are domain joined servers with their DNS records hosted in your environment’s local DNS server. Thus, to identify those ADFS servers with additional hostnames other than that assigned them during domain joining, you need to add these additional hostnames in the local hosts file of the ADFS servers serviced by the load balancer as shown below: -
Go to the path, ‘C:\Windows\System32\drivers\etc\hosts’ and open the hosts file with notepad and add the IP address of the respective ADFS Server as shown below in the screenshot: -
Thus, in this way, the monitoring server will be able to find out the ADFS server and query the ADFS service for its proper functioning. Also, it will be able to resolve them through the load balancer if it has to pass through them for service availability.

How to setup additional binding for the Federation Service in ADFS Server for Authentication

I have a single ADFS Server configured Non-Claims Aware relying party trust for my Application1, and now i have another application2 running in my LAN and i would like to add that application to the same ADFS server for Authentication.
Application1 --> https://app1login.domain.com/adfs/services/trust -- Working
Application2 --> https://app2login.domain.com/adfs/services/trust -- Http error 400
for point 2) i have setup netsh http add sslcert hostnameport="app2login.domain.com:443" certhash="1255684215479212622" appid="{xxx-xxx-xxx-xx-xxxxxxxx}" certstorename=MY and now i am able to telnet to the app2login.domain.com and is working, but the URL https://app2login.domain.com/adfs/services/trust gives me http 400 error, where app1login.domain.com works fine.
Tried Set-AdfsAlternateTlsClientBinding -Member hostname.domain.com -Thumbprint 'xxx2548526978456xxx' but there is no Change, still http400
is there a possibility to make two different URL and sing-in page in a single ADFS Server for Two Different Application in the same domain

403 - Forbidden: Access is denied WCF

I'm using BizTalk server 2010.
I'm using the client certificate where I have imported that in IIS as well as Trusted root certificate store. Im using httpsTransport with customBinding. When I try to browse in BizTalk server with https, I'm able to browse, but in the client side, they are not able to browse and they get
403 - Forbidden: Access is denied.
You do not have permission to view this directory or page using the credentials that you supplied."
Is there anything that needs to be set in BizTalk or the settings should be done at the client end?
Is it related to anti virus that is blocking?
It sounds as though you are requiring Client Certificate Authentication when a client attempts to query the web resource, but no certificate is being presented. This is not an anti-virus issue.
You already have the certificate (and Root Authority) on your server which is why you can retrieve the resource successfully from the BizTalk Server.
To resolve this issue on your clients, install the certificate on each client that needs to connect (plus the Root Authority certificate if this is one you have created yourself) - the Client Certificate needs to be placed into the Personal Certificate Store for the user that is attempting to request the resource. Then when you connect from your client, the correct certificate will be presented to the server and Client Certificate Authentication will be performed, resolving your '403 - Access Denied' error.
If you have a large number of clients and you don't want to go through this trouble, simple disable Client Certificate Auth in IIS; your traffic will still be secured through SSL/TLS.

Certificate not trusted error while accessing WCF with SSL security in IIS

I am facing the following issue.
1 - I have deployed WCF service with SSL enabled on remote IIS machine and trying to use it from my web client.The problem is my browser is not allowing this service to be called.Before using my web client i have to hit the service url from my browser directly and then allow the certificate.
2- Got suggestion from somewhere to export the certificate on the machine where WCF is deployed and include that certificate file in Trusted certificates group on my machine.After I did that I got same problem when tried to access web service from web client.So I hit the service url from browser and got the same page which needs me to trust the certificate with a different message that "You attempted to reach 111.121.196.226(ip address of the WCF machine), but instead you actually reached a server identifying itself as "WMSvc-domain" where "WMSvc-domain" is the value of "Issued To" field in the certificate.
I hope I have made myself clear.Waiting for suggestions.Thank you.
WMSvc-machinename is the IIS Windows Management Service which runs by default on 8172/tcp and is used for remotely managing iis. When installed the default is to create a self-signed certificate. That wouldn't trusted. It could be replaced with a "proper" CA signed cert through the Management Service icon in IIS Manager.

Securely redirect to page not in intranet?

In an application we are writing we need to have a page that is essentially public but should only be available to certain people.. yep i know very paradoxical!
Its basically a "Submit a support ticket" style page that is hosted outside of a customers intranet but should only be available to users on that intranet.
Naturally making the user sign up for an account is the usual course of action but in this case it isn't really an option..
Is there any way of doing a "secure redirect" to that page?
My initial though would be to use an internal page which redirects appending a unique one time hash to the url which expires and then although its not 100% airtight it is only valid for about 1 min..
Two ways come to mind.
1) Deploy IP restrictions on the web server for the off-network resource. If the request is coming from one of the exit points from your network (proxy server, other public-facing egress points, etc) then allow the connection, otherwise do not.
2) Deploy mutually authenticated SSL on both the web server and a reverse-proxy server on your internal network. Clients connect to the internal reverse-proxy and that proxies them back to the external resource over an SSL connection that is mutually authenticated (so the external web server will only connect over SSL and it will only connect to a client (the reverse-proxy in this case) that has a recognized/accepted client certificate).
"Secure Redirect" is meaningless. What you want to do is make sure your ticket submit system will only accept clients connecting from your users' network. This would be a web site configuration thing.

Resources