Skip to content

Authentication and Authorization

Authentication and authorization are two fundamental security concepts that govern access to the MindFire platform. While they are often used together, they serve distinct purposes.

Difference between authentication and authorization

Authentication verifies a user's identity, ensuring that they are who they claim to be. This process typically involves entering credentials such as a username and password or using multi-factor authentication (MFA) for added security.

Authorization, on the other hand, determines what actions or resources a user is allowed to access after authentication. It defines user permissions and roles, ensuring that only authorized individuals can perform specific tasks or view sensitive data within the platform.

Authentication vs Authorization

By combining robust authentication and authorization mechanisms, MindFire ensures secure access control and data protection for all users.

Signature-based authentication vs. token-based authentication

MindFire’s Next Gen platform utilizes signature-based authentication, a security mechanism that verifies API requests using cryptographic signatures. In this method, each request is signed using a secret key, ensuring that only authorized parties can access the system. The signature is dynamically generated based on the request data, timestamp, and a private key, making it resistant to replay attacks and unauthorized tampering. This approach is highly secure because it doesn’t rely on storing tokens that could be intercepted or stolen.

In contrast, token-based authentication relies on issuing a token (such as a JSON Web Token or OAuth token) after a user successfully logs in. This token is then included in subsequent requests to verify the user’s identity. While token-based authentication is convenient and widely used, it has some security risks—tokens can be intercepted, stolen, or misused if not properly secured. Additionally, token-based systems often require regular token refresh mechanisms to maintain security, which adds complexity.

The key difference between the two methods is that signature-based authentication verifies each request individually without requiring a persistent session or stored credentials, whereas token-based authentication depends on an issued token that remains valid for a specific period. Signature-based authentication is ideal for highly secure environments, especially when dealing with sensitive data and API interactions, as it ensures that every request is independently validated and cannot be reused by malicious actors.

MindFire authentication levels

MindFire provides four levels of authentication, each tailored for a specific use case:

MindFire authentication levels

  • User Authentication: Designed for individuals accessing MindFire’s platform via the user interface. Users authenticate using their username and password. For enhanced security, the user’s IP address is embedded in the authentication signature, restricting access to that specific IP once logged in.

  • Partner Authentication: Primarily used for integrations, this level grants access to one or multiple APIs, enabling seamless interaction with MindFire’s services. Unlike user authentication, partner authentication does not rely on IP addresses, as requests typically originate from server-side code with varying IP ranges. To enhance security, all partners must be whitelisted in advance.

  • Record Authentication: Intended for third-party websites that require access to a specific record in MindFire’s database. Authentication is only granted if the requesting website has been explicitly approved for "Remote Access."

  • Consumer Code Authentication: Designed for app development, this level allows internal or external applications to authenticate using a Consumer Code. Similar to Partner Authentication, it grants access to one or more API endpoints, but access can be further restricted to specific records within the database.

Login rate limit

Login rate limiting is a crucial security measure designed to prevent brute-force attacks by restricting the number of login attempts allowed within a specific timeframe. MindFire implements rate limiting by setting a threshold for failed login attempts from a particular IP address, helping to block unauthorized access attempts.

Two-Factor Authentication (2FA)

Two-Factor Authentication (2FA) adds an extra layer of security by requiring users to verify their identity using a second factor in addition to their password. This could be a one-time code sent via SMS, an authenticator app, or biometric authentication.

Benefits:

  • Significantly reduces the risk of unauthorized access, even if a password is compromised.
  • Protects against phishing and brute-force attacks.
  • Enhances overall account security with minimal user effort.

Google and Azure authentication

MindFire supports authentication via Google and Azure, allowing users to log in using their existing credentials from these trusted identity providers. This method utilizes OAuth and Single Sign-On (SSO) to streamline authentication securely.

Benefits:

  • Eliminates the need to remember additional passwords.
  • Enhances security by leveraging Google’s and Azure’s advanced authentication mechanisms.
  • Simplifies user access management, especially in enterprise environments.

Authorization: Identity and Access Management (IAM)

Identity and Access Management (IAM) is a security framework that ensures the right people have the right access to the right resources within the MindFire platform. Instead of assigning permissions directly to individual users, IAM streamlines access control by using Identities, Groups, and Policies to manage authorization efficiently and securely.

How permissions are granted using Groups and Policies

  • Identity: Each user in MindFire’s platform has an identity, which represents their account and role within the system.

  • Groups: Instead of assigning permissions to users one by one, IAM allows you to organize users into Groups based on their roles or responsibilities (e.g., "Marketing Team," "Developers," "Admins"). When a user is added to a group, they automatically inherit that group’s permissions.

  • Policies: Policies define what actions a group (or an individual user) can or cannot perform within the platform. These policies specify access levels, such as viewing reports, sending campaigns, or managing integrations.

Example scenario

Imagine Jane Smith is a Marketing Director who manages her company’s Data Team and a group of Campaign Managers within the MindFire platform.

In this case, we can define three Groups, each with specific Policies that control access:

  1. Data Team Group – Members can:

    • Prepare and upload data file lists.
    • View the analytics dashboard.
  2. Campaign Managers Group – Members can:

    • Publish programs.
  3. Administrators Group – Members can:

    • Invite and manage other users.
    • Have full access to system settings.

Now, we create an Identity for Jane Smith and assign her to both the Data Team and Campaign Managers groups. This means she can:
✅ Upload data and view analytics (Data Team permissions).
✅ Publish programs (Campaign Managers permissions).
❌ But she cannot invite new users (since she is not in the Administrators group).

Identity and Access Management (IAM)

By using Groups and Policies, IAM ensures Jane has exactly the permissions she needs—no more, no less—while keeping administrative control secure.

Simplifying Identity and Access Management

To make Identity and Access Management (IAM) easier to implement, MindFire provides predefined Policies and Groups that align with common roles and responsibilities. Instead of manually setting up permissions for each user, you simply:

  1. Create an Identity – This represents the user’s account in the system.
  2. Assign Relevant Groups – Each group comes with predefined policies that grant the necessary permissions.

MindFire's Identity and Access Management (IAM)

By leveraging predefined Groups and Policies, MindFire streamlines user management, ensuring secure and efficient access control without the complexity of manual configuration.