FileMaker 17 Security Guide: Best Practices for Configuring Security Options
FileMaker security overview
About this guide
This guide describes the security features available with the FileMaker platform and the steps you can take as a solution developer, a server administrator, or an IT professional to apply these security features to your FileMaker solutions.
Depending on your security compliance and certification requirements, there may be additional steps you need to take. It is your responsibility to fully understand these requirements.
For the latest FileMaker security updates, see FileMaker Security Updates in the FileMaker Knowledge Base.
Note:This guide uses "Admin Console" to refer to both FileMaker Server Admin Console and FileMaker Cloud Admin Console, unless describing a particular product.
FileMaker security features
The FileMaker platform's features help you control data access, operations, and development within a FileMaker file. Key capabilities include:
- Authentication with accounts: FileMaker encrypts credentials stored within solutions so the credentials are protected. Users can also authenticate via Active Directory, Open Directory, or OAuth identity providers.
- Access control with privilege sets: You define permissions that determine levels of access to your solution. You can define as many privilege sets as needed.
- Data encryption on the disk and during transmission: You can encrypt the data stored within a FileMaker solution. You can also require Secure Socket Layer (SSL) encryption of data between FileMaker Server or FileMaker Cloud and FileMaker Pro Advanced, FileMaker Go, FileMaker WebDirect, FileMaker Data API, and ODBC and JDBC client applications.
- Server monitoring and administration: Admin Console allows you to monitor solution access, disconnect idle users, and create backups of your solutions.
The FileMaker platform employs a unified security model, where the security that you establish for a solution is in effect across all clients.
Security settings defined within a solution using FileMaker Pro Advanced apply only to the information and schema (layouts, tables, fields, relationships, and scripts) stored in that solution.
Security settings configured within FileMaker Server and FileMaker Cloud are deployment specific and apply to all solutions hosted by the server.
Security for solution developers
Make the solutions you design in FileMaker Pro Advanced more secure by using features to authenticate users, limit access to the solution, encrypt data, and enhance functionality in secure ways.
FileMaker solutions require users to authenticate with an account name and password combination. Each account is given access privileges based on the associated privilege set. See Define privilege sets.
Create a unique account for each user. This allows you to track who is creating or modifying individual records or taking other actions in your solution. Track this information by using auto-enter field settings or by using the Get(AccountName) function in calculations and scripts. See Use functions, scripts, and script triggers to enhance security.
FileMaker solutions can authenticate accounts internally, externally, or with an OAuth identity provider.
- With internal authentication (via FileMaker Pro Advanced), the account name and password are stored within the solution. All security for a solution is set up in FileMaker Pro Advanced without server software, making it the quicker and easier option for managing accounts.
- With external authentication (via Open Directory or Active Directory) or with OAuth identity provider authentication, FileMaker Pro Advanced stores only user and group names and interacts with an external server or OAuth identity provider to authenticate a user's account and password. The solution must be hosted using FileMaker Server or FileMaker Cloud, and the host must be configured to allow external authentication or individual OAuth identity providers. See Set up external authentication and Set up OAuth identity provider authentication.
Note:Shared accounts are a security risk, so use individual accounts instead of shared accounts. If you must use shared accounts, limit the access capabilities of the privilege sets that the shared accounts use. Change the password frequently and when specific users no longer require access.
About the default accounts
Each solution initially contains two accounts: Admin and Guest.
The Admin account permits access to everything in the solution. By default, this account is assigned the Full Access privilege set. This account is fully editable. You can rename it, assign it a password, and make the account inactive. You can delete the Admin account, but the file will require at least one account with the Full Access privilege set unless you remove that privilege set completely.
By default, the Admin account has no password. Assign a password when you first begin working in FileMaker Pro Advanced. See Assign the Admin account a password.
The Guest account allows users to access a file without supplying any account information. By default, this account is assigned the Read-Only Access privilege set, but you can assign the account any privilege.
Initially, the Guest account is inactive. You cannot delete the Guest account, change the Guest account name, or assign it a password.
Assign the Admin account a password
When you create a new solution, FileMaker Pro Advanced creates an Admin account with the Full Access privilege set. This Admin account does not have a password.
Be sure to assign a password to this account to prevent unauthorized access to your data and database schema.
Disable the Guest account
When you create a new solution, FileMaker Pro Advanced creates a Guest account with the Read-Only Access privilege set. This Guest account does not have a password.
Do not enable the Guest account unless it is necessary for the solution. If you enable the Guest account, it's possible to quickly reach the maximum number of connections if many users log in to the Guest account in a short period of time.
See Creating and editing accounts in FileMaker Pro Advanced Help.
When you create an account, you give it an account name, password, and privilege set.
Select Require password change on next login in the Edit Account dialog box to prompt the user to create a password.
Passwords are stored using a one-way hash, meaning the password can be encrypted but never decrypted. You can reset a password, but you can't recover a password.
Prompt users for a password
New solutions don't prompt for account names or passwords. To prompt users to enter account names and passwords, deselect the FileMaker Pro Advanced File Options dialog box Log in using option.
Do not allow Credential Manager (Windows) and Keychain Access (macOS and iOS) to save account names and passwords. When you prevent Credential Manager and Keychain Access, FileMaker prompts users to enter account names and passwords each time they open the solution.
If you allow Keychain Access, you can require FileMaker Go users to authenticate with iOS before FileMaker Go can access its keychain.
Set up external authentication
If you host files using FileMaker Server, you can create external server accounts that are authenticated by Active Directory or Open Directory. You can then use your existing authentication server to control access to databases, instead of managing an independent list of accounts in each database file.
Alternatively, you can use local security groups and accounts on the server machine hosting FileMaker Server. Refer to Help for your operating system.
Use external authentication if:
- your organization already uses Active Directory or Open Directory.
- your FileMaker file will be accessed by other files in a multifile solution.
- your organization enforces minimum password standards. FileMaker Pro Advanced can enforce elementary standards, such as password length and frequency of changing the password. External authentication offers more robust password control, such as enforcing password complexity requirements.
If you host files using FileMaker Server installed in Windows Server and use Active Directory for external authentication, your Windows users can use Single Sign-On with FileMaker Pro Advanced.
There is a risk with external authentication that someone will gain access to your file by simulating the external authentication environment or mismanaging the groups. It is your responsibility to prevent this by maintaining the security of your external authentication server. Enable database encryption for your solution files to reduce this risk. Database encryption requires users to provide the encryption password before they can share the file on FileMaker Server. See Encrypt data.
Set up external authentication accounts within the file using FileMaker Pro Advanced, then host the file using FileMaker Server and configure it for external authentication. See Creating accounts that authenticate via an external server in FileMaker Pro Advanced Help, Enable external authentication, and Setting up FileMaker Pro Advanced clients and FileMaker Server to use external authentication using the LDAP protocol in the FileMaker Knowledge Base.
Important information when using external authentication
- You must use the external authentication server to reset passwords.
- Set accounts in the order you want FileMaker to authenticate them. When multiple accounts share an account name and password, or when an external account belongs to multiple groups, FileMaker opens the file using the first matching account in the authentication order. Any matching accounts that follow the first are ignored.
- Do not create externally authenticated accounts with the Full Access privilege set. Maintain a local FileMaker account for administration purposes in case the file needs to be removed from FileMaker Server. If there are no local FileMaker accounts, FileMaker can open the file only if the file is hosted and the external authentication server is available.
Set up OAuth identity provider authentication
If you host files using FileMaker Server or FileMaker Cloud, you can create accounts that authenticate users via supported OAuth identity providers. This allows you to control access to your databases through third-party identity providers. This may also allow access to additional security measures—such as multifactor authentication, which requires more than one method of authentication. Instead of managing an independent list of accounts in each file, you can use your OAuth identity providers to control access to your FileMaker databases.
To authenticate via OAuth identity providers, use FileMaker Pro Advanced to set up accounts within the solution. Then host the solution using FileMaker Server or FileMaker Cloud, and configure FileMaker Server or FileMaker Cloud to authenticate with OAuth identity providers. See Creating accounts that authenticate via an OAuth identity provider in FileMaker Pro Advanced Help and Enable OAuth identity provider authentication.
Important information when using OAuth identity providers
- You must use the OAuth identity provider to reset passwords.
- Set accounts in the order you want FileMaker to authenticate them. When multiple accounts share an account name and password, FileMaker opens the file using the first matching account in the authentication order. Any matching accounts that follow the first are ignored.
- Do not create OAuth identity provider accounts with the Full Access privilege set. Maintain a local FileMaker account for administration purposes in case the file needs to be removed from FileMaker Server or FileMaker Cloud. If there are no local FileMaker accounts, FileMaker can open the file only if the file is hosted and the OAuth identity provider is available.
Authenticate in multifile solutions
FileMaker files can access one another in a multifile solution. This can be useful, for example, if you have a centrally accessible file of employee contact information that is used by multiple internal solutions.
When you open one file from another (such as for viewing external data or running a script in an external file), FileMaker passes the credentials the user supplied at login to the second file. If there is a corresponding account and matching password, FileMaker logs in the user to the second file. If there is no corresponding account, the user must log in to the second file.
You can create accounts manually in multiple files, but you may cause data entry errors. To reduce such errors, use external authentication. See Set up external authentication.
Review the accounts and privilege sets in each file of a multifile solution. If privilege sets do not match across files or an account has additional privileges in a file, users may gain access to data that would normally be restricted to them. See Define privilege sets.
Additionally, make sure that users cannot make references to files in a solution without the solution designer's assistance. Otherwise, they may gain access to restricted data. See Restrict references to a solution.
Define privilege sets
About privilege sets
Privilege sets grant access to the features a user can see and the tasks a user can do. They allow you to control access to data and schema. You can use a privilege set with multiple accounts.
Every new FileMaker solution contains three predefined privilege sets:
- Full Access: Allows complete access to the file, including all development features.
- Data Entry Only: Allows creating, editing and deleting records, and importing and exporting data. Does not allow access to any development features.
- Read-Only Access: Allows viewing and exporting record data. Does not allow modifications to the file except for values in global fields.
You can also create new privilege sets to meet your specific requirements. Typically, you will create a privilege set for each unique role in your organization. A privilege set is made up of these access options:
- Data access and design privileges: Provide access to a wide range of security control, including records, layouts, value lists, and scripts.
- Extended privileges: Determine how users access a shared file.
- Other privileges: Allow printing, exporting, and some other functions.
All clients and tools that access FileMaker solutions respect users' privilege sets. For example, if a user is assigned a privilege set that does not allow access to a field, the user cannot access the field using FileMaker Pro Advanced, FileMaker Go, FileMaker WebDirect, Custom Web Publishing, FileMaker Data API, ODBC and JDBC applications, external tools like AppleScript or ActiveX, or other means.
Create privilege sets
To create a privilege set, name and configure the privileges you want users to have for the solution.
By default, most privileges are turned off. This limits a user's privileges to only those necessary to fulfill the user's role.
See Creating and editing privilege sets in FileMaker Pro Advanced Help.
Define data access and design privileges
Data access and design privileges grant access to different parts of a file and apply to all tables, layouts, value lists, and scripts.
You can also design custom privileges to further restrict access privileges.
- Design custom privileges for records in order to control user access to individual tables or records. For example, you may have a CRM system where the sales managers can see all the records but individual sales representatives see only the records of their own customers and prospects.
- Design custom privileges for layouts to control whether and how users can view or modify a layout, and whether they can view or modify records when working with that layout. The FileMaker platform always uses the most secure combination of access rules. For example, a user who can generally edit records will be prevented from editing records on a layout that doesn't allow those privileges.
- Design custom privileges to control whether users can view, run, modify, delete, or create individual value lists and scripts.
Define extended privileges
Extended privileges determine how users access a shared file. Once you enable extended privileges for a privilege set, any accounts attached to that privilege set can access the file according to what the extended privilege allows.
The following table lists the default extended privileges.
|Keyword||Allows accounts to|
|fmwebdirect||Access a database file from a web browser via FileMaker WebDirect.|
|fmxdbc||Access a database file as an ODBC or JDBC data source.|
|fmapp||Access a shared file (either a file shared by FileMaker Pro Advanced or hosted and shared by FileMaker Server or FileMaker Cloud).|
|fmreauthenticate[x]||Access a file in FileMaker Pro Advanced or FileMaker Go without having to re-log in after file hibernation or after using a different app. The default time is ten minutes.|
|fmxml||Access a database file from a web browser or other application via XML web publishing (FileMaker Server only).|
|fmphp||Access a database file from a web browser or other application via PHP web publishing (FileMaker Server only).|
|fmrest||Access a database file from a web service via the FileMaker Data API (FileMaker Server only).|
|fmextscriptaccess||Access a database file from another application via Apple events and ActiveX.|
|fmurlscript||Perform a script from a URL.|
Important:If your users use FileMaker Go, specify the fmreauthenticate[x] extended privilege.
When FileMaker Go moves to the background, it saves the state of any open FileMaker custom apps (solutions).
With the fmreauthenticate[x] extended privilege, when FileMaker Go switches to the foreground, users must reenter the account name and password if the specified time limit, [x] minutes, has elapsed. For example, an extended privilege of fmreauthenticate10 allows the user to keep FileMaker Go in the background for up to ten minutes before the user must sign in again. You can create as many extended privileges with different time periods as you need and assign them to different privilege sets. Users can attempt to enter their account name and password five times before FileMaker Go closes the file. Set [x] to 0 to make users sign in each time FileMaker Go returns to the foreground.
The fmreauthenticate[x] extended privilege also reconnects a FileMaker Pro Advanced or FileMaker Go client to a FileMaker host after a network outage. If the client was disconnected from the host for more than x minutes, the client must reauthenticate.
You can create custom extended privileges to simplify your scripts or to manage the business rules you need to enforce. For example, create custom extended privileges to allow users to run certain reports.
See Editing extended privileges for a privilege set in FileMaker Pro Advanced Help.
Define other privileges
Other privileges specify whether the privilege set allows users to:
- print – includes both printing and saving records as PDF
export – includes exporting records, saving records as an Excel file, copying records in a found set to the Clipboard, saving a copy of the file, accessing data with Apple events, and using the file as the source of an import
Note:This privilege doesn't affect accessing data with ActiveX.
- manage extended privileges
- override data validation warnings
- disconnect users from a hosted solution when a client is idle
- modify their passwords
- access menu commands (all, editing only, minimum)
Remove the Full Access privilege set
To ensure that users can't gain access to parts of the solution and schema that would normally be restricted to them, use FileMaker Pro Advanced to permanently remove the Full Access privilege set from the solution.
Important:Removing the Full Access privilege set permanently deletes from the solution all accounts that were using the Full Access privilege set. This permanently eliminates access to Layout mode, the Script Workspace, and all tabs in the Manage Security dialog box except Extended Privileges. This includes all database files in the solution, whether opened in a runtime application or in FileMaker Pro Advanced. Schema and design elements of the files cannot be recovered. The only way to modify the tables, field definitions, relationships, scripts, or access privileges is by returning to the original file before it was customized by the Developer Utilities in FileMaker Pro Advanced.
See Removing Admin access to databases in FileMaker Pro Advanced Help.
Encrypt a solution
Use FileMaker Pro Advanced to encrypt all the information stored in a file (also known as Encryption at Rest). Database encryption protects your solution if someone gains physical access to the file.
Database encryption requires a local FileMaker account with Full Access privileges to all files, an encryption password, and a shared ID. Users must enter the encryption password whenever FileMaker Pro Advanced or FileMaker Go opens a local file, or when FileMaker Server or FileMaker Cloud opens a file before hosting it. The shared ID links multiple encrypted files. When one encrypted file attempts to access another encrypted file, the user will not be prompted again for the encryption password if the files' encryption passwords and shared IDs match.
When you open an encrypted file on FileMaker Server or FileMaker Cloud, you can save the password to automatically open encrypted files when the server restarts. FileMaker employs a two-way AES-256 encryption that uses a composite key based on information from the machine to encrypt the password and stores the password securely on the server.
Encrypt field data
Encrypt container data
If database encryption is enabled for a solution, or if container data is configured to be stored externally, all container data is encrypted by default. If you don't want to encrypt container data when you encrypt database files or store container data externally, you can keep the container data in open storage. See Encrypting database files and Setting up container fields to store data externally in FileMaker Pro Advanced Help.
Limit access to the solution through layouts
Design layouts that limit users' view of data and access to features according to their needs and privilege sets. Also, consider hiding the status toolbar and instead providing buttons that perform allowed tasks.
Note:Limiting access to solution data and features on a layout does not prevent users from accessing data with script steps, functions, AppleScript, or by other means. Define privilege sets to restrict user access to data and features in all clients. See Define privilege sets.
Use functions, scripts, and script triggers to enhance security
Use FileMaker functions, scripts, and script triggers to enhance security for common tasks such as deleting, auditing, and maintaining records. For example, use scripts to:
- add or delete accounts, reset account passwords, change passwords, enable or disable accounts, and re-log in as a different user
- archive records when you don't want a user to delete records
- provide information about the user's current session and state for regulatory compliance and auditing
- provide custom messages when security limitations affect the user
Important:Do not use functions, scripts, or script triggers to replace FileMaker security features.
- By default, scripts run using the privilege set of the account that is currently logged in. This can cause issues if the script tries to perform an action the user does not have the privileges to do. Test all scripts across all privilege sets to protect the integrity of your data.
- When using script steps to communicate with systems outside FileMaker, choose available options that interact via SSL encryption. For example, the Insert from URL script step includes the Verify SSL Certificates option, and the Send Mail script step allows communication with SMTP servers that use SSL encryption.
- Use functions to get information about the current user. For example, use the Get(AccountExtendedPrivileges) function to test whether a user has a specific privilege.
Restrict references to a solution
Restrict references to a solution to prevent the solution's schema from being accessed by unauthorized files. For another file to access the solution's schema and data, either the file must be authorized within the solution or the user must enter valid credentials for the solution.
You can specify that only accounts with the Full Access privilege set can create references to the solution, ensuring that only solution designers and administrators can reference the solution.
In a multifile solution, you must authorize each file that needs access to another file's schema.
See Authorizing access to files in FileMaker Pro Advanced Help.
Set a minimum client version
Set a minimum version of FileMaker Pro Advanced or FileMaker Go that's allowed to access the solution. Newer versions of FileMaker clients provide features and security changes not available in older versions, so restrict which clients can access to the solution. See Setting file options in FileMaker Pro Advanced Help.
Use plug-ins only from trusted sources, because plug-ins can access and modify your solution and connect to other services over the Internet.
For additional security and to prevent unauthorized plug-ins from being installed, you can enable or disable the installation of plug-in files. This is a FileMaker Pro Advanced preference, not a file preference, and determines whether plug-ins can be installed on the user's computer.
See Setting plug-in preferences in FileMaker Pro Advanced Help. To enable plug-ins in FileMaker Server, see Enable plug-ins in FileMaker Server and FileMaker Cloud.
Security for server administrators
FileMaker Server and FileMaker Cloud host solutions for the following clients:
- FileMaker Pro Advanced
- FileMaker Go
- FileMaker WebDirect
- Web users and web applications via the Web Publishing Engine using Custom Web Publishing with PHP and Custom Web Publishing with XML (FileMaker Server only)
- Web services or applications using the FileMaker Data API to access data in hosted solutions
- ODBC and JDBC applications
The following sections outline the steps for setting up security in FileMaker Server and FileMaker Cloud.
If you are using FileMaker Server, be sure that you installed it in a secure location and that you are using SSL encryption to encrypt HTTPS communication between clients and the server:
Enable external authentication
Note:This feature is not available in FileMaker Cloud.
With FileMaker Server, you can use your existing authentication server to control access to files without having to manage an independent list of accounts in each file.
Set up external authentication accounts within the file using FileMaker Pro Advanced, host the file using FileMaker Server, and configure it for external authentication. To set up accounts in FileMaker Pro Advanced, see Set up external authentication.
To enable external authentication in FileMaker Server:
- In FileMaker Server Admin Console, click the Administration > External Authentication tab.
- For Database Sign In, enable FileMaker and External Server Accounts.
To use Active Directory or Open Directory, the server where FileMaker Server is installed must be a member of the domain used for external authentication.
Test thoroughly. See Test security settings.
Enable OAuth identity provider authentication
With FileMaker Server or FileMaker Cloud, you can use supported OAuth identity providers to control access to files without having to manage an independent list of accounts in each file.
Set up OAuth identity provider accounts within the file using FileMaker Pro Advanced, host the file using FileMaker Server or FileMaker Cloud, and configure it for OAuth identity provider authentication. To set up accounts in FileMaker Pro Advanced, see Set up OAuth identity provider authentication.
To enable OAuth identity provider authentication in FileMaker Server:
- In FileMaker Server Admin Console, click the Administration > External Authentication tab.
- For Identity Authentication Settings, configure the OAuth identity provider—Amazon, Google, or Microsoft—that will be used to authenticate access.
- For Database Sign In, enable FileMaker and External Server Accounts.
- Enable the OAuth identity provider that you configured for Identity Authentication Settings.
To enable OAuth identity provider authentication in FileMaker Cloud:
- In FileMaker Cloud Admin Console, click the Configuration > Client Authentication tab.
Click Settings for the OAuth identity provider—Amazon, Google, or Microsoft—that will be used to authenticate access.
Note:In FileMaker Cloud, Amazon identity provider authentication is shared by the FileMaker Cloud administrator and by clients; the Amazon Client ID and Client Secret are synchronized.
Test thoroughly. See Test security settings.
Limit the list of hosted solutions
Note:This feature is not available in FileMaker Cloud.
The Hosts dialog box in FileMaker Pro Advanced and the Launch Center in FileMaker Go and FileMaker WebDirect display a list of hosted solutions. By default, the list shows all the hosted solutions available on a server. With FileMaker Server, you can limit this list to show only the solutions that the current user may access. See Filter databases setting in FileMaker Server Help.
Require passwords for hosted files
Make sure all hosted databases require a client to specify an account and password. The following types of databases are insecure:
- databases that have a Guest account using the Full Access privilege set
- databases that have any Full Access account with an empty password
- databases that have any Full Access account with the password stored in the database (using the FileMaker Pro Advanced File Options dialog box Log in using option)
By default, FileMaker Server prevents insecure databases from being hosted. See Hosting databases in FileMaker Server Help. FileMaker Cloud always requires password protection for hosted databases.
When a FileMaker Pro Advanced user attempts to upload a database using the Upload to FileMaker Server menu item, FileMaker Pro Advanced validates that the database is password protected. If the host requires databases to be password protected, FileMaker Pro Advanced doesn't allow the above types of insecure databases to be uploaded.
View log files
As FileMaker Server and FileMaker Cloud run, they log server activity. Use the log files to collect client access information and other information needed for regulatory and auditing purposes.
Disconnect idle users
Set the maximum amount of time that FileMaker users can be idle when they are connected to a file hosted by FileMaker Server or FileMaker Cloud. This idle time limit reduces the risk of your files being accessed by an unattended computer or mobile device. However, make sure the idle time is long enough to avoid frequent disconnections.
In FileMaker Pro Advanced, in the Edit Privilege Set dialog box, select Disconnect user from server when idle for each privilege set you want disconnected when a user is idle. Because you can set this option for each privilege set, certain users are disconnected when idle and other users will always maintain their connections. In FileMaker Pro Advanced and FileMaker Go, users logged in with the Full Access privilege set are never disconnected when idle.
Set up backups
It's important to back up FileMaker solutions to prevent data loss. If data in a file is destroyed, you can revert to the backup.
Backups in FileMaker Server
FileMaker Server offers several types of backups: automatic, on-demand, scheduled, and progressive.
- For automatic backups, FileMaker Server creates a full backup of all hosted databases once a day.
- For on-demand backups, you can create a full backup of all hosted databases at any time by clicking Back Up Now.
- With a scheduled backup, FileMaker Server checks whether data has changed since the last backup and creates a full copy of any databases and container data that have changed.
- With a progressive backup, FileMaker Server creates two full backups in the progressive backup folder of all hosted databases. Then, after the specified interval, it applies any changes to the oldest backup copy.
FileMaker Server saves backups only to local disks. Use other tools to copy the local backups to provide offsite backups for disaster recovery. Be sure to specify a secure physical location for stored backups.
Important:FileMaker Server creates the directory structure for these backups. To work with a backup file, leave the original file unchanged in the backup folder. Never open the original backup file with FileMaker Pro Advanced, edit it, or move it out of the backup folder. Instead, copy the file and work exclusively with the copy.
See Understanding backup options in FileMaker Server Help.
Backups in FileMaker Cloud
FileMaker Cloud offers backups as snapshots of your storage volume, which contains all your data, including databases, configurations, and logs. Backups run every twenty minutes, and FileMaker Cloud stores one week of backups. FileMaker Cloud can also preserve backups in Amazon Simple Storage Service.
See Working with backups in FileMaker Cloud Help.
Non-root administrators in FileMaker Server
You can allow externally authenticated accounts to sign in to Admin Console and act as server administrators. These accounts can change any setting in FileMaker Server except the Admin Console user name and password.
- For Identity Authentication Settings, configure the External Accounts for Admin Console Sign In setting by entering the group name that will be used to authenticate access. (The format may be groupname, domain\groupname, or groupname@localmachine.)
- For Admin Console Sign In, enable External Accounts.
Non-root administrators in FileMaker Cloud
As the root administrator, you can allow non-root administrators to log in to FileMaker Cloud and manage most aspects of the FileMaker Cloud instance. Non-root administrators can't modify other administrator accounts, import SSL certificates, or discontinue the FileMaker Cloud subscription.
See Adding an authenticated user to FileMaker Cloud in FileMaker Cloud Help.
Decide whether to permit the Perform Script on Server script step
Note:This feature is not available in FileMaker Cloud.
For performance reasons, solution developers may design FileMaker Pro Advanced databases to use the Perform Script on Server script step. For security reasons, FileMaker Server administrators can decide whether to permit Perform Script on Server in hosted solutions.
To disable use of Perform Script on Server,
use the CLI command
fmsadmin serverconfig set scriptsessions=0 to set the maximum simultaneous script sessions to 0 (zero). Any value above zero will allow the Perform Script on Server script step to perform in hosted solutions.
See Using the command line interface in FileMaker Server Help.
Enable plug-ins in FileMaker Server and FileMaker Cloud
Solution developers can design FileMaker Pro Advanced databases to use server-side plug-ins. To enable plug-ins in FileMaker Pro Advanced, see Enable plug-ins.
On the Connectors > Plug-ins tab in FileMaker Server Admin Console, enable FileMaker Script Engine Plug-ins and Web Publishing Plug-ins. These settings enable the FileMaker Script Engine to use external function plug-ins.
In FileMaker Server Admin Console, you can allow scheduled scripts and scripts that run using the Perform Script on Server script step to install, update, and load plug-ins. On the Connectors > Plug-ins tab, enable the Install Plug-in File Script Step settings.
In FileMaker Cloud, you can install plug-ins with the Install Plug-in File script step.
Ensure email notifications are secure
In FileMaker Server Admin Console, if you use the Configuration > Notifications tab to enter the SMTP configuration information for an email server, verify the security of that email server. The email server should always use the most recent Transport Layer Security (TLS) protocol for communication.
See Notifications settings in FileMaker Server Help.
Note:Email sent from FileMaker Cloud Admin Console uses TLS.
Security for IT professionals
FileMaker software runs on your computers and your network. Clients may be accessing your hosted data using your company intranet or over the Internet. As you plan the security of the FileMaker platform, consider the security of your system environment.
The following sections describe how to make your system environment more secure for the FileMaker platform.
Secure the machine running FileMaker Server
Though accounts and privilege sets provide good database protection, they do not provide a completely secure solution. If you're using FileMaker Server, you must protect access to your files and information, and not rely solely on FileMaker Pro Advanced access privileges. For example:
- Protect the physical security of the computers, hard drives, and backup storage media where the database files reside. For example, place the computer running FileMaker Server in a locked room.
- Use the most recent operating system versions certified by FileMaker, Inc.
- If you host FileMaker Pro Advanced databases on a computer that is shared over a network, use operating system security settings and passwords to restrict folder and file access to authorized personnel.
- Set the screen saver feature of your operating system to require a password in order to wake up the computer.
- Never run other network services, such as an email server, on the same machine as FileMaker Server.
- Verify that all other network services support only the highest level of security possible—for example, the most recent TLS protocol. These network services should disable support for insecure protocols—for example, SSLv2 and SSLv3.
Install FileMaker Server components behind the firewall
FileMaker Server contains up to three components:
- Database Server
- Web Publishing Engine
- Web Server Module
You deploy these components on the master machine and can add additional Web Publishing Engines and Web Server Modules on worker machines. You can control where each machine is in relation to your firewall. For example, you can choose to place all components behind the firewall to restrict access to the LAN network. If you place any machines in your deployment behind the firewall, you must open the ports used by FileMaker WebDirect in the firewall to make FileMaker WebDirect available over the Internet. See Ports used by FileMaker Server and FileMaker Cloud.
Important:To enhance the security of your database solution, especially over the Internet, use a firewall on the public side of a FileMaker Server deployment, and use SSL for the web server. See Set up SSL encryption.
Set up SSL encryption
Encrypt the data passed between FileMaker Server or FileMaker Cloud, FileMaker clients, and ODBC and JDBC applications by using SSL technology. An SSL certificate is a data file provided by a certificate authority (CA) that digitally identifies the sender, receiver, or both parties of a secure transaction. SSL certificates are installed on machines running FileMaker applications to provide secure connections between FileMaker Server or FileMaker Cloud and FileMaker clients.
SSL encryption is especially important if clients are accessing your hosted data over the Internet. If you do not use encryption, then your data may be viewed by software that is monitoring your network.
To enable SSL encryption in FileMaker Server, import a custom SSL certificate. See Securing your data in FileMaker Server Help.
SSL encryption is enabled by default in FileMaker Cloud.
- Never share the same SSL certificate between a FileMaker Server machine and a machine running less-secure network services—for example, an email server.
- Never use the same private key to generate multiple SSL certificates that are used on different machines—for example, a FileMaker Server and an email server. A successful attack on the email server could compromise all the other certificates that use the same private key.
- In a multiple-machine FileMaker Server deployment, use a Subject Alternative Name (SAN) certificate or a wildcard certificate on the master and worker machines. Otherwise, each machine in the deployment requires an SSL certificate that matches its unique hostname.
See FileMaker Network Security and Supported SSL Certificates in the FileMaker Knowledge Base.
About the default certificate in FileMaker Server
FileMaker Server provides a default SSL certificate signed by FileMaker, Inc., that does not verify the server name.
Important:The FileMaker default certificate is intended only for test purposes. A custom SSL certificate is required for production use.
About the default certificate in FileMaker Cloud
FileMaker Cloud provides a default SSL certificate issued by the Comodo CA. You can renew the default certificate or import your own custom certificate. See Managing SSL certificates in FileMaker Cloud Help.
Enable HTTP Strict Transport Security
If FileMaker Server has a valid SSL certificate, HTTP Strict Transport Security (HSTS) restricts web clients to HTTPS connections. Once a web client connects to FileMaker Server via HTTPS with HSTS, the web browser prevents the client from using an HTTP connection for content hosted by FileMaker Server.
HSTS is enabled in FileMaker Server when you import a custom SSL certificate.
- HSTS is always enabled in FileMaker Cloud.
- macOS: In FileMaker WebDirect, when HSTS is enabled, make sure that custom homepages and custom web content are hosted in the Web Publishing Engine HTTPS directory.
Test for SSL encryption
To test the encryption between the FileMaker Server or FileMaker Cloud and FileMaker Pro Advanced or FileMaker Go clients, use the Get(ConnectionState) function. It will return a value of:
- 0 for no network connection for the current file.
- 1 for a connection that is not encrypted (FileMaker Server with SSL disabled, or to a FileMaker Pro Advanced host).
- 2 for a connection that is encrypted but for which the SSL certificate for FileMaker Server cannot be verified. You may be connected to a server pretending to be your actual destination, which could put your confidential information at risk.
- 3 for a connection that is encrypted with a verified SSL certificate.
For example, write a script to run when a file is opened that alerts the user if the connection to FileMaker Server is not secure.
The user may see a lock icon in the FileMaker Pro Advanced Open File dialog box, the upper-right corner of the FileMaker Pro Advanced window, or the FileMaker Go Opening File screen.
- is equivalent to Get(ConnectionState) returning 1.
- is equivalent to Get(ConnectionState) returning 2.
- is equivalent to Get(ConnectionState) returning 3.
Note:If clients use the IP address of the server rather than the fully qualified host name, they may see an encrypted connection where the SSL certificate for FileMaker Server cannot be verified. To see an encrypted connection with a verified SSL certificate, your clients should add the fully qualified host name as a favorite host in the Hosts dialog box in FileMaker Pro Advanced and the Launch Center in FileMaker Go.
Java security considerations
FileMaker Server and FileMaker Cloud require a minimum update of Java Runtime Environment. If that minimum version is not available when FileMaker Server is installed, then the FileMaker Server installer installs the Java Runtime Environment. In FileMaker Cloud, that minimum version of Java is installed when you create your FileMaker Cloud instance.
Security updates to Java are frequently posted to the java.com website. FileMaker Server and FileMaker Cloud updates may include Java updates, but the java.com website provides Java updates more frequently.
The FileMaker Knowledge Base maintains an article called FileMaker Server and Java, which lists the minimum version of Java that you should use with FileMaker Server. Before applying an update to Java on the machine where FileMaker Server is installed, review the information in this article. If you encounter issues after applying an update to Java, remove the update and revert to the minimum version of Java required by FileMaker Server.
PHP security considerations
Custom Web Publishing with PHP requires a PHP engine on the machine where FileMaker Server is located. When you install FileMaker Server, a version of the PHP engine is installed. However, you can choose to use your own PHP engine.
Security updates to PHP are frequently posted to the php.net website. FileMaker Server updates may include PHP updates, but the php.net website provides PHP updates more frequently. To apply PHP updates more frequently, install and maintain your own PHP engine.
If you maintain your own PHP engine, you must manually install the FileMaker API for PHP in order to use Custom Web Publishing with PHP. See FileMaker Server Custom Web Publishing Guide.
Note:FileMaker Cloud doesn't support Custom Web Publishing and doesn't use PHP.
Replace the default web server page
FileMaker Server uses a default FileMaker Database Server Website page. This page doesn't reveal any security information about your server, but it does indicate that the server is running FileMaker Server. Clients can view the default page at these URLs:
where [host] is the IP address or domain name of the master machine in your FileMaker Server deployment.
To replace this default page, replace the index.html file, which is on the master machine at these locations:
- Windows: [drive]:\Program Files\FileMaker\FileMaker Server\HTTPServer\conf\index.html
- macOS (for HTTP): /Library/FileMaker Server/HTTPServer/htdocs/index.html
- macOS (for HTTPS): /Library/FileMaker Server/HTTPServer/htdocs/httpsRoot/index.html
Other security considerations
Apply updates regularly
Software updates for FileMaker products may contain security improvements. Install updates to keep your FileMaker software as secure as possible. See FileMaker Security Updates in the FileMaker Knowledge Base.
Use the most recent operating system versions certified by FileMaker, Inc.
Apply updates to device drivers and to additional software used with your FileMaker software, such as ODBC drivers.
Use strong passwords
The FileMaker platform uses passwords for authentication in several areas. FileMaker Server and FileMaker Cloud require passwords for their administrator accounts. FileMaker Pro Advanced allows you to define account passwords and encryption passwords. When you are creating a password, FileMaker software analyzes the password and notifies you of the password's strength.
For account passwords, you can use external authentication or OAuth identity provider authentication. With external authentication, you manage passwords using Active Directory in Windows or Open Directory in macOS rather than storing the passwords in FileMaker software. With OAuth identity provider authentication, you manage passwords using supported OAuth identity providers such as Amazon or Google. See Set up external authentication and Set up OAuth identity provider authentication.
Test security settings
When you have completed setting up FileMaker security features, test the security of your solution.
- Set up a test account for each privilege set. Make these accounts active for testing and inactive in your production system.
- Define a checklist of features and functions to test. Step through the checklist with each test account.
- Document your results.
- Repeat testing when new functionality is added.
Continually evaluate your security implementation to make sure your data is still protected. Verify that users have the latest, most secure versions of their operating systems and FileMaker software.
Comply with regulatory requirements
It is your responsibility to fully understand your security compliance requirements and take the appropriate steps.
In addition to the guidelines outlined in this document, depending on your internal or regulatory requirements (COBIT, HIPAA, ISO, PCI, NIST, FIPS, and so on), there may be additional steps you need to take.
- If you need to encrypt all network traffic, turn on SSL in FileMaker Server and then configure SSL for applications and external servers that communicate with FileMaker Server or FileMaker Cloud.
- If you have minimum password standards, use an external authentication server.
- If you need an audit trail, you can build one with FileMaker Pro Advanced using tables and scripts. For more complex requirements, consider using a commercially available audit plug-in.
- Windows: Because FileMaker Server depends on Windows for managing SSL, install the latest Windows security updates.
Provide documentation on a layout in your solution or on a webpage to explain to users how to securely interact with the solution. Include information about accounts and passwords, how to connect securely to FileMaker Server or FileMaker Cloud, how to use functions and scripts, and any other security concerns or requirements regarding your solution.
Quick reference guide for routine operations
|Manage accounts, privileges, extended privileges, or file access||
FileMaker Pro Advanced:
Choose File menu > Manage > Security.
|Immediately stop someone from accessing any data||
FileMaker Server Admin Console:
FileMaker Cloud Admin Console:
FileMaker Pro Advanced:
If the user has access via an external authentication group, remove the user from the external authentication group or disable the user's account in the external authentication server.
In an emergency, close the file to prevent access by everyone.
|Force a user to change their password||
FileMaker Pro Advanced:
Note:You can also write a script to force more than one user to take this action.
If the user has access via external authentication, manage the password using your Active Directory or Open Directory server.
|View log files||
FileMaker Server Admin Console:
FileMaker Cloud Admin Console:
Types of encryption used by FileMaker
FileMaker encrypts data in different ways depending on how the data is stored or transmitted. This table lists the cipher types used when FileMaker encrypts data.
|Account password||One-way hash|
|Admin Console password||One-way hash|
|Database Encryption||AES-256 CBC mode|
Note:With SSL, the cipher mode is dependent on the host and client negotiation, so the cipher mode could be CBC or GCM (or others in the future).
|Secure Storage of container data (with Database Encryption disabled)||AES-128 CBC mode|
|Secure Storage of container data (with Database Encryption enabled)||AES-256 CBC mode|