Identity Provider
The Identity Provider module (formerly SAML IDP) is used to organize multifactor authentication and single sign-on to web applications.
Starting from Axidian Access 8.1.5, the Identity Provider module supports the following protocols:
If you use Axidian Access 8.1.4 or lower, you can find the required information about installing and configuring the module in the Axidian Access 8.1 documentation.
Identity Provider relieves the user of the need to memorize multiple credentials: only one set of credentials is required to access all integrated systems. Authentication is performed centrally on the Identity Provider side.
In Identity Provider, you can authenticate with the following authenticators:
- Email OTP
- Hardware OTP
- Hardware TOTP
- Passcode
- Secured TOTP
- SMS OTP
- Software OTP
- Storage SMS OTP
- Telegram Provider (in the mode of sending one-time passwords and push notifications with login confirmation)
- Windows Password
- the Axidian Key mobile application (in the mode of sending one-time passwords and push notifications with login confirmation)
Prerequisites
Before installing Identity Provider:
Install .NET 6 on the server.
To do this, run the
dotnet-hosting-6.0.10-win.exeutility located atAxidian Access <version number>/Axidian Idp.Correct operation of Identity Provider is guaranteed only when .NET 6 is used.
Install the required Internet Information Services components.
To do this, run the
Axidian.SAML.IIS.Install.MSServer.ps1script fromAxidian Access <version number>/Misc/IISScriptsin PowerShell as an administrator.If the security settings do not allow running the script, open
Axidian.SAML.IIS.Install.MSServer.ps1in Notepad, copy all the commands, and run them in PowerShell as an administrator.
By default, Identity Provider uses Windows authentication. For non-domain scenarios, enable anonymous authentication.
Enable anonymous authentication
- In IIS Manager, in the left menu, select Axidian Access → sites → Default Web Site → am → idp and click Authentication.
- Enable the Anonymous Authentication option and leave the other options disabled.
Install and configure Identity Provider
To install and configure Identity Provider:
- Run
Axidian.IDP-<version number>.en-us.msilocated atAxidian Access <version number>/Axidian Idp.
By default, a new IDP server certificate is created and installed after the package is installed. The certificate encrypts the data transmitted between Core Server and the end applications, such as Management Console.
The certificate is not intended for establishing an SSL connection.
If the certificate was generated earlier, clear the Create and install a new IDP server certificate check box in the installation wizard window.
Add a binding in the IIS settings:
- In IIS Manager, in the left menu, select Axidian Access → sites → Default Web Site.
- Click Bindings in the Actions section of the right menu.
- Click Add and specify the following parameters in the window that opens:
- In the Type field, select https.
- In the Port field, specify 443.
- In the SSL certificate field, select the web server certificate.
- Click OK to save the binding.
- (Optional) If you use Windows Server 2022 or higher, enable the Disable TLS 1.3 over TCP option and then restart IIS.
Identity Provider is a web application that runs on IIS. For security reasons, Identity Provider works only over the HTTPS protocol. Do not change the protocol, as this reduces the connection security.
If you plan to use the HTTP protocol, edit the Web.config file in the C:\inetpub\wwwroot\am\idp folder.
Modify the Web.config file
In the aspNetCore tag, add the following lines:
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
Result:
<aspNetCore processPath="dotnet" arguments=".\AM.IDP.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
Modify the configuration file
To configure the Identity Provider module:
Open the
app-settings.jsonconfiguration file located atC:\inetpub\wwwroot\am\idp.In the
AuthenticationServersection, in theUrlparameter, specify the Core Server address in the formathttp(s)://full_dns_server_name/am/core/."AuthenticationServer": {
//highlight-grey-next-line
"Url": "AUTH_SERVER_URL",
"IsIgnoreCertErrors": false
}Server address examplehttps://server.test.local/am/core/ImportantFor correct operation, we recommend that you install a client certificate on each Core Server.
To ignore server certificate errors, change the value of the
IsIgnoreCertErrorsparameter to true.In the
Serversection, in theUrlparameter, specify the address for connecting to Log Server in the formathttp(s)://full_dns_server_name/ls/api."Server": {
"Url": "LOG_SERVER_URL"
}Log Server address examplehttps://server.test.local/ls/api/In the
LocalIdentityProviderConfigurationsection, set the values of the following parameters:In the
SingleSignOnServiceUrlparameter, specify the Identity Provider address in the formathttp(s)://full_dns_server_name/am/idp/Account/SsoService."LocalIdentityProviderConfiguration": {
"Name": "urn:axidianid:saml_idp",
//highlight-grey-next-line
"SingleSignOnServiceUrl": "IDENTITY_PROVIDER_URL/Account/SsoService"SSO server address examplehttps://server.test.local/am/idp/Account/SsoServiceIn the
Thumbprintparameter, specify the thumbprint of the Identity Provider certificate that was generated during the installation."LocalIdentityProviderConfiguration": {
"LocalCertificates": [
{
//highlight-grey-next-line
"Thumbprint": "YOUR_CERTIFICATE_THUMBPRINT"
}
]
}To get the certificate thumbprint, use the following PowerShell request:Get-Childitem Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq "CN=idp"}
In the
AuthenticationMethodssection, delete the unnecessary lines and add the identifiers of the providers you plan to use in the following format:- In the
Nameparameter, specify an arbitrary unique value. - In the
Providersparameter, specify the identifier of the provider used.
Identifiers available for Identity Provider
- SMS OTP {EBB6F3FA-A400-45F4-853A-D517D89AC2A3}
- Storage SMS OTP {3F2C1156-B5AF-4643-BFCB-9816012F3F34}
- Email OTP {093F612B-727E-44E7-9C95-095F07CBB94B}
- Passcode {F696F05D-5466-42b4-BF52-21BEE1CB9529}
- Software OTP {0FA7FDB4-3652-4B55-B0C0-469A1E9D31F0}
- Secured TOTP {F15FD7EC-19EA-4384-846E-A2D0BE149FA2}
- Hardware OTP {AD3FBA95-AE99-4773-93A3-6530A29C7556}
- Hardware TOTP {CEB3FEAF-86ED-4A5A-BD3F-6A7B6E60CA05}
- Axidian Key {DEEF0CB8-AD2F-4B89-964A-B6C7ECA80C68}
- Windows Password {CF189AF5-01C5-469D-A859-A8F2F41ED153}
- Telegram Provider {CA4645CC-5896-485E-A6CA-011FCC20DF1D}
Example of using one provider"AuthenticationMethods": [
{
"Name": "Passcode",
"Providers": [
"F696F05D-5466-42b4-BF52-21BEE1CB9529"
]
}Example of using several providers"AuthenticationMethods": [
{
"Name": "HOTP_Passcode",
"Providers": [
"AD3FBA95-AE99-4773-93A3-6530A29C7556",
"F696F05D-5466-42b4-BF52-21BEE1CB9529"
]
}- In the
In the
SelfServicesection, set theAllowWinPwdIfAuthMethodsAreNotAvailableparameter to one of the following values:If you set the value to
true, users can log in to User Console through Identity Provider using Windows Password even if they have no authenticator. This value also allows logging in to User Console with any authenticator, even if it is not specified in theAuthenticationMethodssection.If you set the value to
false, authorization with Windows Password is not available if this authentication method is not present in theAuthenticationMethodssection. Logging in to User Console is possible only with the authenticator specified in this section.
NoteIf you use authentication both with Windows Password and with a provider, the event log displays the following:
- If Windows Password was entered correctly and the provider incorrectly, a successful login to Identity Provider with Windows Password is registered in the user events.
- If both Windows Password and the provider were entered correctly, a successful login with the provider is registered in the user events.
In the
OIDCsection, in theCertificateThumbprintparameter, specify the thumbprint of the Identity Provider certificate that was generated during the installation.To get the certificate thumbprint, use the following PowerShell request:Get-Childitem Cert:\LocalMachine\My\ | Where-Object {$_.Subject -eq "CN=idp"}(Optional) To configure Axidian Access 8.2 to work with Mobile Device Provisioning 9.x and authentication through IDP 8.2, add the following parameters for the
urn:axidianid:mobiledeviceprovisioningapplication in theSAMLblock:SignLogoutResponsewith the valuetrue— this parameter is required for the Logout button in the MDP 9.x interface to work correctly; without this setting an error may appear.Thumbprintwith the thumbprint of the Identity Provider 8.2 certificate.
To get the certificate thumbprint, use the following PowerShell request:Get-ChildItem Cert:\LocalMachine\My\ | Where-Object { $_.Subject -match "CN=idp" }Example
{
"Name": "urn:axidianid:mobiledeviceprovisioning",
"SingleLogoutServiceUrl": "https://amcore.axidian-test.com/am/mdp/Account/SLOService",
//highlight-grey-next-line
"SignLogoutResponse": true,
"PartnerCertificates": [
{
//highlight-grey-next-line
"Thumbprint": "67446E7995669269987637CA26F953D4B9E9F2DC"
}
]
},Save the configuration file and restart IIS.