{"id":972,"date":"2025-12-15T11:54:57","date_gmt":"2025-12-15T10:54:57","guid":{"rendered":"https:\/\/www.syntera.ch\/blog\/?p=972"},"modified":"2026-02-19T08:53:19","modified_gmt":"2026-02-19T07:53:19","slug":"fabric-notebook-key-vault-access-with-service-principal","status":"publish","type":"post","link":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/","title":{"rendered":"Fabric Notebook: Key Vault Access with Service Principal"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-post-author has-medium-font-size\"><div class=\"wp-block-post-author__avatar\"><img alt='' src='https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=48&#038;d=mm&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&#038;d=mm&#038;r=g 2x' class='avatar avatar-48 photo' height='48' width='48' \/><\/div><div class=\"wp-block-post-author__content\"><p class=\"wp-block-post-author__byline\">LEAD DATA ENGINEERING<\/p><p class=\"wp-block-post-author__name\">Dominic Schranz<\/p><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<ul class=\"wp-block-outermost-social-sharing alignright has-small-icon-size has-icon-color is-style-logos-only is-content-justification-left is-layout-flex wp-container-outermost-social-sharing-is-layout-fc4fd283 wp-block-outermost-social-sharing-is-layout-flex\"><li style=\"color: #1a4548; \" class=\"outermost-social-sharing-link outermost-social-sharing-link-linkedin has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2025%2F12%2F15%2Ffabric-notebook-key-vault-access-with-service-principal%2F&#038;title=Fabric%20Notebook%3A%20Key%20Vault%20Access%20with%20Service%20Principal\" aria-label=\"Share on LinkedIn\" rel=\"noopener nofollow\" target=\"_blank\" class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tShare on LinkedIn\t\t<\/span>\n\t<\/a>\n<\/li>\n\n\n<li style=\"color: #1a4548; \" class=\"outermost-social-sharing-link outermost-social-sharing-link-mail has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"mailto:?subject=Fabric%20Notebook%3A%20Key%20Vault%20Access%20with%20Service%20Principal&#038;body=Fabric%20Notebook%3A%20Key%20Vault%20Access%20with%20Service%20Principal%20&mdash;%20https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2025%2F12%2F15%2Ffabric-notebook-key-vault-access-with-service-principal%2F\" aria-label=\"Email this Page\"  class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M20,4H4C2.895,4,2,4.895,2,6v12c0,1.105,0.895,2,2,2h16c1.105,0,2-0.895,2-2V6C22,4.895,21.105,4,20,4z M20,8.236l-8,4.882 L4,8.236V6h16V8.236z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tEmail this Page\t\t<\/span>\n\t<\/a>\n<\/li>\n\n\n<li style=\"color: #1a4548; \" class=\"outermost-social-sharing-link outermost-social-sharing-link-whatsapp has-primary-color wp-block-outermost-social-sharing-link\">\n\t<a href=\"https:\/\/api.whatsapp.com\/send?text=Fabric%20Notebook%3A%20Key%20Vault%20Access%20with%20Service%20Principal%20&mdash;%20https%3A%2F%2Fwww.syntera.ch%2Fblog%2F2025%2F12%2F15%2Ffabric-notebook-key-vault-access-with-service-principal%2F\" aria-label=\"Share on WhatsApp\" rel=\"noopener nofollow\" target=\"_blank\" class=\"wp-block-outermost-social-sharing-link-anchor\">\n\t\t<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\"><path d=\"M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z\"><\/path><\/svg>\t\t<span class=\"wp-block-outermost-social-sharing-link-label screen-reader-text\">\n\t\t\tShare on WhatsApp\t\t<\/span>\n\t<\/a>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<p>Since the newest <a href=\"https:\/\/blog.fabric.microsoft.com\/en-us\/blog\/run-notebooks-in-pipelines-with-service-principal-or-workspace-identity\/\" target=\"_blank\" rel=\"noreferrer noopener\">Fabric update<\/a> it is possible to run Notebooks in the context of a Service Principal by creating a connection and running the Notebook in a Pipeline. This finally unlocks the possibility to access secrets stored in a Key Vault secured by a central Service Principal credential. Read <a href=\"https:\/\/www.syntera.ch\/blog\/2023\/10\/18\/how-to-access-azure-key-vault-secrets-from-fabric-notebook\/\" target=\"_blank\" rel=\"noreferrer noopener\">here on why using a Key Vault important<\/a>.<\/p>\n\n\n\n<p>In this blog post I guide you trough the full end to end setup so you can implement it in your own solution.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ebf6f7\">Workspace Identity support in the connection settings is currently not working correctly: <a href=\"https:\/\/learn.microsoft.com\/en-us\/fabric\/data-factory\/notebook-activity#known-issues\" target=\"_blank\" rel=\"noreferrer noopener\">Notebook activity &#8211; Known Issues<\/a>. Use the Service Principal solution described in this article until there is a fix.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Requirements and Set Up<\/h4>\n\n\n\n<p>To implement the access to Key Vault via Service Principal, the following steps need to be configured:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Service Principal creation<\/li>\n\n\n\n<li>Admin Setting &#8220;Service Principals can call Fabric public APIs&#8221;<\/li>\n\n\n\n<li>Fabric Permissions for the Service Principal<\/li>\n\n\n\n<li>Key Vault Permission for the Service Principal<\/li>\n<\/ol>\n\n\n\n<h6 class=\"wp-block-heading\">1. Service Principal<\/h6>\n\n\n\n<p>A Service Principal can be created via Powershell or in the Azure Portal. Navigate to portal.azure.com &gt; Entra Portal &gt; <a href=\"https:\/\/portal.azure.com\/#view\/Microsoft_AAD_IAM\/ActiveDirectoryMenuBlade\/~\/RegisteredApps\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">App registrations<\/a>. Click on &#8220;New registration&#8221;, set a descriptive name such as &#8220;FabricNotebookWithKVAccess&#8221; and click on &#8220;Register&#8221;.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1370\" height=\"1253\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-22.png\" alt=\"\" class=\"has-border-color wp-image-997\" style=\"border-color:#F6F6F6;border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:1.0928654970760234;width:377px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-22.png 1370w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-22-300x274.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-22-1024x937.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-22-768x702.png 768w\" sizes=\"auto, (max-width: 1370px) 100vw, 1370px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1375\" height=\"1084\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-23.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-998\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-23.png 1375w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-23-300x237.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-23-1024x807.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-23-768x605.png 768w\" sizes=\"auto, (max-width: 1375px) 100vw, 1375px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>In the overview page after adding the Service Principal you can see the Application (client) ID and the Directory (tenant) ID. These will be needed later. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1858\" height=\"855\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4.png\" alt=\"\" class=\"has-border-color wp-image-977\" style=\"border-color:#F6F6F6;border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4.png 1858w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4-300x138.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4-1024x471.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4-768x353.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-4-1536x707.png 1536w\" sizes=\"auto, (max-width: 1858px) 100vw, 1858px\" \/><\/figure>\n\n\n\n<p>After creating the Service Principal, the next step is to set up a client secret. On the Service Principal, navigate to &#8220;Certifactes &amp; Secrets&#8221; and press the button to add a new client secret. Give the secret a name and set the expiration days. <\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"943\" height=\"637\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-25.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1000\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:1.447657667271369;width:422px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-25.png 943w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-25-300x203.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-25-768x519.png 768w\" sizes=\"auto, (max-width: 943px) 100vw, 943px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"790\" height=\"527\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-6-edited.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1001\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:3\/2;object-fit:cover\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-6-edited.png 790w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-6-edited-300x200.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-6-edited-768x512.png 768w\" sizes=\"auto, (max-width: 790px) 100vw, 790px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>The secret will be displayed to you only directly after adding it to the Service Principal. <strong>Make a copy of it so you can use it later in the process.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1414\" height=\"748\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-26.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1002\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-26.png 1414w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-26-300x159.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-26-1024x542.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-26-768x406.png 768w\" sizes=\"auto, (max-width: 1414px) 100vw, 1414px\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">2. Admin Setting<\/h6>\n\n\n\n<p>Navigate to <a href=\"https:\/\/app.powerbi.com\/admin-portal\/tenantSettings?experience=power-bi\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Power BI admin center<\/a> to enable the Setting &#8220;Service principals can call Fabric public APIs&#8221;. It is recommended to use a specific security group. In this blog we just enable it for the entire organization for brevity.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"742\" height=\"406\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-973\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image.png 742w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-300x164.png 300w\" sizes=\"auto, (max-width: 742px) 100vw, 742px\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">3. Fabric Access<\/h6>\n\n\n\n<p>Now we can add the Service Principal to the workspace. Go to your Fabric workspace and on the top right klick on &#8220;Manage Access&#8221; &gt; &#8220;Add people or Groups&#8221; &gt; &#8220;Add the Service Principal&#8221;. Contributor permissions are enough for the current example.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--30)\"><img loading=\"lazy\" decoding=\"async\" width=\"402\" height=\"352\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-13.png\" alt=\"\" class=\"has-border-color wp-image-987\" style=\"border-color:#F6F6F6;border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-13.png 402w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-13-300x263.png 300w\" sizes=\"auto, (max-width: 402px) 100vw, 402px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"366\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-11.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-985\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:1.0956204069495774;width:389px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-11.png 403w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-11-300x272.png 300w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h6 class=\"wp-block-heading\">4. Key Vault<\/h6>\n\n\n\n<p>If you don\u2019t have a Key Vault, you need to create one in your Azure tenant. The Service Principal needs to have permission to the Key Vault to read secrets. Navigate to your Key Vault and set up a new role assignment in access control (IAM). Select the role &#8220;Key Vault Secrets User&#8221; and assign it to your Service Principal.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"757\" height=\"570\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-28.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1004\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-28.png 757w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-28-300x226.png 300w\" sizes=\"auto, (max-width: 757px) 100vw, 757px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-large is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"712\" height=\"603\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-19.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-993\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:1.1711229946524064;width:393px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-19.png 712w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-19-300x254.png 300w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>The role assignment can be validated on the &#8220;Role assignments&#8221; blade in &#8220;Access control (IAM)&#8221;:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"2199\" height=\"856\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-994\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20.png 2199w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20-300x117.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20-1024x399.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20-768x299.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20-1536x598.png 1536w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-20-2048x797.png 2048w\" sizes=\"auto, (max-width: 2199px) 100vw, 2199px\" \/><\/figure>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ebf6f7\">The code assumes that your Key Vault contains a secret &#8220;fabric-blog-dummy-password&#8221; with the value &#8220;emilyspass&#8221;. Add this secret if you want to test the provided code.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Implementation<\/h4>\n\n\n\n<h6 class=\"wp-block-heading\">NoteBOOk<\/h6>\n\n\n\n<p>Accessing the Key Vault requires the use of Notebookutils. The following code retrieves the secret from the key vault and then calls the dummyjson api to test if the secret has been retrieved successfully:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"997\" height=\"753\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-29.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1005\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-29.png 997w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-29-300x227.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-29-768x580.png 768w\" sizes=\"auto, (max-width: 997px) 100vw, 997px\" \/><\/figure>\n\n\n\n<p>Create a new notebook in your Fabric workspace, expand the field below and copy the code. Replace the URL of the Key Vault with the one you set Permissions earlier.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary>Code<\/summary>\n<pre class=\"wp-block-code\"><code># Set the variables for the Key Vault\nsecretName = \"fabric-blog-dummy-password\"\nkeyVaultURL = \"https:\/\/your_key_vault.vault.azure.net\/\" # use your key vault here\n# Retrieve secret\npswrd = notebookutils.credentials.getSecret(keyVaultURL, secretName)\n\n# Try to print the retrieved string\nprint(f\"The retrieved password is: {pswrd}\")\n\n#<em> Demo API call with password<\/em>\n# Check https:\/\/dummyjson.com\/docs\/auth for details\n<em>import<\/em> json\n<em>import<\/em> requests\napi_url =\"https:\/\/dummyjson.com\/auth\/login\"\nbody = json.dumps({\"username\": \"emilys\", \"password\": pswrd }) # emilyspass\nheaders = &nbsp;{\"Content-Type\":\"application\/json\"}\nresponse = requests.post(api_url, data=body, headers=headers)\nprint(response)\nprint(response.content)<\/code><\/pre>\n<\/details>\n\n\n\n<p class=\"has-background\" style=\"background-color:#ebf6f7\">If you want to run the code in the Notebook with your user before switching to the Service Principal, double check that the current user has the permissions to&nbsp;<em>read<\/em>&nbsp;the secret in your Vault. Otherwise the retrieval will not work. Simply being the creator of the Key Vault won\u2019t be enough.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Pipeline<\/h6>\n\n\n\n<p>In your workspace, add a new Pipeline.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"435\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-30-1024x435.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1006\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-30-1024x435.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-30-300x127.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-30-768x326.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-30.png 1443w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In the newly created Pipeline, select the Notebook activity and on the activity, navigate to &#8220;Settings&#8221; and select the Notebook containing the code to access the Key Vault.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"765\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-31-1024x765.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1007\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-31-1024x765.png 1024w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-31-300x224.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-31-768x573.png 768w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-31.png 1287w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h6 class=\"wp-block-heading\">Create The Connection<\/h6>\n\n\n\n<p>On the Notebook activity, select the Connection property and click on &#8220;Browse all&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"694\" height=\"709\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-32.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1008\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-32.png 694w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-32-294x300.png 294w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><\/figure>\n\n\n\n<p>Select &#8220;Notebook&#8221; from the new sources and provide the details of your Service Principal. Tenant ID and service principal client ID can be found on the Service Principal on the overview page. The &#8220;Service principal Key&#8221; is the secret you created in the Set Up earlier. Click &#8220;Connect&#8221; in the bottom right after providing the details.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full is-resized has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"523\" height=\"297\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-33.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1009\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px;aspect-ratio:1.6979618246522161;width:343px;height:auto\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-33.png 523w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-33-300x170.png 300w\" sizes=\"auto, (max-width: 523px) 100vw, 523px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"843\" height=\"829\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-34.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1010\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-34.png 843w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-34-300x295.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-34-768x755.png 768w\" sizes=\"auto, (max-width: 843px) 100vw, 843px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Ensure the connection is correctly set on the Notebook activity and run the Pipeline.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"787\" height=\"739\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-35.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1012\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-35.png 787w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-35-300x282.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-35-768x721.png 768w\" sizes=\"auto, (max-width: 787px) 100vw, 787px\" \/><\/figure>\n\n\n\n<p>After running the Pipeline, there should be a status indicating the run was successful. You can even check the Notebook snapshot by clicking on the activity name of the run for your Notebook. If the run was not successful, ensure that you followed the setup steps. I provided some troubleshooting help below if you run into errors.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"726\" height=\"710\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-36.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-1013\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-36.png 726w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-36-300x293.png 300w\" sizes=\"auto, (max-width: 726px) 100vw, 726px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshoot<\/h2>\n\n\n\n<p>If the Service Principal is not correctly given permission to access the Notebook, an error message similar to this will show. Review that the Service Principal can access the Fabric API and is correctly given access to the Notebook.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"531\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-14.png\" alt=\"\" class=\"has-border-color has-tertiary-border-color wp-image-988\" style=\"border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-14.png 967w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-14-300x165.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-14-768x422.png 768w\" sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/figure>\n\n\n\n<p>If the Key Vault permissions are not set correctly, an error message like the following will be presented. Double check if the Service Principal has access to the secret. If everything looks correct, wait 3 minutes and try again. Sometimes it can take some time for the Key Vault permissions to correctly activate.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full has-custom-border\" style=\"margin-top:var(--wp--preset--spacing--30);margin-right:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--30);margin-left:var(--wp--preset--spacing--20)\"><img loading=\"lazy\" decoding=\"async\" width=\"967\" height=\"485\" src=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-21.png\" alt=\"\" class=\"has-border-color wp-image-995\" style=\"border-color:#F6F6F6;border-width:10px;border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-21.png 967w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-21-300x150.png 300w, https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/image-21-768x385.png 768w\" sizes=\"auto, (max-width: 967px) 100vw, 967px\" \/><\/figure>\n\n\n\n<p>Read more about Fabric:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.syntera.ch\/blog\/2025\/05\/15\/microsoft-fabric-cost-optimization-pause-capacity-reservations\/\">Microsoft Fabric Cost Optimization: Pause Capacity &amp; Reservations &#8211; Syntera<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.syntera.ch\/blog\/2023\/10\/18\/how-to-access-azure-key-vault-secrets-from-fabric-notebook\/\">How-To Access Azure Key Vault Secrets from Fabric Notebook &#8211; Syntera<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.syntera.ch\/blog\/2024\/01\/09\/implementing-fabric-eventstream-data-activator-with-real-world-data\/\">Implementing Fabric Eventstream &amp; Data Activator With Real World Data &#8211; Syntera<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Since the newest Fabric update it is possible to run Notebooks in the context of a Service Principal by creating a connection and running the Notebook in a Pipeline. This finally unlocks the possibility to access secrets stored in a Key Vault secured by a central Service Principal credential. Read here on why using a [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":1019,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,7,25],"tags":[35,34,36],"class_list":["post-972","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-data-engineering","category-security","tag-fabric","tag-microsoft-fabric","tag-notebook"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fabric Notebook: Key Vault Access with Service Principal - Syntera<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fabric Notebook: Key Vault Access with Service Principal - Syntera\" \/>\n<meta property=\"og:description\" content=\"Since the newest Fabric update it is possible to run Notebooks in the context of a Service Principal by creating a connection and running the Notebook in a Pipeline. This finally unlocks the possibility to access secrets stored in a Key Vault secured by a central Service Principal credential. Read here on why using a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/\" \/>\n<meta property=\"og:site_name\" content=\"Syntera\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-15T10:54:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-19T07:53:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/title-image.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Dominic Schranz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dominic Schranz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/\",\"url\":\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/\",\"name\":\"Fabric Notebook: Key Vault Access with Service Principal - Syntera\",\"isPartOf\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/#website\"},\"datePublished\":\"2025-12-15T10:54:57+00:00\",\"dateModified\":\"2026-02-19T07:53:19+00:00\",\"author\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.syntera.ch\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fabric Notebook: Key Vault Access with Service Principal\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#website\",\"url\":\"https:\/\/www.syntera.ch\/blog\/\",\"name\":\"Syntera\",\"description\":\"translating data into business value.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.syntera.ch\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d\",\"name\":\"Dominic Schranz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g\",\"caption\":\"Dominic Schranz\"},\"url\":\"https:\/\/www.syntera.ch\/blog\/author\/domi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Fabric Notebook: Key Vault Access with Service Principal - Syntera","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/","og_locale":"en_US","og_type":"article","og_title":"Fabric Notebook: Key Vault Access with Service Principal - Syntera","og_description":"Since the newest Fabric update it is possible to run Notebooks in the context of a Service Principal by creating a connection and running the Notebook in a Pipeline. This finally unlocks the possibility to access secrets stored in a Key Vault secured by a central Service Principal credential. Read here on why using a [&hellip;]","og_url":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/","og_site_name":"Syntera","article_published_time":"2025-12-15T10:54:57+00:00","article_modified_time":"2026-02-19T07:53:19+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.syntera.ch\/blog\/wp-content\/uploads\/2025\/12\/title-image.png","type":"image\/png"}],"author":"Dominic Schranz","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dominic Schranz","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/","url":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/","name":"Fabric Notebook: Key Vault Access with Service Principal - Syntera","isPartOf":{"@id":"https:\/\/www.syntera.ch\/blog\/#website"},"datePublished":"2025-12-15T10:54:57+00:00","dateModified":"2026-02-19T07:53:19+00:00","author":{"@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d"},"breadcrumb":{"@id":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.syntera.ch\/blog\/2025\/12\/15\/fabric-notebook-key-vault-access-with-service-principal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.syntera.ch\/blog\/"},{"@type":"ListItem","position":2,"name":"Fabric Notebook: Key Vault Access with Service Principal"}]},{"@type":"WebSite","@id":"https:\/\/www.syntera.ch\/blog\/#website","url":"https:\/\/www.syntera.ch\/blog\/","name":"Syntera","description":"translating data into business value.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.syntera.ch\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/e038d1dcebeca2193c5503f78783988d","name":"Dominic Schranz","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.syntera.ch\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bd3589b8a6ccc62e37c3cee8f8e06c73a4085816337ad7d6c154e30dc60cc4c1?s=96&d=mm&r=g","caption":"Dominic Schranz"},"url":"https:\/\/www.syntera.ch\/blog\/author\/domi\/"}]}},"_links":{"self":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/comments?post=972"}],"version-history":[{"count":10,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/972\/revisions"}],"predecessor-version":[{"id":1037,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/posts\/972\/revisions\/1037"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/media\/1019"}],"wp:attachment":[{"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/media?parent=972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/categories?post=972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.syntera.ch\/blog\/wp-json\/wp\/v2\/tags?post=972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}