<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: How to configure oidc based login mechanism for NiFi in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/How-to-configure-oidc-based-login-mechanism-for-NiFi/m-p/414056#M254339</link>
    <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/114561"&gt;@AlokKumar&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;OpenID Connect (OIDC) is a standard login protocol. Instead of NiFi managing its own passwords, it redirects users to your internal Identity Provider (IdP) to log in. Your IdP says "yes, this is a valid user" and sends NiFi a token. NiFi trusts that and lets the user in.&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Every OIDC-compatible provider publishes a public JSON file describing itself its endpoints, what it supports, etc. This URL always ends with &lt;FONT color="#FF0000"&gt;/.well-known/openid-configuration.&lt;/FONT&gt; NiFi fetches this URL at startup to learn how to talk to your provider. Example:&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;A href="https://your-internal-idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://your-internal-idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When you register NiFi as an "&lt;FONT color="#FF0000"&gt;application&lt;/FONT&gt;" in your internal IdP, the IdP gives you two credentials a Client ID (like a username for the app) and a Client Secret (like a password for the app). NiFi uses these to prove to the IdP that it is a legitimate registered application.&lt;BR /&gt;&lt;STRONG&gt;Is Kubernetes required?&lt;/STRONG&gt; The Cloudera/Kubernetes article you read uses &lt;FONT color="#FF0000"&gt;kubectl create secret&lt;/FONT&gt; only because it runs NiFi inside Kubernetes, where secrets are managed that way. On a plain machine, you just put the Client ID and Secret directly into &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt; as plain text, or use NiFi's built-in encrypt-config tool for security.&lt;/P&gt;&lt;H3&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Step-by-Step: Configure OIDC on Standalone NiFi (1.23 or 2.8)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 1&amp;nbsp; Register NiFi in your internal Identity Provider&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Ask your IdP administrator to register a new OIDC client/application with:&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;STRONG&gt;Name:&lt;/STRONG&gt; Apache NiFi (or anything descriptive)&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Redirect URIs&lt;/STRONG&gt; (these are mandatory)&lt;BR /&gt;&lt;LI-SPOILER&gt;https://&amp;lt;your-nifi-host&amp;gt;:&amp;lt;port&amp;gt;/nifi-api/access/oidc/callback&lt;BR /&gt;https://&amp;lt;your-nifi-host&amp;gt;:&amp;lt;port&amp;gt;/nifi-api/access/oidc/logout/callback&lt;/LI-SPOILER&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;STRONG&gt;Grant type:&lt;/STRONG&gt; Authorization Code&lt;/LI&gt;&lt;/UL&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Once registered, your IdP admin will give you:&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;A &lt;STRONG&gt;Client ID&lt;/STRONG&gt; (e.g&amp;nbsp;&lt;FONT color="#FF0000"&gt;nifi-client-prod&lt;/FONT&gt;)&lt;/LI&gt;&lt;LI&gt;A &lt;STRONG&gt;Client Secret&lt;/STRONG&gt; (a long random string)&lt;/LI&gt;&lt;LI&gt;The &lt;STRONG&gt;Discovery URL&lt;/STRONG&gt; (e.g.&amp;nbsp;&lt;FONT color="#FF0000"&gt;&lt;A href="https://idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/FONT&gt;)&lt;/LI&gt;&lt;/UL&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Verify the Discovery URL works by opening it in a browser you should see a JSON document.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 2&amp;nbsp; Ensure NiFi is running with TLS (HTTPS)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;OIDC &lt;STRONG&gt;requires&lt;/STRONG&gt; NiFi to run over HTTPS. It will not work on plain HTTP. Check your &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt;:&lt;/P&gt;&lt;LI-SPOILER&gt;nifi.web.https.host=0.0.0.0&lt;BR /&gt;nifi.web.https.port=8443&lt;BR /&gt;nifi.security.keystore=/path/to/keystore.jks&lt;BR /&gt;nifi.security.keystoreType=JKS&lt;BR /&gt;nifi.security.keystorePasswd=your_keystore_password&lt;BR /&gt;nifi.security.truststore=/path/to/truststore.jks&lt;BR /&gt;nifi.security.truststoreType=JKS&lt;BR /&gt;nifi.security.truststorePasswd=your_truststore_password&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;If you don't have a keystore/truststore yet, NiFi ships with a &lt;FONT color="#FF0000"&gt;tls-toolkit.sh &lt;/FONT&gt;(in the &lt;FONT color="#FF0000"&gt;bin/&lt;/FONT&gt; directory) that can generate them for testing.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 3&amp;nbsp; Edit&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#FF0000"&gt;conf/nifi.properties&lt;/FONT&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Open &lt;FONT color="#FF0000"&gt;&amp;lt;nifi-install-dir&amp;gt;/conf/nifi.properties&lt;/FONT&gt; in a text editor and set these properties:&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# --- OIDC Authentication ---&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.discovery.url&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;&lt;A href="https://your-internal-idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://your-internal-idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.client.id&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;nifi-client-prod&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.client.secret&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;your-client-secret-here&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.connect.timeout&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;5 secs&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.read.timeout&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;5 secs&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# The claim in the OIDC token that identifies the user (usually email or preferred_username)&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.claim.identifying.user&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;email&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# Scope - 'openid email profile' covers most providers&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.additional.scopes&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;email profile&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# Leave blank unless your provider requires a specific algorithm&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.preferred.jwsalgorithm&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The &lt;FONT color="#FF0000"&gt;nifi.security.user.oidc.discovery.url&lt;/FONT&gt; should be set to your provider's issuer endpoint with &lt;FONT color="#FF0000"&gt;/.well-known/openid-configuration&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The &lt;FONT color="#FF0000"&gt;nifi.security.user.oidc.claim.identifying.user&lt;/FONT&gt; value depends on your provider ask your IdP admin which claim carries the unique username. Common values are &lt;FONT color="#FF0000"&gt;email, preferred_username,&lt;/FONT&gt; or &lt;FONT color="#FF0000"&gt;sub&lt;/FONT&gt;.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 4 Configure the Initial Admin in&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT size="4" color="#FF0000"&gt;conf/authorizers.xml&lt;/FONT&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;NiFi needs to know which user gets admin rights on first startup. Open &lt;FONT color="#FF0000"&gt;conf/authorizers.xml &lt;/FONT&gt;and find the &lt;FONT color="#FF0000"&gt;&amp;lt;property name="Initial Admin Identity"&amp;gt;&lt;/FONT&gt; line inside the &lt;FONT color="#FF0000"&gt;FileAccessPolicyProvider&lt;/FONT&gt; block:&lt;/P&gt;&lt;LI-SPOILER&gt;&amp;lt;property name="Initial Admin Identity"&amp;gt;your.email@company.com&amp;lt;/property&amp;gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;This value must exactly match the identity claim that NiFi will receive from your OIDC provider after login&amp;nbsp; so if your provider sends &lt;FONT color="#FF0000"&gt;email&lt;/FONT&gt;, put your email address here. If it sends &lt;FONT color="#FF0000"&gt;preferred_username&lt;/FONT&gt;, put your username.&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 5&amp;nbsp; Restart NiFi&lt;BR /&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;cd /opt/nifi/nifi-current&lt;BR /&gt;./bin/nifi.sh restart&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;FONT size="4"&gt;Watch the logs for errors:&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;tail -f logs/nifi-app.log&lt;/LI-SPOILER&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 6 Test the Login&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When a user attempts to access NiFi, NiFi will redirect them to your identity provider to log in. After logging in, the provider sends NiFi a response containing the user's credentials, and NiFi authenticates the user.&lt;BR /&gt;Navigate to &lt;FONT color="#FF0000"&gt;https://&amp;lt;your-nifi-host&amp;gt;:8443/nifi&lt;/FONT&gt;&amp;nbsp;you should be redirected to your internal IdP login page instead of the NiFi login form.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 7 (Optional)&amp;nbsp; Encrypt the Client Secret&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Leaving a plain-text secret in &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt; is acceptable for testing but not ideal for production. NiFi ships with an &lt;FONT color="#FF0000"&gt;encrypt-config &lt;/FONT&gt;tool&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;./bin/encrypt-config.sh \&lt;BR /&gt;-n conf/nifi.properties \&lt;BR /&gt;-o conf/nifi.properties \&lt;BR /&gt;-p your_master_password&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;FONT size="4"&gt;This encrypts sensitive values in the file so they are not readable in plain text.&amp;nbsp;Share your feedback&lt;BR /&gt;&lt;BR /&gt;Happy Hadooping&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
    <pubDate>Mon, 11 May 2026 20:22:15 GMT</pubDate>
    <dc:creator>Shelton</dc:creator>
    <dc:date>2026-05-11T20:22:15Z</dc:date>
    <item>
      <title>How to configure oidc based login mechanism for NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-configure-oidc-based-login-mechanism-for-NiFi/m-p/414054#M254338</link>
      <description>&lt;P&gt;Hello I need help to setup oidc based login mechanism for NiFi. I came across this article&amp;nbsp;&lt;A href="https://docs.cloudera.com/cfm-operator/2.10.0/configure-nifi-cr/topics/cfm-op-configure-nifi-cr-oidc-auth.html" target="_blank" rel="noopener"&gt;https://docs.cloudera.com/cfm-operator/2.10.0/configure-nifi-cr/topics/cfm-op-configure-nifi-cr-oidc-auth.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;but I want to know how to do it for some provider other than Keycloak. I have an internal provider. Also when I read this article I saw some terms like Discovery url and "&lt;SPAN&gt;The&amp;nbsp;&lt;/SPAN&gt;clientID&lt;SPAN&gt;&amp;nbsp;and&amp;nbsp;&lt;/SPAN&gt;clientSecret&lt;SPAN&gt;&amp;nbsp;fields are provided to&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN class="ph"&gt;NiFi&lt;/SPAN&gt;&lt;SPAN&gt;&amp;nbsp;in a Kubernetes secret. Create that secret with the following command:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;kubectl create secret generic oidc-client-secret --from-literal=clientID=[***YOUR CLIENT ID***] --from-literal=clientSecret=[***YOUR CLIENT SECRET***]&lt;/PRE&gt;&lt;P&gt;I am quite new to these terms and wanted to know how to do it in NiFi. Is kubernetes required? I have installed both NiFi 1.23 and NiFi 2.8 on a simple machine.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2026 15:36:08 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-configure-oidc-based-login-mechanism-for-NiFi/m-p/414054#M254338</guid>
      <dc:creator>AlokKumar</dc:creator>
      <dc:date>2026-05-11T15:36:08Z</dc:date>
    </item>
    <item>
      <title>Re: How to configure oidc based login mechanism for NiFi</title>
      <link>https://community.cloudera.com/t5/Support-Questions/How-to-configure-oidc-based-login-mechanism-for-NiFi/m-p/414056#M254339</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/114561"&gt;@AlokKumar&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;OpenID Connect (OIDC) is a standard login protocol. Instead of NiFi managing its own passwords, it redirects users to your internal Identity Provider (IdP) to log in. Your IdP says "yes, this is a valid user" and sends NiFi a token. NiFi trusts that and lets the user in.&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Every OIDC-compatible provider publishes a public JSON file describing itself its endpoints, what it supports, etc. This URL always ends with &lt;FONT color="#FF0000"&gt;/.well-known/openid-configuration.&lt;/FONT&gt; NiFi fetches this URL at startup to learn how to talk to your provider. Example:&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;A href="https://your-internal-idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://your-internal-idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When you register NiFi as an "&lt;FONT color="#FF0000"&gt;application&lt;/FONT&gt;" in your internal IdP, the IdP gives you two credentials a Client ID (like a username for the app) and a Client Secret (like a password for the app). NiFi uses these to prove to the IdP that it is a legitimate registered application.&lt;BR /&gt;&lt;STRONG&gt;Is Kubernetes required?&lt;/STRONG&gt; The Cloudera/Kubernetes article you read uses &lt;FONT color="#FF0000"&gt;kubectl create secret&lt;/FONT&gt; only because it runs NiFi inside Kubernetes, where secrets are managed that way. On a plain machine, you just put the Client ID and Secret directly into &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt; as plain text, or use NiFi's built-in encrypt-config tool for security.&lt;/P&gt;&lt;H3&gt;&lt;FONT size="4"&gt;&lt;STRONG&gt;Step-by-Step: Configure OIDC on Standalone NiFi (1.23 or 2.8)&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/H3&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 1&amp;nbsp; Register NiFi in your internal Identity Provider&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Ask your IdP administrator to register a new OIDC client/application with:&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;STRONG&gt;Name:&lt;/STRONG&gt; Apache NiFi (or anything descriptive)&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Redirect URIs&lt;/STRONG&gt; (these are mandatory)&lt;BR /&gt;&lt;LI-SPOILER&gt;https://&amp;lt;your-nifi-host&amp;gt;:&amp;lt;port&amp;gt;/nifi-api/access/oidc/callback&lt;BR /&gt;https://&amp;lt;your-nifi-host&amp;gt;:&amp;lt;port&amp;gt;/nifi-api/access/oidc/logout/callback&lt;/LI-SPOILER&gt;&lt;UL class=""&gt;&lt;LI&gt;&lt;STRONG&gt;Grant type:&lt;/STRONG&gt; Authorization Code&lt;/LI&gt;&lt;/UL&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Once registered, your IdP admin will give you:&lt;/P&gt;&lt;UL class=""&gt;&lt;LI&gt;A &lt;STRONG&gt;Client ID&lt;/STRONG&gt; (e.g&amp;nbsp;&lt;FONT color="#FF0000"&gt;nifi-client-prod&lt;/FONT&gt;)&lt;/LI&gt;&lt;LI&gt;A &lt;STRONG&gt;Client Secret&lt;/STRONG&gt; (a long random string)&lt;/LI&gt;&lt;LI&gt;The &lt;STRONG&gt;Discovery URL&lt;/STRONG&gt; (e.g.&amp;nbsp;&lt;FONT color="#FF0000"&gt;&lt;A href="https://idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/FONT&gt;)&lt;/LI&gt;&lt;/UL&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Verify the Discovery URL works by opening it in a browser you should see a JSON document.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 2&amp;nbsp; Ensure NiFi is running with TLS (HTTPS)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;OIDC &lt;STRONG&gt;requires&lt;/STRONG&gt; NiFi to run over HTTPS. It will not work on plain HTTP. Check your &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt;:&lt;/P&gt;&lt;LI-SPOILER&gt;nifi.web.https.host=0.0.0.0&lt;BR /&gt;nifi.web.https.port=8443&lt;BR /&gt;nifi.security.keystore=/path/to/keystore.jks&lt;BR /&gt;nifi.security.keystoreType=JKS&lt;BR /&gt;nifi.security.keystorePasswd=your_keystore_password&lt;BR /&gt;nifi.security.truststore=/path/to/truststore.jks&lt;BR /&gt;nifi.security.truststoreType=JKS&lt;BR /&gt;nifi.security.truststorePasswd=your_truststore_password&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;If you don't have a keystore/truststore yet, NiFi ships with a &lt;FONT color="#FF0000"&gt;tls-toolkit.sh &lt;/FONT&gt;(in the &lt;FONT color="#FF0000"&gt;bin/&lt;/FONT&gt; directory) that can generate them for testing.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 3&amp;nbsp; Edit&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#FF0000"&gt;conf/nifi.properties&lt;/FONT&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Open &lt;FONT color="#FF0000"&gt;&amp;lt;nifi-install-dir&amp;gt;/conf/nifi.properties&lt;/FONT&gt; in a text editor and set these properties:&lt;/P&gt;&lt;LI-SPOILER&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# --- OIDC Authentication ---&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.discovery.url&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;&lt;A href="https://your-internal-idp.company.com/.well-known/openid-configuration" target="_blank" rel="noopener"&gt;https://your-internal-idp.company.com/.well-known/openid-configuration&lt;/A&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.client.id&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;nifi-client-prod&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.client.secret&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;your-client-secret-here&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.connect.timeout&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;5 secs&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.read.timeout&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;5 secs&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# The claim in the OIDC token that identifies the user (usually email or preferred_username)&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.claim.identifying.user&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;email&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# Scope - 'openid email profile' covers most providers&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.additional.scopes&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;email profile&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;# Leave blank unless your provider requires a specific algorithm&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;SPAN&gt;&lt;SPAN class="token token"&gt;nifi.security.user.oidc.preferred.jwsalgorithm&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;=&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The &lt;FONT color="#FF0000"&gt;nifi.security.user.oidc.discovery.url&lt;/FONT&gt; should be set to your provider's issuer endpoint with &lt;FONT color="#FF0000"&gt;/.well-known/openid-configuration&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;The &lt;FONT color="#FF0000"&gt;nifi.security.user.oidc.claim.identifying.user&lt;/FONT&gt; value depends on your provider ask your IdP admin which claim carries the unique username. Common values are &lt;FONT color="#FF0000"&gt;email, preferred_username,&lt;/FONT&gt; or &lt;FONT color="#FF0000"&gt;sub&lt;/FONT&gt;.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 4 Configure the Initial Admin in&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT size="4" color="#FF0000"&gt;conf/authorizers.xml&lt;/FONT&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;NiFi needs to know which user gets admin rights on first startup. Open &lt;FONT color="#FF0000"&gt;conf/authorizers.xml &lt;/FONT&gt;and find the &lt;FONT color="#FF0000"&gt;&amp;lt;property name="Initial Admin Identity"&amp;gt;&lt;/FONT&gt; line inside the &lt;FONT color="#FF0000"&gt;FileAccessPolicyProvider&lt;/FONT&gt; block:&lt;/P&gt;&lt;LI-SPOILER&gt;&amp;lt;property name="Initial Admin Identity"&amp;gt;your.email@company.com&amp;lt;/property&amp;gt;&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;This value must exactly match the identity claim that NiFi will receive from your OIDC provider after login&amp;nbsp; so if your provider sends &lt;FONT color="#FF0000"&gt;email&lt;/FONT&gt;, put your email address here. If it sends &lt;FONT color="#FF0000"&gt;preferred_username&lt;/FONT&gt;, put your username.&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 5&amp;nbsp; Restart NiFi&lt;BR /&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;cd /opt/nifi/nifi-current&lt;BR /&gt;./bin/nifi.sh restart&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;FONT size="4"&gt;Watch the logs for errors:&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;tail -f logs/nifi-app.log&lt;/LI-SPOILER&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 6 Test the Login&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;When a user attempts to access NiFi, NiFi will redirect them to your identity provider to log in. After logging in, the provider sends NiFi a response containing the user's credentials, and NiFi authenticates the user.&lt;BR /&gt;Navigate to &lt;FONT color="#FF0000"&gt;https://&amp;lt;your-nifi-host&amp;gt;:8443/nifi&lt;/FONT&gt;&amp;nbsp;you should be redirected to your internal IdP login page instead of the NiFi login form.&lt;/P&gt;&lt;H4&gt;&lt;STRONG&gt;&lt;FONT size="4"&gt;Step 7 (Optional)&amp;nbsp; Encrypt the Client Secret&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/H4&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;Leaving a plain-text secret in &lt;FONT color="#FF0000"&gt;nifi.properties&lt;/FONT&gt; is acceptable for testing but not ideal for production. NiFi ships with an &lt;FONT color="#FF0000"&gt;encrypt-config &lt;/FONT&gt;tool&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-SPOILER&gt;./bin/encrypt-config.sh \&lt;BR /&gt;-n conf/nifi.properties \&lt;BR /&gt;-o conf/nifi.properties \&lt;BR /&gt;-p your_master_password&lt;/LI-SPOILER&gt;&lt;P class="font-claude-response-body break-words whitespace-normal leading-[1.7]"&gt;&lt;FONT size="4"&gt;This encrypts sensitive values in the file so they are not readable in plain text.&amp;nbsp;Share your feedback&lt;BR /&gt;&lt;BR /&gt;Happy Hadooping&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Mon, 11 May 2026 20:22:15 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/How-to-configure-oidc-based-login-mechanism-for-NiFi/m-p/414056#M254339</guid>
      <dc:creator>Shelton</dc:creator>
      <dc:date>2026-05-11T20:22:15Z</dc:date>
    </item>
  </channel>
</rss>

