JFrog Authentication and Token Management Overview
Learn how the JFrog Platform delegates authentication to external IdPs using SAML, OAuth, OIDC, and LDAP, while securing all interactions with scoped JFrog Access Tokens.
Security in the modern software supply chain requires a delicate balance: you need robust identity verification without hindering the speed of development. The JFrog Platform employs a robust security model that delegates identity verification to external identity providers (IdPs) and adheres to widely recognized open standards like SAML 2.0, OAuth 2.0, OIDC, and LDAP. This architecture distinctly separates authentication (who you are) from authorization (what you can do).
This overview explains how the JFrog Platform leverages your existing enterprise identity infrastructure, such as Okta, Microsoft Entra ID, or an LDAP directory, while maintaining fine-grained control over your artifacts and builds through JFrog Access.
What You Will Learn
- Delegate Trust: Integrate with standard Identity Providers (IdPs) using SAML 2.0, OAuth 2.0, and OpenID Connect (OIDC).
- Standardize Credentials: Understand how external identities are exchanged for the canonical JFrog Access Token, the internal currency for all secure interactions.
- Minimize Risk: Use the Principle of Least Privilege to ensure production-grade quality.
- Manage Lifecycles: Effectively handle token expiration, revocation, and user termination.
Authentication Providers
The JFrog Platform employs a robust security model that delegates identity verification to external Identity Providers (IdPs) and adheres to widely recognized open standards like SAML 2.0, OAuth 2.0, OIDC, and LDAP.
This architecture distinctly separates authentication, which confirms user identity, from authorization, which governs user permissions. This approach allows you to integrate your existing identity infrastructures (such as Microsoft Entra ID, Okta, or internal LDAP directories) while centrally managing access control with JFrog Access.
Core Component: JFrog Access and the Canonical Credential
JFrog Access is the foundational microservice acting as the primary authority for all security operations within the platform, overseeing the entire authentication and authorization lifecycle.
The JFrog Access Token: The Canonical Credential
Each successful authentication, irrespective of the method used (SAML assertion, OIDC ID Token, or LDAP validation), is converted into the platform's standard JFrog Access Token:
- This JSON Web Token (JWT) acts as the primary internal credential for all authenticated interactions.
- It serves as the bearer token for all subsequent requests (web UI, API, or CLI).
- The token enforces security through its
scope (scp)property, defining granted permissions and supporting the Principle of Least Privilege. - Access Tokens are created with an optional
expiration (exp)period, serving as a defense against misuse.
Identity Protocol Breakdown and Integration Methods
The JFrog Platform supports eight IdP standards and protocols tailored for different use cases and integration mechanisms:
| Provider/Standard | Primary Use Case | Integration Mechanism | Key Feature/Security Tenet | Documentation Link |
|---|---|---|---|---|
| SAML 2.0 SSO | Web UI Single Sign-On (SSO) | Assertion Validation using the IdP's public certificate | Supports optional Synchronization of LDAP Groups | SAML SSO |
| OAuth 2.0 | User-Facing SSO (e.g., GitHub, Google) | Authorization Code Flow with PKCE | Secure flow for web clients, mitigating interception attacks | OAuth SSO |
| OpenID Connect (OIDC) | Service-to-Service Automation (CI/CD) | Identity Mapping against verifiable token claims | Eliminates static secrets using ephemeral, context-aware tokens | OpenID Connect Integration |
| LDAP / Active Directory | Directory-based User & Group Management | Bind and Search operations | Allows Auto Create System Users and group synchronization | LDAP |
| SCIM | User/Group Provisioning & Lifecycle Management | IdP Push Notifications | Ensures user de-provisioning (e.g., account deletion) is immediately reflected | SCIM |
| HTTP SSO | SSO via External Web Server Integration | External Header Injection | Supports integration with Apache and Tomcat | HTTP SSO |
| Atlassian Crowd/JIRA | Legacy/Dedicated Identity Integration | Specific Connector Configuration | Manages authentication and groups via the Crowd service | Atlassian Crowd and JIRA Integration |
| mTLS Authentication | Cloud Security Framework | Mutual Certificate Validation | Used for authentication in specific JFrog Cloud deployments | mTLS Authentication in JFrog SaaS |
SAML 2.0 SSO Authentication Flow
SAML 2.0 enables Single Sign-On, with the JFrog Platform acting as the Service Provider (SP).
Integration and Key Mechanisms
- Initiation: The user navigates to the JFrog Platform URL. If the Auto Redirect Login Link to SAML Login option is enabled, the user is immediately redirected to the IdP.
- SAML Assertion: The IdP constructs a digitally signed SAML Assertion (an XML document) containing the user's identity and claims.
- Assertion Validation: JFrog Access verifies the digital signature on the assertion using the IdP's public certificate, uploaded during configuration.
- Hybrid Group Synchronization: The platform supports enabling the synchronize-ldap-groups setting for the SAML provider, allowing JFrog to perform a secondary lookup against a configured LDAP server to retrieve authoritative group memberships after successful SAML authentication.
- Logout Security: Full security requires configuring the SAML Logout URL to the IdP's Single Logout (SLO) endpoint, ensuring termination of the master authentication session. Failure to configure SLO creates a security gap.
For more information, see SAML SSO Configuration and the SAML-Based SSO Login Process.
OAuth 2.0 / OpenID Connect (OIDC) Authentication Flow
OIDC is an identity layer built on OAuth 2.0, utilized for user-facing SSO and automation.
User-Facing SSO (Authorization Code Flow with PKCE)
- Flow: The JFrog Platform redirects the user to the IdP with a
code_challenge. The IdP returns a temporaryauthorization_code. - Security: The JFrog backend exchanges this code for an
id_tokenby submitting the originalcode_verifier, which proves the client requesting the token is the same one that initiated the flow, mitigating interception attacks.
For more information, see Enable Authorization Code Flow with PKCE.
Service-to-Service OIDC (CI/CD Automation)
This flow is the recommended standard for automation, as it eliminates the need for persistent, long-lived secrets.
- Workflow: A CI/CD pipeline requests a short-lived OIDC
id_tokenfrom its provider (e.g., GitHub's OIDC provider). This token contains verifiable claims about the workflow (e.g., repository, branch). - Identity Mapping: JFrog Access validates the token and matches its claims against pre-defined Identity Mappings (policy rules configured in the UI).
- Ephemeral Token Generation: If a match is successful, JFrog Access generates a very short-lived, narrowly-scoped JFrog Access Token. The permissions are defined entirely by the matched mapping. This approach implements Policy-as-Code for authentication.
For more information, see OpenID Connect Integration and Identity Mappings.
Transient Users and Auto Join Groups
An identity mapping can map a user, groups, both, or neither. If you include a username pattern, the generated token automatically receives the applied-permissions/user scope.
If that username does not exist in the system, a transient user is created at authentication time. This transient user dynamically inherits all groups configured with Automatically Join New Users. If your mapping includes both a user and explicit groups, the effective permissions become a union of the explicitly mapped groups and the local Auto Join groups.
To ensure permissions remain strictly limited to your mapping configuration, use identity mappings without a username field, or carefully audit your Auto Join groups.
LDAP / Active Directory Authentication Flow
LDAP provides direct server-to-server integration for user and group management.
Integration Steps
- Search-Based Authentication (Recommended): The Platform first performs a "bind" using a dedicated Manager DN service account to search the directory for the user's Distinguished Name (DN).
- User Authentication: The Platform attempts a second "bind" using the user's full DN and the submitted password. A successful bind confirms validation.
- Group Sync: The user's permissions are determined by group memberships synchronized from the LDAP directory.
- Security Best Practice: To avoid "split-identity" confusion (where a user exists in both LDAP and the internal JFrog database), administrators should consider disabling the Disable Basic Authentication Method once the external IdP is fully configured.
For more information, see LDAP Configuration and Prevent Authentication Fallback to the Local Artifactory Realm.
SCIM (System for Cross-domain Identity Management)
SCIM is listed as an authentication provider but primarily functions as a lifecycle management protocol.
- Primary Role: SCIM allows the external IdP (like Okta or Azure AD) to proactively push user status changes (e.g., deactivation or deletion) to the JFrog Platform.
- Security Necessity: Implementing SCIM is strongly recommended when using refreshable tokens. Without it, a user disabled in the IdP might still be able to use a refresh token to obtain a new Access Token.
For more information, see SCIM.
HTTP SSO
HTTP SSO relies on authentication being handled by an external component (like a reverse proxy or web server) before the request reaches the JFrog Platform. Note that HTTP SSO is not supported for SaaS, and is not recommended.
- Mechanism: You can configure HTTP SSO in the JPD, use it to integrate Apache and Tomcat, and set up a Reverse SSL Proxy for SSO.
- Token Usage: Users authenticated via HTTP SSO can still use API Keys.
For more information, see Configure HTTP SSO in JPD.
Atlassian Crowd and JIRA Integration
This integration provides a dedicated mechanism for connecting with Atlassian's identity services.
- Mechanism: The integration manages authentication and group synchronization via the Crowd service. You can configure the Crowd server URL and application credentials directly within the platform settings.
- Use Case: This is typically used for legacy or dedicated identity integration setups where Atlassian Crowd serves as the central user management system.
For more information, see Atlassian Crowd and JIRA Integration.
mTLS Authentication in JFrog Cloud
Mutual Transport Layer Security (mTLS) is a specialized framework used primarily in specific JFrog Cloud deployments.
- Mechanism: The integration authenticates clients using cryptographic certificates rather than passwords or tokens, ensuring mutual validation between the client and the server.
- Key Feature: This method provides a high-security framework often required for cloud-to-cloud communication or restricted network environments.
For more information, see mTLS Authentication in JFrog Cloud.
Access Token Management: Enforcement and Lifespan
The architecture relies on the "Multiple Token" Paradigm to enforce the Principle of Least Privilege.
The Multiple Token Paradigm
An authenticated identity can generate multiple, distinct, purpose-built Access Tokens, each with its own specific scope (scp) and lifetime. This strategy limits the "blast radius" if any single token is compromised.
- Scoping: Tokens can be narrowly scoped to grant permissions based on groups (applied-permissions/groups:), project roles (applied-permissions/roles::), or specific resource operations (e.g., artifact:my-repo/path/to/file:r for read access to a specific file).
- Use Case: An administrator can generate one powerful UI session token, and a separate, narrowly-scoped token for a script, ensuring the script token cannot perform administrative actions.
For documentation on token creation, see Access Tokens, Generate Expirable Tokens, and Create a Group Scoped Token.
Token Invalidation and Revocation
While JWTs are primarily invalidated by reaching their natural expiration (exp) date, explicit revocation is necessary for pre-expiry termination (e.g., compromise or user logout).
- Mechanism: JFrog Access maintains a revocation list (blacklist) of token IDs (jti). When a token is revoked, its jti is added to this list, and Access checks this list during subsequent validation.
- Key Warning: Generating a new token does not automatically invalidate any previous tokens. A compromised token must be explicitly revoked.
- SCIM Recommendation: For environments using refreshable tokens, SCIM (System for Cross-domain Identity Management) is highly recommended. SCIM allows the IdP to push user de-provisioning status to the Platform, ensuring a disabled user cannot use a refresh token to obtain a new Access Token.
For administration, see View and Revoke Tokens and the Access Tokens REST API.
This foundation ensures that JFrog's authentication and token management ecosystem upholds the highest security standards, offering flexible, scalable, and secure access management solutions.
Frequently Asked Questions
This section provides answers to frequently asked questions about JFrog authentication methods, identity provider integration, and Access Token management.
FAQs
Q: Can I use my organization's existing Identity Provider (IdP) with the JFrog Platform?
A: Yes. The JFrog Platform uses a Delegated Trust model, supporting integration with your existing IdP through the Authentication Providers described in this overview—SAML 2.0, OAuth 2.0, OIDC, and LDAP. This lets you enforce corporate authentication policies, including MFA, while managing permissions centrally within JFrog.
Q: Can I use several tokens for different tasks simultaneously?
A: Yes. The Multiple Token Paradigm lets you generate distinct, narrowly scoped tokens for different tasks—such as one for UI access and another for a CI/CD script. Each token has its own scope and expiration, so compromising one does not expose your other tokens or administrative privileges.
Q: What is the difference between my SSO login and a JFrog Access Token?
A: Your SSO login (via SAML or OIDC) handles initial identity verification with your IdP. Once verified, the JFrog Platform converts that external credential into a JFrog Access Token—a JWT that acts as your secure credential for all subsequent API, CLI, and UI interactions. The token carries your specific permissions and expiration, independent of your external identity.
Q: Does generating a new Access Token for a script invalidate my current UI session?
A: No. Each JFrog Access Token is an independent credential with a unique jti ID and expiration date. Generating a new token does not revoke existing ones; see Token Invalidation and Revocation for how to explicitly revoke tokens when needed.
Q: How do I handle authentication for CI/CD pipelines without storing static secrets?
A: Use Service-to-Service OIDC integration. Your CI/CD provider (such as GitHub Actions) issues a short-lived OIDC token that the JFrog Platform validates against a pre-configured Identity Mapping. If the mapping matches, JFrog issues a temporary, scoped Access Token, eliminating the need for long-lived secrets or API keys.
Q: What happens if a user leaves the organization?
A: If you use SCIM, your IdP automatically pushes de-provisioning updates to the JFrog Platform, disabling the user account and blocking token refreshes. For immediate termination, an administrator can explicitly revoke the user's active tokens via the Administration module or the REST API.
Q: Which credential should I use for automation: API Keys or Access Tokens?
A: Use Access Tokens. They are time-bound, revocable, and can be scoped to specific permissions following the Principle of Least Privilege. API Keys are deprecated legacy credentials that function like passwords, making them less secure for automation.
Q: Why should I implement SCIM if I already use SAML or OIDC?
A: SAML and OIDC handle authentication but do not manage user lifecycle events in real time. SCIM allows your IdP to push status changes—such as an employee departure—directly to the JFrog Platform, ensuring a disabled user cannot use a refresh token to obtain a new Access Token.
Related Topics
Updated 12 days ago
