<?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>topic Support for managed identity based authentication in python kafka client in Get Started Discussions</title>
    <link>https://community.databricks.com/t5/get-started-discussions/support-for-managed-identity-based-authentication-in-python/m-p/115732#M9402</link>
    <description>&lt;P&gt;We followed this document &lt;A class="" title="https://nam06.safelinks.protection.outlook.com/?url=https%3a%2f%2fdocs.databricks.com%2faws%2fen%2fconnect%2fstreaming%2fkafka%3flanguage%3dpython%23msk-aad&amp;amp;data=05%7c02%7ckrsm%40microsoft.com%7cad503ac057944bac008208dd781df7dc%7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c638798792303836962%7cunknown%7ctwfpbgzsb3d8eyjfbxb0eu1hcgkionrydwusilyioiiwljaumdawmcisilaioijxaw4zmiisikfoijoitwfpbcisilduijoyfq%3d%3d%7c0%7c%7c%7c&amp;amp;sdata=n4bcxletilx9%2ff6mtvsiexvimtvy1xf2ajoy3q62zsa%3d&amp;amp;reserved=0" href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.databricks.com%2Faws%2Fen%2Fconnect%2Fstreaming%2Fkafka%3Flanguage%3DPython%23msk-aad&amp;amp;data=05%7C02%7Ckrsm%40microsoft.com%7Cad503ac057944bac008208dd781df7dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638798792303836962%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&amp;amp;sdata=n4BcXLetIlx9%2FF6mtVsIexvimtvY1XF2AJoY3Q62zsA%3D&amp;amp;reserved=0" target="_blank" rel="noreferrer noopener"&gt;https://docs.databricks.com/aws/en/connect/streaming/kafka?language=Python#msk-aad&amp;nbsp;to use Kafka client to read events from our event hub for a feature.&lt;/A&gt;&lt;/P&gt;&lt;P&gt;As part of the SFI, the guidance is to move away from client secret and use managed identity instead. As per our investigation so far, we have not find a way to do the same. Can you please guide us how we can do the same in this case?&lt;/P&gt;&lt;P&gt;What we have tried so far?&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;To create token and pass directly - did not work&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;kafka_options = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.bootstrap.servers": brokers,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "subscribe": topic,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.security.protocol": "SASL_SSL",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.mechanism": "OAUTHBEARER",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.jaas.config": f'org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required oauth.token="{oauth_token}";',&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.login.callback.handler.class": "org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler"&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;What are trying currently?&lt;/P&gt;&lt;P&gt;1. To use custom handler instead of the default handler. We are stuck here because right libraries are not found&lt;/P&gt;&lt;P&gt;Our current code with secret:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;sasl_config &lt;SPAN&gt;= &lt;SPAN&gt;f&lt;SPAN&gt;'kafkashaded.org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required clientId="&lt;SPAN&gt;{&lt;SPAN&gt;client_id&lt;SPAN&gt;}&lt;SPAN&gt;" clientSecret="&lt;SPAN&gt;{&lt;SPAN&gt;client_secret&lt;SPAN&gt;}&lt;SPAN&gt;" scope="https://&lt;SPAN&gt;{&lt;SPAN&gt;event_hubs_server&lt;SPAN&gt;}&lt;SPAN&gt;/.default" ssl.protocol="SSL";'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;KAFKA_OPTIONS &lt;SPAN&gt;=&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.bootstrap.servers"&lt;SPAN&gt; &amp;nbsp;: &lt;SPAN&gt;f&lt;SPAN&gt;"&lt;SPAN&gt;{&lt;SPAN&gt;event_hubs_server&lt;SPAN&gt;}&lt;SPAN&gt;:9093"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"subscribe"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: event_hubs_topic,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.mechanism"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"OAUTHBEARER"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.security.protocol"&lt;SPAN&gt; &amp;nbsp;: &lt;SPAN&gt;"SASL_SSL"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.jaas.config"&lt;SPAN&gt; &amp;nbsp; : sasl_config,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.oauthbearer.token.endpoint.url"&lt;SPAN&gt;: &lt;SPAN&gt;f&lt;SPAN&gt;"&amp;lt;url&amp;gt;&lt;SPAN&gt;"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.login.callback.handler.class"&lt;SPAN&gt;: &lt;SPAN&gt;"kafkashaded.org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.request.timeout.ms"&lt;SPAN&gt; : &lt;SPAN&gt;"60000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.session.timeout.ms"&lt;SPAN&gt; : &lt;SPAN&gt;"60000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"maxOffsetsPerTrigger"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"1000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"failOnDataLoss"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"false"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"startingOffsets"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &lt;SPAN&gt;"earliest"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
    <pubDate>Thu, 17 Apr 2025 09:47:14 GMT</pubDate>
    <dc:creator>Kruthika</dc:creator>
    <dc:date>2025-04-17T09:47:14Z</dc:date>
    <item>
      <title>Support for managed identity based authentication in python kafka client</title>
      <link>https://community.databricks.com/t5/get-started-discussions/support-for-managed-identity-based-authentication-in-python/m-p/115732#M9402</link>
      <description>&lt;P&gt;We followed this document &lt;A class="" title="https://nam06.safelinks.protection.outlook.com/?url=https%3a%2f%2fdocs.databricks.com%2faws%2fen%2fconnect%2fstreaming%2fkafka%3flanguage%3dpython%23msk-aad&amp;amp;data=05%7c02%7ckrsm%40microsoft.com%7cad503ac057944bac008208dd781df7dc%7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c638798792303836962%7cunknown%7ctwfpbgzsb3d8eyjfbxb0eu1hcgkionrydwusilyioiiwljaumdawmcisilaioijxaw4zmiisikfoijoitwfpbcisilduijoyfq%3d%3d%7c0%7c%7c%7c&amp;amp;sdata=n4bcxletilx9%2ff6mtvsiexvimtvy1xf2ajoy3q62zsa%3d&amp;amp;reserved=0" href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.databricks.com%2Faws%2Fen%2Fconnect%2Fstreaming%2Fkafka%3Flanguage%3DPython%23msk-aad&amp;amp;data=05%7C02%7Ckrsm%40microsoft.com%7Cad503ac057944bac008208dd781df7dc%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C638798792303836962%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&amp;amp;sdata=n4BcXLetIlx9%2FF6mtVsIexvimtvY1XF2AJoY3Q62zsA%3D&amp;amp;reserved=0" target="_blank" rel="noreferrer noopener"&gt;https://docs.databricks.com/aws/en/connect/streaming/kafka?language=Python#msk-aad&amp;nbsp;to use Kafka client to read events from our event hub for a feature.&lt;/A&gt;&lt;/P&gt;&lt;P&gt;As part of the SFI, the guidance is to move away from client secret and use managed identity instead. As per our investigation so far, we have not find a way to do the same. Can you please guide us how we can do the same in this case?&lt;/P&gt;&lt;P&gt;What we have tried so far?&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;To create token and pass directly - did not work&lt;BR /&gt;&lt;SPAN&gt;&lt;SPAN&gt;kafka_options = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.bootstrap.servers": brokers,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "subscribe": topic,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.security.protocol": "SASL_SSL",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.mechanism": "OAUTHBEARER",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.jaas.config": f'org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required oauth.token="{oauth_token}";',&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "kafka.sasl.login.callback.handler.class": "org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler"&lt;BR /&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;P&gt;What are trying currently?&lt;/P&gt;&lt;P&gt;1. To use custom handler instead of the default handler. We are stuck here because right libraries are not found&lt;/P&gt;&lt;P&gt;Our current code with secret:&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;sasl_config &lt;SPAN&gt;= &lt;SPAN&gt;f&lt;SPAN&gt;'kafkashaded.org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required clientId="&lt;SPAN&gt;{&lt;SPAN&gt;client_id&lt;SPAN&gt;}&lt;SPAN&gt;" clientSecret="&lt;SPAN&gt;{&lt;SPAN&gt;client_secret&lt;SPAN&gt;}&lt;SPAN&gt;" scope="https://&lt;SPAN&gt;{&lt;SPAN&gt;event_hubs_server&lt;SPAN&gt;}&lt;SPAN&gt;/.default" ssl.protocol="SSL";'&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;KAFKA_OPTIONS &lt;SPAN&gt;=&lt;SPAN&gt; {&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.bootstrap.servers"&lt;SPAN&gt; &amp;nbsp;: &lt;SPAN&gt;f&lt;SPAN&gt;"&lt;SPAN&gt;{&lt;SPAN&gt;event_hubs_server&lt;SPAN&gt;}&lt;SPAN&gt;:9093"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"subscribe"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: event_hubs_topic,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.mechanism"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"OAUTHBEARER"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.security.protocol"&lt;SPAN&gt; &amp;nbsp;: &lt;SPAN&gt;"SASL_SSL"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.jaas.config"&lt;SPAN&gt; &amp;nbsp; : sasl_config,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.oauthbearer.token.endpoint.url"&lt;SPAN&gt;: &lt;SPAN&gt;f&lt;SPAN&gt;"&amp;lt;url&amp;gt;&lt;SPAN&gt;"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.sasl.login.callback.handler.class"&lt;SPAN&gt;: &lt;SPAN&gt;"kafkashaded.org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.request.timeout.ms"&lt;SPAN&gt; : &lt;SPAN&gt;"60000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"kafka.session.timeout.ms"&lt;SPAN&gt; : &lt;SPAN&gt;"60000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"maxOffsetsPerTrigger"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"1000"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"failOnDataLoss"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; : &lt;SPAN&gt;"false"&lt;SPAN&gt;,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;SPAN&gt;&amp;nbsp; &lt;SPAN&gt;"startingOffsets"&lt;SPAN&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: &lt;SPAN&gt;"earliest"&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Thu, 17 Apr 2025 09:47:14 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/support-for-managed-identity-based-authentication-in-python/m-p/115732#M9402</guid>
      <dc:creator>Kruthika</dc:creator>
      <dc:date>2025-04-17T09:47:14Z</dc:date>
    </item>
    <item>
      <title>Re: Support for managed identity based authentication in python kafka client</title>
      <link>https://community.databricks.com/t5/get-started-discussions/support-for-managed-identity-based-authentication-in-python/m-p/135881#M10900</link>
      <description>&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Currently, Databricks does&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;support using&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Managed Identities directly for Kafka client authentication&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;(e.g., MSK IAM or Event Hubs Kafka endpoint) in Python Structured Streaming connections. However, there is a supported and secure alternative that aligns with your SFI goal of eliminating client secrets —&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Unity Catalog service credentials&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;configured with a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Managed Identity–based access connector&lt;/STRONG&gt;.&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Current State of Managed Identity for Kafka in Databricks&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Managed Identity–based OAuth authentication for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Kafka clients&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;is not yet supported natively in Databricks streaming readers or writers for Kafka on AWS or Azure. As of 2025, Databricks recommends replacing traditional credential-based authentication (client secrets, certificates) with&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Unity Catalog service credentials&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;that encapsulate a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Managed Identity&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;instance profile&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for Kafka access.​&lt;/P&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Recommended Approach Using Unity Catalog Service Credentials&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;To align with your SFI directive and eliminate client secrets:&lt;/P&gt;
&lt;OL class="marker:text-quiet list-decimal"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Create a Managed Identity and Access Connector&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;In Azure, set up an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Azure Databricks access connector&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;bound to a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;user-assigned managed identity&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Grant this managed identity access to your target service (MSK or Event Hubs).&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Record the access connector’s Resource ID.​&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Create a Unity Catalog Service Credential&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;In Databricks, create a new service credential linked to that access connector using the Azure portal or the Databricks catalog UI.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Example command:&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;sql&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;&lt;SPAN class="token token"&gt;CREATE&lt;/SPAN&gt; SERVICE CREDENTIAL my_kafka_sc
&lt;SPAN class="token token"&gt;WITH&lt;/SPAN&gt; ID &lt;SPAN class="token token"&gt;'/subscriptions/&amp;lt;sub-id&amp;gt;/resourceGroups/&amp;lt;rg&amp;gt;/providers/Microsoft.Databricks/accessConnectors/&amp;lt;connector-name&amp;gt;'&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;;&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Optionally, include your&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;user-assigned managed identity ID&lt;/STRONG&gt;.&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;&lt;STRONG&gt;Reference the Service Credential in Kafka Configuration&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Replace the old secret-based Kafka auth block in your Spark code with:&lt;/P&gt;
&lt;DIV class="w-full md:max-w-[90vw]"&gt;
&lt;DIV class="codeWrapper text-light selection:text-super selection:bg-super/10 my-md relative flex flex-col rounded font-mono text-sm font-normal bg-subtler"&gt;
&lt;DIV class="translate-y-xs -translate-x-xs bottom-xl mb-xl flex h-0 items-start justify-end md:sticky md:top-[100px]"&gt;
&lt;DIV class="overflow-hidden rounded-full border-subtlest ring-subtlest divide-subtlest bg-base"&gt;
&lt;DIV class="border-subtlest ring-subtlest divide-subtlest bg-subtler"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV class="-mt-xl"&gt;
&lt;DIV&gt;
&lt;DIV class="text-quiet bg-subtle py-xs px-sm inline-block rounded-br rounded-tl-[3px] font-thin" data-testid="code-language-indicator"&gt;python&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;CODE&gt;df &lt;SPAN class="token token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;spark&lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;readStream
      &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;format&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"kafka"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
      &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"databricks.serviceCredential"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"my_kafka_sc"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
      &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"kafka.bootstrap.servers"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"&amp;lt;bootstrap-server-url&amp;gt;"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
      &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;option&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token"&gt;"subscribe"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;,&lt;/SPAN&gt; &lt;SPAN class="token token"&gt;"&amp;lt;topic&amp;gt;"&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
      &lt;SPAN class="token token punctuation"&gt;.&lt;/SPAN&gt;load&lt;SPAN class="token token punctuation"&gt;(&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;&lt;SPAN class="token token punctuation"&gt;)&lt;/SPAN&gt;
&lt;/CODE&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;When the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;databricks.serviceCredential&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;option is used, you should&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;not&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;include SASL, JAAS, or protocol configuration parameters (&lt;CODE&gt;kafka.sasl.mechanism&lt;/CODE&gt;,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE&gt;kafka.security.protocol&lt;/CODE&gt;, etc.) — Databricks manages those using the bound managed identity.​&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;Availability and Considerations&lt;/H2&gt;
&lt;UL class="marker:text-quiet list-disc"&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;This feature is available starting in&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Databricks Runtime 16.1&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and later.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Works across&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;AWS MSK&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Azure Event Hubs&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;with Managed Identity or Instance Profile.&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;Ideal for&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;serverless&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;shared compute&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;environments where secret injection is discouraged.​&lt;/P&gt;
&lt;/LI&gt;
&lt;LI class="py-0 my-0 prose-p:pt-0 prose-p:mb-2 prose-p:my-0 [&amp;amp;&amp;gt;p]:pt-0 [&amp;amp;&amp;gt;p]:mb-2 [&amp;amp;&amp;gt;p]:my-0"&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;For older runtimes or environments without Unity Catalog, the only supported options remain IAM (AWS instance profile) or Entra ID client secret–based OAuth.​&lt;/P&gt;
&lt;/LI&gt;
&lt;/UL&gt;
&lt;H2 class="mb-2 mt-4 font-display font-semimedium text-base first:mt-0"&gt;In Summary&lt;/H2&gt;
&lt;P class="my-2 [&amp;amp;+p]:mt-4 [&amp;amp;_strong:has(+br)]:inline-block [&amp;amp;_strong:has(+br)]:pb-2"&gt;If your environment is on&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Databricks Runtime 16.1 or higher&lt;/STRONG&gt;, use&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Unity Catalog service credentials&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;connected to an&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;Azure Managed Identity&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;to securely authenticate to Kafka (MSK/Event Hubs) without relying on a client secret. This model satisfies SFI governance by removing embedded secrets and leveraging Azure-managed tokens.&lt;/P&gt;</description>
      <pubDate>Thu, 23 Oct 2025 17:56:29 GMT</pubDate>
      <guid>https://community.databricks.com/t5/get-started-discussions/support-for-managed-identity-based-authentication-in-python/m-p/135881#M10900</guid>
      <dc:creator>mark_ott</dc:creator>
      <dc:date>2025-10-23T17:56:29Z</dc:date>
    </item>
  </channel>
</rss>

