FileMaker 18 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.
- Admin Console refers to Admin Console for FileMaker Server and FileMaker Cloud for AWS, unless describing a particular product.
- FileMaker Cloud for AWS is a service that provides access in the cloud to custom apps that use FileMaker Pro Advanced, FileMaker Go, and FileMaker WebDirect. FileMaker Cloud for AWS runs on the Amazon Web Services (AWS) Cloud and is offered through AWS Marketplace.
- Custom app, solution, database, and file are all terms for what you create and work with using FileMaker products.
- For information about FileMaker Cloud for AWS, see FileMaker Cloud for AWS documentation in the Product Documentation Center.
FileMaker security features
The FileMaker Platform's features help you control data access, operations, and development within a FileMaker Pro Advanced file. Key capabilities include:
- Authentication with accounts: The FileMaker Platform 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 solution. You can also require Secure Socket Layer (SSL) encryption of data between FileMaker Server or FileMaker Cloud for AWS and FileMaker Pro Advanced, FileMaker Go, FileMaker WebDirect, FileMaker Data API, and ODBC and JDBC.
- 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 for AWS 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 Pro Advanced solutions require users to authenticate with an account name and password combination. Each account access entry you create in FileMaker Pro Advanced is given access privileges based on the associated privilege set. See Define privilege sets.
Create a unique account access entry for each user or group. 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, with an external authentication server, or with an OAuth identity provider.
- With internal authentication, the account names and passwords 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. This is called a FileMaker file account and is supported by all hosts. See Editing FileMaker file accounts in FileMaker Pro Advanced Help.
- With external authentication (via Open Directory or Active Directory) or with OAuth identity provider authentication, FileMaker Pro Advanced stores only user and group names. FileMaker clients interact with an external server or OAuth identity provider to authenticate a user's account credentials. The solution must be hosted by FileMaker Server or FileMaker Cloud for AWS, 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.
About the default accounts
Each solution initially contains two FileMaker file 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.
Don't enable the Guest account
Don't 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 sign in to the Guest account in a short period of time.
See Editing FileMaker file accounts in FileMaker Pro Advanced Help.
Create account access
When you create an account access entry in the Manage Security dialog box in FileMaker Pro Advanced, you first choose the account type, then specify settings.
FileMaker file: Specify an account name, password, and privilege set. Supported in local files and files hosted by FileMaker Cloud for AWS or FileMaker Server.
You can specify a temporary password and prompt the user to change it. In the Edit Account dialog box, select Require password change on next sign in.
Passwords are stored using a one-way hash, meaning the password is never stored as plain text. You can reset a password, but you can't recover a password.
- External server: Specify a group name and privilege set. Supported only in files hosted by FileMaker Server. See Set up external authentication.
- OAuth identity provider: Specify a user name or group object ID and privilege set. Supported only in files hosted by FileMaker Server or FileMaker Cloud for AWS. See Set up OAuth identity provider authentication.
Prompt users for a password
New solutions don't prompt for account names or passwords, because they automatically sign in with the Admin account by default. To prompt users to enter account names and passwords for FileMaker file and external server accounts, deselect the FileMaker Pro Advanced File Options dialog box Log in using option. This option is ignored when solutions:
- are hosted by FileMaker Cloud for AWS
- are hosted by FileMaker Server in the secure database folder
- authenticate via an OAuth identity provider
By default, solutions do not allow Credential Manager (Windows) and Keychain Access (macOS and iOS) to save account names and passwords for FileMaker file and external server accounts. When you prevent Credential Manager and Keychain Access, FileMaker clients prompt users to enter account names and passwords each time they open the solution. This option is ignored for other types of accounts.
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 account access entries in the files that authenticate users via 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 Pro Advanced file will be accessed by other files in a multifile solution.
- your organization enforces minimum password standards. FileMaker clients can enforce elementary standards for FileMaker file accounts, 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 host the file on FileMaker Server. See Encrypt data.
Set up external server account access within the file using FileMaker Pro Advanced, then host the file using FileMaker Server and configure it for external authentication. See Editing external server account access 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 account access entries in the order you want FileMaker clients to authenticate them. When a FileMaker file account and an external server account authenticate with the same account name and password, or when multiple groups contain the same external server account, FileMaker clients open the file using the first active, matching account access entry in the priority (authentication) order. Any subsequent matching account access entries are ignored. See Changing the priority of account access in FileMaker Pro Advanced Help.
- External server account access shouldn't be the only type of account access with the Full Access privilege set. Maintain a FileMaker file account for administration purposes in case the file needs to be removed from FileMaker Server. If there are no FileMaker file accounts, FileMaker clients 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 for AWS, you can create account access entries in the files that authenticate users via supported OAuth identity providers. This allows you to control access to your solutions through third-party identity providers. Instead of managing an independent list of accounts in each file, you can use your OAuth identity provider to control access to your solutions. An OAuth identity provider may also provide additional security measures—such as multifactor authentication, which requires more than one method of authentication.
To authenticate via OAuth identity providers, use FileMaker Pro Advanced to set up account access entries within the solution. Then host the solution using FileMaker Server or FileMaker Cloud for AWS, and configure the host to authenticate with OAuth identity providers. See Editing OAuth account access 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 account access entries in the order you want FileMaker clients to authenticate them. When an OAuth identity provider account is in multiple groups that have account access, or an OAuth account user has account access both as an individual user and as a member of a group, FileMaker clients open the file using the first active, matching account access entry in the priority (authentication) order. Any subsequent matching account access entries are ignored. See Changing the priority of account access in FileMaker Pro Advanced Help.
- OAuth account access shouldn't be the only type of account access with the Full Access privilege set. Maintain a FileMaker file account for administration purposes in case the file needs to be removed from the host. If there are no FileMaker file accounts, FileMaker clients can open the file only if the file is hosted and the OAuth identity provider is available.
Authenticate in multifile solutions
FileMaker Pro Advanced 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 clients pass to the second file the credentials the user supplied when they signed in to the first file. If the user's account access is the same, FileMaker clients automatically sign in the user to the second file. If there is no corresponding account access entry, the user must sign in to the second file.
If you create the same FileMaker file accounts manually in multiple files, you may make data entry errors. To reduce such errors, use external authentication or OAuth identity provider authentication. See Set up external authentication or Set up OAuth identity provider authentication.
Review the account access entries 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 account access entries.
Every new FileMaker Pro Advanced 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 hosted file.
- Other privileges: Allow printing, exporting, the limited ability to manage security, and some other functions.
All clients and tools that access FileMaker Pro Advanced 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 hosted 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. For example:
- The fmapp extended privilege controls whether FileMaker Pro Advanced and FileMaker Go can access the file.
- The fmwebdirect extended privilege controls whether a web browser can access the file via FileMaker WebDirect.
- The fmreauthenticate[x] extended privilege controls how long after FileMaker Go sleeps or goes into the background before the user must sign in to access the file again.
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 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
- manage accounts that don't have full access 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)
See Editing other privileges in FileMaker Pro Advanced Help, Grant trusted users limited ability to manage security, and Disconnect idle users.
Remove the Full Access privilege set
To ensure that users can't gain access to parts of the solution and schema that only they would normally have access to, 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 and the Script Workspace. Access to the Manage Security dialog box is also eliminated, unless you have other accounts with the Manage extended privileges or Manage accounts that don't have Full Access privilege enabled. 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 all access privileges is by returning to the original file before the Full Access privilege set was removed.
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 FileMaker file account with Full Access privileges to any file that is to be encrypted, 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 for AWS 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 for AWS, 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
The FileMaker Platform provides these functions to encrypt and decrypt data using a specified key:
- CryptEncryptBase64: Accepts text or container data and returns encrypted, Base64-encoded text.
- CryptDecryptBase64: Accepts Base64-encoded text encrypted by CryptEncryptBase64 and returns decrypted data as the same type (text or container data) as before it was encrypted.
These functions use the PBKDF2 algorithm to convert the specified key into a cryptographic key before it encrypts or decrypts data. This key encrypts data using the AES-GCM authenticated encryption algorithm at the 128-bit level. The result includes an encrypted SHA256 digest of data, which validates the data during decryption.
Important:These functions have no direct connection to the security schema of a FileMaker Pro Advanced file (accounts, privilege sets, extended privileges). Therefore, the security of your data depends on how you use these functions in your solution.
As a developer, consider how to manage keys securely:
- Creation: Best practices for key creation (or generation) include at least these elements: key length, complexity, and entropy.
- Storage: Store keys securely and separately from the data they decrypt.
- Retention: Keys must be available for as long as the encrypted data is available. For example, backups are unusable if the keys are unavailable.
- Destruction: Depending on how you use these functions, if a key is destroyed, the data it encrypted is effectively destroyed, because the data can't be decrypted without the key.
One application of these functions is to protect the confidentiality of data in a field (also known as field-level encryption). However, this level of encryption doesn't replace Encryption at Rest, which protects the entire file (including backups) from tampering. See Encrypt a solution.
- Attempting to decrypt data that is already decrypted can destroy the data. Instead, use a separate flag to indicate whether data is encrypted and decrypt the data only when needed.
- When the contents of a field are encrypted, subsequently decrypted, and then reencrypted, the encrypted values will be different each time.
- If the key is compromised, you need to be able to locate all the records with encrypted data so that they may be decrypted with the compromised key and reencrypted with a new key.
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 (secure storage). 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.
Digitally sign data
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.
Grant trusted users limited ability to manage security
If you develop a solution but don't want to manage the everyday tasks of granting and removing account access yourself, you can give trusted users a limited ability to manage security without granting them full access privileges. Doing this offloads the daily tasks while protecting your intellectual property and preventing others from making changes that could break your solution.
These privileges grant a limited ability to make security changes in FileMaker Pro Advanced:
|Privilege||Users can||Users can't|
|Manage accounts that don't have Full Access||
|Manage extended privileges||
To grant an account access entry limited privileges to manage security:
- Create a privilege set.
- In the Edit Privilege set dialog box, enable one or both of these privileges.
Set the Available menus option set to All.
This allows the user to access File menu > Manage > Security.
- Assign this privilege set to an account access entry.
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 (for FileMaker file accounts only)
- re-log in as a different user (for FileMaker file accounts, the Guest account, and external server accounts only)
- 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 signed 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 the FileMaker Platform, 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, such as Get(AccountName), Get(AccountGroupName), and Get(AccountType). For example, use the Get(AccountExtendedPrivileges) function to test whether a user has a specific extended 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. By default, newly created files have this option enabled.
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 the solution. See Setting file options in FileMaker Pro Advanced Help.
Use plug-ins only from trusted sources (preferably plug-ins that are digitally signed by their developers), 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, FileMaker Pro Advanced users can enable or disable the installation of plug-in files. This is an application preference, not a file preference, and determines whether plug-ins can be installed on the user's computer.
If a plug-in is enabled, FileMaker Pro Advanced attempts to load the plug-in after it is installed and whenever FileMaker Pro Advanced starts. If FileMaker Pro Advanced can't verify the plug-in's digital signature, or if the plug-in hasn't been signed, the user is notified and can choose whether to load the plug-in. If the user chooses to always load the plug-in, this preference is saved in the user's application preferences, not in the file.
See Setting plug-in preferences and Setting permitted hosts and plug-ins preferences in FileMaker Pro Advanced Help. To enable plug-ins on a host, see Enable plug-ins in FileMaker Server and FileMaker Cloud for AWS.
Security for server administrators
FileMaker Cloud for AWS and FileMaker Server 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 for AWS.
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 for AWS.
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 server account access 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 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 for AWS, 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 account access within the file using FileMaker Pro Advanced, host the file using FileMaker Server or FileMaker Cloud for AWS, and configure the host for OAuth identity provider authentication. To set up account access 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 External Server Accounts.
- Enable the OAuth identity provider that you configured for Identity Authentication Settings.
To enable OAuth identity provider authentication in FileMaker Cloud for AWS:
- In Admin Console for FileMaker Cloud for AWS, 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 the sign-in setting.
Note:In FileMaker Cloud for AWS, Amazon identity provider authentication is shared by the FileMaker Cloud for AWS 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
In the Hosts dialog box in FileMaker Pro Advanced and the Launch Center in FileMaker Go and FileMaker WebDirect, by default all open solutions are displayed. However, in FileMaker Server and FileMaker Cloud for AWS, you can limit this list to show only the solutions that the current user may access. See Filter databases setting in FileMaker Server Help, and FileMaker Cloud for AWS Help.
Require passwords for hosted files
Make sure all hosted databases require a client to specify an account and password. A database is insecure when:
- a Guest account is using the Full Access privilege set
- any Full Access account has an empty password
- the password of any Full Access account is 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 for AWS always requires password protection for hosted databases.
When a FileMaker Pro Advanced user attempts to upload a database using the Upload to Host 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 for AWS run, they log server activity. Use the log files to collect client access information and other information needed for regulatory and auditing purposes.
See Viewing log file entries in FileMaker Server Help, and configuring FileMaker Cloud for AWS in FileMaker Cloud for AWS Help.
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 for AWS. 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.
To specify the idle time, see FileMaker client session timeouts in FileMaker Server Help and configuring FileMaker Cloud for AWS in FileMaker Cloud for AWS Help.
Set up backups
It's important to back up 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 for AWS
FileMaker Cloud for AWS 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 for AWS stores one week of backups. FileMaker Cloud for AWS can also preserve backups in Amazon Simple Storage Service.
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 for AWS
As the root administrator, you can allow non-root administrators to sign in to FileMaker Cloud for AWS and manage most aspects of the instance. Non-root administrators can't modify other administrator accounts, import SSL certificates, or discontinue the FileMaker Cloud for AWS subscription.
Decide whether to permit the Perform Script on Server script step
Note:This feature is not available in FileMaker Cloud for AWS.
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 for AWS
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.
In Admin Console, on the Connectors > Plug-ins tab, enable FileMaker Script Engine Plug-ins and Web Publishing Plug-ins. These settings enable the FileMaker Script Engine to use external functions and script steps implemented in plug-ins. See Managing plug-ins in FileMaker Server Help, and managing server plug-ins in FileMaker Cloud for AWS Help.
In Admin Console, you can allow scripts that run via a schedule, the Perform Script on Server script step, FileMaker WebDirect, and Custom Web Publishing to install, update, and load plug-ins. On the Connectors > Plug-ins tab, enable the Install Plug-in File Script Step settings.
Note:In FileMaker Cloud for AWS, plug-ins run on Linux, for which there is no industry-standard method for signing binary files. Therefore, FileMaker Cloud for AWS does not verify digital signatures for plug-ins.
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 Admin Console for FileMaker Cloud for AWS 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 for AWS.
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 for AWS, FileMaker clients, ODBC and JDBC applications, and REST API clients 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 for AWS 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.
- 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 for AWS
FileMaker Cloud for AWS provides a default SSL certificate. You can renew the default certificate or import your own custom certificate. To manage SSL certificates, see FileMaker Cloud for AWS 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 for AWS.
- 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 FileMaker Server or FileMaker Cloud for AWS 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 for AWS 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 for AWS, that minimum version of Java is installed when you create your instance.
Security updates to Java are frequently posted to the java.com website. FileMaker Server and FileMaker Cloud for AWS 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 for AWS 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 for AWS 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 (FileMaker Server only) or OAuth identity provider authentication (FileMaker Server or FileMaker Cloud for AWS). 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 Platform 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 for AWS.
- 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 for AWS, 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 Pro Advanced:
Making the account access entry in the file inactive has no effect on a user who is currently signed in. It will prevent only subsequent attempts to sign in.
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 file accounts only)||
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||
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 the FileMaker Platform 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|
Ports used by FileMaker Server and FileMaker Cloud for AWS
See Ports used by FileMaker Server in the FileMaker Knowledge Base.
Ports used by FileMaker Cloud for AWS are viewed and edited in the Amazon Web Services Elastic Cloud Compute (EC2) Dashboard. For managing ports in your security group, see FileMaker Cloud for AWS Getting Started Guide.