Secrets Encryption
All Eftsure secrets (such as API credentials and client secrets) are encrypted inside the D365 database. This prevents anyone — including system administrators — from reading the deciphered values. Encryption is implemented using:- Microsoft SQL Server Transparent Data Encryption (TDE) — performs real-time encryption of data written to disk at rest.
- Azure Storage encryption — encrypts data stored in Azure at rest.
SysEncryptionLog table. Secrets are:
- Not exposed in any data entities, public or private.
- Obfuscated in all system logs.
Web Services Security
All communication between D365 FO and the Eftsure cloud uses HTTPS with TLS encryption. No unencrypted channels are used for any Eftsure API calls.HTTPS
Every outbound call made by the Eftsure extension enforces HTTPS. HTTPS is an extension of HTTP that uses TLS to encrypt communication, providing:- Authentication of the Eftsure service endpoint.
- Confidentiality — data cannot be read in transit.
- Integrity — data cannot be tampered with in transit.
TLS
The extension enforces TLS over HTTPS and supports both TLS 1.2 and TLS 1.3, depending on the availability of TLS 1.3 in the target environment.To enable TLS 1.3 on a development or sandbox server, use IIS Crypto to manually enable TLS 1.3 cipher suites on the Windows Server. This is only necessary on development environments where TLS 1.3 is not already enabled.
OAuth 2.0 Client Credentials
The Eftsure extension authenticates with the Eftsure API using the OAuth 2.0 Client Credentials grant type. This flow is designed for server-to-server communication and works as follows:- The extension sends its
client_idandclient_secretdirectly to the Eftsure authorisation server’s token endpoint. - An access token is returned and used for subsequent API calls.
- No user interaction, browser redirection, or user consent is required.
- Refresh tokens are not issued — when the access token expires, the extension requests a new one.
Antivirus Scanning
D365 supports native virus scanning on file attachments — including documents uploaded by vendors during the onboarding process. The extension uses the D365 delegate mechanism to plug in your organisation’s chosen scanning software. Use the following delegates to wire in antivirus scanning:Docu.delegateScanDocument()— scans documents when they are attached.Docu.delegateScanDeletedDocument()— handles scanning on deletion events.
Security Artifacts and Role-Based Access
The Eftsure extension ships with a set of security artifacts — privileges, duties, and roles — that you can use as-is or incorporate into your organisation’s existing custom D365 roles.Assigning Eftsure Duties to Custom D365 Roles
If your organisation uses custom D365 security roles rather than the standard built-in roles, you can assign Eftsure duties directly to those custom roles:1
Open Security Configuration
Navigate to System Administration > Security > Security Configuration.
2
Locate your custom role
Find the custom role to which you want to add Eftsure permissions.
3
Add the required Eftsure duties
Add one or more of the Eftsure duties (
PESView, PESMaintain, PESConfigure, PESSelfCertify, PESPaymentLimit) to the custom role, depending on the access level required.4
Publish the security configuration
Save and publish the updated security configuration. Users assigned to the custom role will immediately inherit the new Eftsure permissions.