<style>

  /\* Adds a pointer cursor to the summary element \*/
  summary {
    display: list-item;
    cursor: pointer;
    color: #337ab7;
  }
  /\* Adjusts the font size and padding for table cells \*/
  .rst-content table.docutils td, .rst-content table.docutils thead th {
    font-size: 12px !important;
    padding: 4px 4px !important;
  }
</style>

<a id="security-deployment-profiles"></a>

# Security Deployment Profiles in Confluent Platform

Confluent Platform supports many security deployment profiles that meet a diverse
range of security needs. On this page you’ll find
a comprehensive overview of the security options that make up a deployment
profile. You’ll find a table that details the profiles for your
Confluent Platform cluster and the security configurations they support.

## Security options

Confluent Platform supports many security options for authentication, authorization,
encryption, and identity provider protocols. This section summarizes the
available configuration options and provides links to learn more about them.

<a id="authentication-methods-summary"></a>

### Authentication methods

Many authentication methods are available to meet diverse security needs across
different deployment scenarios, ensuring secure communication and authentication
within your Confluent Platform cluster.

For details, see [Authentication Methods](authentication/overview.md#authentication-overview).

<details id="target-details">
<summary id="target-summary">
  Click to expand or collapse the summary of authentication methods
</summary>
<br/>

HTTP Basic Authentication
: Uses Base64-encoded usernames and passwords included in HTTP request headers
  to authenticate clients and services over HTTP.
  <br/>
  For details, see [HTTP Basic Authentication](authentication/http-basic-auth/overview.md#http-basic-auth).

LDAP
: Uses Lightweight Directory Access Protocol (LDAP) to verify user credentials
  against an LDAP directory, allowing applications and services to authenticate
  users by querying and validating user information in a centralized directory
  service.
  <br/>
  For details, see [Configure Kafka Clients for LDAP Authentication](authentication/ldap/client-authentication-ldap.md#client-auth-with-ldap).

mTLS
: Uses Mutual Transport Layer Security (mTLS) to ensure that clients and services
  authenticate each other using certificates. Secure communication is provided by
  using TLS to encrypt data in motion (or data in transit) and using certificates
  to authenticate identities.
  <br/>
  For details, see [Mutual TLS (mTLS) Authentication](authentication/mutual-tls/overview.md#kafka-ssl-authentication).

OIDC (SSO)
: Uses OpenID Connect (OIDC) to extend OAuth 2.0 to provide single sign-on
  capabilities provided by an external identity provider (IdP). OIDC SSO allows
  clients and services to authenticate once and gain access to multiple services
  and applications.
  <br/>
  For details, see [Configure SSO using OIDC](authentication/sso-for-c3/configure-sso-using-oidc.md#configure-sso-using-oidc).

SASL/GSSAPI (Kerberos)
: Uses the Kerberos protocol within the SASL framework to provide secure, mutual
  authentication between clients and services, leveraging GSSAPI to interface
  with Kerberos.
  <br/>
  For details, see [Use SASL/GSSAPI Authentication](authentication/sasl/gssapi/overview.md#kafka-sasl-auth-gssapi).

SASL/OAUTHBEARER (with IdP as token issuer)
: Uses OAuth 2.0 bearer tokens issued by an external identity provider (IdP) to
  securely authenticate clients and services within the SASL framework.
  <br/>
  For details, see [Use SASL/OAUTHBEARER Authentication](authentication/sasl/oauthbearer/overview.md#cp-oauth-authentication).

SASL/OAUTHBEARER (with MDS as token issuer)
: Uses OAuth 2.0 bearer tokens issued by the Confluent Metadata Service (MDS) to
  securely authenticate clients and services within the SASL framework.
  <br/>
  For details, see [Use SASL/OAUTHBEARER Authentication](authentication/sasl/oauthbearer/overview.md#cp-oauth-authentication).

SASL/PLAIN or SASL/PLAIN (with LDAP server)
: Uses the SASL framework with plain text for authentication. Because SASL/PLAIN
  transmits credentials (usernames and passwords) in plain text, it is vulnerable
  to interception unless used over secure channels using TLS.
  <br/>
  For details, see [Use SASL/PLAIN Authentication](authentication/sasl/plain/overview.md#kafka-sasl-auth-plain).

SASL/SCRAM
: Uses Salted Challenge Response Authentication Mechanism (SCRAM) with salted
  and hashed passwords to securely authenticate clients and services, providing
  protection against replay attacks and password theft.
  <br/>
  Uses the SASL framework with the Salted Challenge Response Authentication Mechanism
  (SCRAM) and salted, hashed passwords to securely authenticate clients and services,
  providing protection against replay attacks and password theft.
  <br/>
  For details, see: [Use SASL/SCRAM Authentication](authentication/sasl/scram/overview.md#kafka-sasl-auth-scram).

</details>

<a id="authorization-mechanisms-summary"></a>

### Authorization mechanisms

Authorization mechanisms are used to control access to resources in your Confluent Platform cluster.

For details, see [Authorization](authorization/overview.md#authorization-overview).

<details id="target-details">
<summary id="target-summary">
  Click to expand or collapse the summary of authorization mechanisms
</summary>
<br/>

ACLs
: Access control lists (ACLs) provide a mechanism to control access to resources
  in your Confluent Platform cluster by defining the set of users, clients, and services that
  are allowed or denied access to specific resources.
  <br/>
  For details, see [Use Access Control Lists (ACLs) for Authorization](authorization/acls/overview.md#acls-authorization).

RBAC
: Role-Based Access Control (RBAC) allows fine-grained access management by
  defining roles with specific permissions and assigning these roles to users
  and services.
  <br/>
  For details, see [Use Role-Based Access Control (RBAC) for Authorization](authorization/rbac/overview.md#rbac-overview).

</details>

<a id="encryption-summary"></a>

### Encryption

Encryption is used to secure data in motion (or data in transit) and at data at
rest in your Confluent Platform cluster.

For details, see [Encryption](protect-data/encrypt-tls.md#encrypt-tls).

<details id="target-details">
<summary id="target-summary">
  Click to expand or collapse summary of encryption options
</summary>
<br/>

TLS
: Transport Layer Security (TLS) is a cryptographic protocol designed to provide
  secure communication over computer networks. TLS is the successor to the
  deprecated Secure Sockets Layer (SSL) protocol, offering improved security
  features and more robust support against modern threats.
  <br/>
  For details, see [TLS Encryption](protect-data/encrypt-tls.md#encrypt-tls).

</details>

<a id="identity-provider-protocol-summary"></a>

### Identity provider protocols

Identity provider (IdP) protocols are frameworks or sets of rules used to define how
identities (users and services) are authenticated and managed within your Confluent Platform
cluster. These protocols are used to integrate with external identity providers
and provide a single source of truth for user and service authentication.

<details id="target-details">
<summary id="target-summary">
  Click to expand or collapse the summary of identity provider (IdP) protocols
</summary>
<br/>

LDAP
: Lightweight Directory Access Protocol (LDAP) is a protocol used to access
  and maintain distributed directory information services over an IP network.
  <br/>
  For details, see [LDAP](authentication/ldap/overview.md#ldap-authentication-overview).

OIDC
: OpenID Connect (OIDC) extends OAuth 2.0 authorization to provide sign-in and
  profile information about authenticated users. OIDC is widely used to
  implement single sign-on (SSO) for integration with external identity
  providers and to provide a single source of truth for user and service
  authentication.
  <br/>
  For details, see [Configure SSO for Confluent Control Center using OIDC](authentication/sso-for-c3/configure-sso-using-oidc.md#configure-sso-using-oidc).

</details>

## Security deployment profiles

The following table defines the different security options that make up a
security deployment profile for Confluent Platform clusters. The security options that make up
a deployment profile are:

- **Authentication**
  - **Kafka client**: Options for Kafka clients authenticating to Confluent Server brokers
  - **Kafka client to non-Kafka component**: Options for Kafka clients
    authenticating to Schema Registry, REST Proxy, and ksqlDB
  - **Service-to-service**: Options for authentication between any two Confluent Platform services, for
    example Schema Registry to Confluent Server, Connect to Schema Registry, and so forth
  - **User**: Options for users authenticating using Confluent Control Center or Confluent CLI
- **Authorization**: Options for controlling access to resources in your Confluent Platform cluster
- **Encryption**: Options for encrypting data in motion (or data in transit)
- **Identity provider protocols**: Options for integrating with external identity providers

<style type="text/css">
 .tg  {border-collapse:collapse;border-spacing:0;}
 .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
   overflow:hidden;padding:10px 5px;word-break:normal;}
 .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;
   font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;}
 .tg
 .tg-ihjb{background-color:#f5f7ff;font-size:12px;font-weight:bold;text-align:left;vertical-align:bottom}
 .tg-ihjbr{background-color:#f5f7ff;font-size:12px;font-weight:bold;text-align:left;vertical-align:bottom:transform: rotate(90deg); /\* Rotate the text 90 degrees counterclockwise \*/ writing-mode: vertical-lr; /\* Ensure proper vertical text alignment \*/ text-align: center; /\* Center the text \*/ vertical-align: middle; /\* Center text vertically \*/}
 .tg .tg-icm3{background-color:#f8f8f8;font-size:12px;text-align:left;vertical-align:top}
 .tg .tg-gknu{background-color:#f5f7ff;font-size:12px;font-weight:bold;text-align:left;vertical-align:bottom}
 .tg .tg-r6a2{font-size:12px;text-align:left;vertical-align:top}
 .tg .tg-z9od{font-size:12px;text-align:left;vertical-align:top}
 .tg
 .tg-pui5{background-color:#f5f7ff;font-size:14px;font-weight:bold;text-align:center;vertical-align:bottom}
 .tg ul.custom-ul li {font-size: 12px !important;margin-bottom: 2px !important;}
</style>
<table class="tg"><thead>
  <tr>
  <th class="tg-ihjbr" rowspan="2">Profile</th>
  <th class="tg-pui5" colspan="4">Authentication</th>
  <th class="tg-ihjbr" rowspan="2">Authorization</th>
  <th class="tg-ihjbr" rowspan="2">Encryption</th>
  <th class="tg-ihjb" rowspan="2">Identity provider protocols</th>
  </tr>
  <tr>
  <th class="tg-gknu">Kafka clients</th>
  <th class="tg-gknu">Client to non-Kafka component</th>
  <th class="tg-gknu">Service to service</th>
  <th class="tg-gknu">User</th>
  </tr></thead>
<tbody>
  <tr>
  <td class="tg-icm3">1</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li >PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">mTLS</td>
  <td class="tg-z9od">mTLS</td>
  <td class="tg-z9od">HTTP Basic Authentication</td>
  <td class="tg-z9od">ACLs</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od"> </td>
  </tr>
  <tr>
  <td class="tg-icm3">2</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-icm3">GSSAPI or SCRAM</td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">HTTP Basic Authentication</td>
  <td class="tg-icm3">ACLs</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3"> </td>
  </tr>
  <tr>
  <td class="tg-z9od">3</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">PLAIN with LDAP server</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">HTTP Basic Authentication</td>
  <td class="tg-z9od">OAuthBearer (powered by LDAP and MDS-issued tokens)</td>
  <td class="tg-z9od">HTTP Basic Authentication</td>
  <td class="tg-z9od">RBAC</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od">LDAP</td>
  </tr>
  <tr>
  <td class="tg-icm3">4</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">PLAIN with LDAP server</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
   </td>
  <td class="tg-icm3">HTTP Basic Authentication</td>
  <td class="tg-icm3">OAuthBearer powered by LDAP and MDS-issued tokens</td>
  <td class="tg-icm3">OIDC (SSO)</td>
  <td class="tg-icm3">RBAC</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3">Both OIDC and LDAP</td>
  </tr>
  <tr>
  <td class="tg-z9od">5</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">PLAIN with LDAP server</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">HTTP Basic Authentication</td>
  <td class="tg-z9od">OAuthBearer with IdP-issued tokens</td>
  <td class="tg-z9od">OIDC (SSO)</td>
  <td class="tg-z9od">RBAC</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od">Both OIDC and LDAP</td>
  </tr>
  <tr>
  <td class="tg-icm3">6</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">HTTP Basic Authentication</td>
  <td class="tg-icm3">ACLs</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3">OIDC</td>
  </tr>
  <tr>
  <td class="tg-z9od">7</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">PLAIN with LDAP server</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">
  OAuthBearer with IdP-issued tokens or HTTP Basic Authentication</td>
  <td class="tg-z9od">OAuthBearer with IdP-issued tokens</td>
  <td class="tg-z9od">OIDC (SSO)</td>
  <td class="tg-z9od">RBAC</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od">Both OIDC and LDAP</td>
  </tr>
  <tr>
  <td class="tg-icm3">8</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
  <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-icm3">mTLS or OAuthBearer with IdP-issued tokens </td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">HTTP Basic Authentication</td>
  <td class="tg-icm3">ACLs</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3">OIDC</td>
  </tr>
  <tr>
  <td class="tg-z9od">9</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
 <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">OAuthBearer with IdP-issued tokens</td>
  <td class="tg-z9od">OAuth</td>
  <td class="tg-z9od">OIDC (SSO)</td>
  <td class="tg-z9od">RBAC</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od">OIDC</td>
  </tr>
  <tr>
  <td class="tg-icm3">10</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
 <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-icm3">OAuthBearer with IdP-issued tokens</td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">OIDC (SSO)</td>
  <td class="tg-icm3">RBAC</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3">OIDC</td>
  </tr>
   <tr>
  <td class="tg-z9od">11</td>
  <td class="tg-z9od">
  mTLS or SASL with one of:
 <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-z9od">mTLS</td>
  <td class="tg-z9od">mTLS</td>
  <td class="tg-z9od">OIDC (SSO)</td>
  <td class="tg-z9od">RBAC</td>
  <td class="tg-z9od">TLS</td>
  <td class="tg-z9od">OIDC</td>
  </tr>
  <tr>
  <td class="tg-icm3">12</td>
  <td class="tg-icm3">
  mTLS or SASL with one of:
 <ul class="custom-ul">
  <li class="custom-ul">OAUTHBEARER with IdP-issued tokens</li>
  <li class="custom-ul">PLAIN</li>
  <li class="custom-ul">GSSAPI</li>
  <li class="custom-ul">SCRAM</li>
  </ul>
  </td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">mTLS</td>
  <td class="tg-icm3">Basic username, password (file-based user identity management)</td>
  <td class="tg-icm3">RBAC</td>
  <td class="tg-icm3">TLS</td>
  <td class="tg-icm3">Not applicable</td>
  </tr>
</tbody></table>
<br>

You can also deploy Apache Flink® within the Confluent Platform. Deployments that include Flink make
use of mTLS authentication with one of the following client to non-Kafka
component:

- PLAIN
- GSSAPI
- SCRAM

Service to service and user authentication also use mTLS in Apache Flink®
deployments. Authorization uses HTTP basic authentication with encryption
through ACLS. TLS is the supported provider protocol for deployments that use Flink.

## Related content

- [Mastering Kafka Security across Hybrid Environments with Confluent Platform](https://www.confluent.io/resources/online-talk/kafka-security-hybrid-environment/)
- [Configure Security for Confluent Platform with Confluent for Kubernetes](https://docs.confluent.io/operator/current/co-security-overview.html)
- [Configure Security for Confluent Platform with Ansible Playbooks](https://docs.confluent.io/ansible/current/ansible-security.html)
