SMS Proxy
SMS Proxy is a web application that runs on IIS. SMS Proxy connects to the SMPP gateway directly and sends SMS messages. The Axidian Access server does not terminate the session with the SMPP gateway, so the requests are sent within a single connection instead of a separate one for each request.
System requirements
- Windows Server 2012 R2 and higher
- Internet Information Services 7.5 and higher with the following modules:
- Web server
- Static Content Compression
- HTTP Errors
- HTTP Redirection
- Windows Authentication
- WebDAV Publishing
- ASP.NET
- ASP
- ISAPI Extensions
- ISAPI Filters
- IIS Management Console
- IIS Management Scripts and Tools
- Management Service
Preconfiguration
- Install the IIS role on the server where you plan to install SMS Proxy, in one of the following ways:
- Open Server Manager, select Local Server, and on the Manage tab, click Add Roles and Features.
- Run the
\Misc\IISScripts\Axidian.Main.IIS.Install.MSServer.ps1script.
- Install .NET 6 by running
dotnet-hosting-6.0.10-win.exefrom theAxidian Access <version number>/Axidian Idpfolder of the distribution.
Installation
- Run the installation file located at
Axidian Access <version number>/Axidian SMS Proxy/<version number>and follow the steps of the installation wizard. - After the installation is complete, a system restart may be required. If the installation wizard prompts you to restart the system, confirm this action.
- To remove or restore the product, open the Control panel menu and use the standard procedure for the supported operating systems.
Prepare the certificate for SMS Proxy
During the SMS Proxy module installation, the SSL certificate requirement is enabled by default, which in turn requires HTTPS configuration.
To request a certificate from the Windows domain certification authority on the SMS Proxy server:
Open the certificate manager certlm.msc.
In the Personal folder, right-click Certificates and select All Tasks → Request New Certificate.
In the Certificate Enrollment window, click Next → Next, select the web server certificate template you created earlier, and click More information is required to enroll for this certificate.
In the Certificate Properties window that appears, add the following values and click OK:
- Subject name: in the Type field, specify Common name, and in the Value field, specify the full computer name (Srv01.axidian.local) or the short one Srv01.
- Alternative name: in the Type field, specify DNS, and in the Value field, specify the full computer name (Srv01.axidian.local).
Run IIS Manager.
Go to Srv01(AXIDIAN\Admin-axidian) → Sites → Default Web Site and in the Actions section, click Bindings.
Select the line with https 443 and click Edit. In the Edit Site Binding window that opens, select your certificate in the SSL certificate drop-down list and click OK.
Select the line with http 80 and click Remove.
Now you can open the IIS start page in a browser at https://Srv01.axidian.local/
Edit the configuration file
Open the
app-settings.Production.jsonconfiguration file from theC:\inetpub\wwwroot\am\proxies\smsfolder.In the
Smppsection, fill in the following parameters:SystemIdandPassword— specify the authentication data to connect to the SMPP serverHost— specify the connection address of the SMPP serverPort— specify the port defined for the connection to the SMPP serverSystemType— an optional sign-in parameter on the SMPP server side, for example,S1EsmeAddressTon— the possible values areUnknown,International,National,NetworkSpecific,SubscriberNumber,Alphanumeric,AbbreviatedEsmeAddressNpi— the possible values areUnknown,ISDN,Data,Telex,LandMobile,National,Private,ERMES,IPLoggingPermissions— specify the parameter that controls whether the sender and recipient information is displayed in the logs. You can specify several values separated by commas. The possible parameters are:Source— the message senderDestination— the message recipientNone(the default value) — the values of all logged fields are hiddenAll— the values of all logged fields are shown
The
Publicationfield includes the optionalDefaultSourceparameter that contains the sender name in the requests, for example, Axidian-AM.In the
Authentication": {"Certificate":}field, specify the thumbprint of the certificate that the provider (SMS or Storage SMS) can be authenticated with in SMS Proxy to send messages. By default, the configuration for authentication without a certificate is used:"Certificate": {"Enabled": false, "Thumbprint": "" }.NoteTo rule out possible problems with certificates, first configure the system without them, that is, without establishing a mutual TLS connection:
When you configure the SMS proxy policy, leave the certificate thumbprint values empty, as in the default settings.
In Axidian Access 8.2.6 and higher, additionally add the
"NetworkAddress": { "Enabled": false }value to theAuthentication": {"Certificate":}field.
To apply the changes in the
app-settings.Production.jsonfile, restart the AxidianAM.Core.proxies.sms server.
An example of the configuration file
{
"Smpp": {
"SystemId": "smppclient1",
"Password": "password",
"Host": "am1.axidian.local",
"Port": "2776",
"EsmeAddressTon": "International",
"EsmeAddressNpi": "ISDN",
"ReconnectionDelay": "00:02:00",
"LoggingPermissions": "Source"
},
"Publication": {
"DefaultSource": "Axidian-Id"
},
"Documentation": {
"Enabled": false
},
"Debug": {
"ExceptionResponsesEnabled": false
},
"Authentication": {
"Certificate": {
"Enabled": false,
"Thumbprint": "",
"ForwardingHeader": "Proxy-Client-Certificate"
},
"NetworkAddress": {
"Enabled": false
}
},
"ReverseProxyIntegration": {
"BasePath": "/am/proxies/sms"
},
"Localization": {
"DefaultCulture": "en-US"
}
}
Select the connection type
Before you configure the group policy, add the Axidian Access policy templates to the administrative template list. The policy template files are included in the SMS Proxy distribution and are located in the Misc folder.
- With GPO
- In the registry
The Select the provider connection type policy applies to the Axidian Access servers and is designed to select the Sender of SMS OTP Provider.
- Open the Select the provider connection type policy. The policy is located at Administrative Templates → Axidian-ID → Id Providers → SMS OTP.
- Set the policy value to Enabled.
- In the parameters, select the SMS proxy option for SMS Proxy.
- Open the registry editor on the Axidian Access server.
- Open the
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Axidian-ID\BSPs\SMSOTPsection. - Create the SmsSenderType parameter of the DWORD type with the value 5.
SMS proxy settings
- With GPO
- In the registry
The policy applies to the Axidian Access servers and defines the settings of the SMS sending service.
Enable the SMS proxy settings policy and specify the required parameters:
- URL — the connection address of SMS Proxy. For example:
https://am1.axidian.local/am/proxies/sms. - Sender — the sender name displayed when the SMS is received.
- Additional text before the OTP — an arbitrary message text that precedes the one-time password.
- Client certificate thumbprint (an optional parameter) — the provider certificate specified in the SMS Proxy
app-settings.Production.jsonconfiguration file (theAuthentication": {"Certificate": {"Thumbprint": "" } }field). This certificate is added to the client certificate list when a request is made to SMS Proxy. - Server certificate thumbprint — the SMS Proxy certificate for working through HTTPS (configured in IIS).
- Open the registry editor on the Axidian Access server.
- Open the
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Axidian-ID\BSPs\SMSOTP\SMSProxysection. - Create the following parameters:
- ServerUrl — the connection address of SMS Proxy. For example:
https://am1.axidian.local/am/proxies/sms. - From (REG_SZ) — the sender name displayed when the message is received.
- messageOTP (REG_SZ) — an arbitrary message text that precedes the one-time password.
- ClientCertificateThumbprint (REG_SZ) — the provider certificate specified in the SMS Proxy
app-settings.Production.jsonconfiguration file (theAuthentication": {"Certificate": {"Thumbprint": "" } }field). - ServerCertificateThumbprint (REG_SZ) — the SMS Proxy certificate for working through HTTPS (configured in IIS).
- ServerUrl — the connection address of SMS Proxy. For example:
Mutual TLS connection
To establish a mutual TLS connection between Core Server and SMS Proxy:
For the SMS Proxy server (server), generate a server authentication certificate (using the Web Server template).
For Core Server (client), generate a client authentication certificate (for example, using the Computer template in the Windows domain certification authority).
To do this, on the host with Core Server:
Open the certificate manager certlm.msc.
In the Personal folder, right-click Certificates and select All Tasks → Request New Certificate.
In the Certificate Enrollment window, click Next → Next and select the Computer certificate template you created earlier.
Export the client certificate to a file and install it on the SMS Proxy server in Computer certificates → Personal.
In the SMS Proxy configuration file, specify the following parameters.
"Authentication": {
"Certificate": {
"Enabled": true,
"Thumbprint": "client_certificate_thumbprint"
}
}
In the table below, you can find the possible parameters for the "Authentication": {"Certificate":} field.
| Parameter | Description |
|---|---|
Authentication:Certificate:Enabled | true by default. Enables the use of a mutual TLS connection. |
Authentication:Certificate:ForwardingEnabled | true by default. Enables support for forwarding the client certificate from the proxy server in the Authentication:Certificate:ForwardingHeader HTTP header. |
Authentication:Certificate:ForwardingHeader | A Base64-encoded certificate is expected. In an out-of-process integration with IIS, the certificate is passed in MS-ASPNETCORE-CLIENTCERT, which is used automatically. Example: Proxy-Client-Certificate |
Authentication:Certificate:Thumbprint | Example: 380854EA27F2BAED041A941CAC73337E27D0BA6A |
Authentication:Certificate:RevocationMode | NoCheck by default. The possible values are NoCheck, Online, Offline. |
Authentication:Certificate:ValidateCertificateUse | true by default. Defines whether the EKU check is required. |
Authentication:Certificate:ValidateValidityPeriod | true by default. Defines whether the certificate validity period check is required. |
- Add the certificate thumbprint to the SMS proxy settings policy on Core Server.