S4S uses the Sitecore SSC Framework for communication between client and server, which is configured within the App_Config\Sitecore\Services.Client\Sitecore.Services.Client.config file. If you use S4S and you are connected externally from your Sitecore CM Server, you may need to change Sitecore.Services.Client.config file "SITECORE SERVICES SECURITY POLICY" for external access.
In other words if your Sitecore instance hosted in a remote location from where you try to connect as a client, you have to change the “Sitecore.Services.SecurityPolicy” config setting value in App_Config\Sitecore\Services.Client\Sitecore.Services.Client.config file to “Sitecore.Services.Infrastructure.Web.Http.Security.ServicesOnPolicy, Sitecore.Services.Infrastructure”.
Add following configuration section to S4SMapping.config in App_Config/Modules/S4S (Or any other config file) Or add it as a separate patch file. This will allow access to the controller which S4S is using in Sitecore SSC framework.
<configuration type="Sitecore.Services.Infrastructure.Configuration.ServicesConfiguration, Sitecore.Services.Infrastructure">
<allowedController desc="FuseIT S4S">FuseIT.S4SMapping.SitecoreExperienceForms.Controllers.MappingController, FuseIT.S4SMapping</allowedController>
Install S4S xConnect Models