{"id":90078,"date":"2022-01-18T10:00:00","date_gmt":"2022-01-18T18:00:00","guid":{"rendered":"https:\/\/cloudblogs.microsoft.com\/opensource\/?p=90078"},"modified":"2024-06-19T10:49:43","modified_gmt":"2024-06-19T17:49:43","slug":"announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes","status":"publish","type":"post","link":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/","title":{"rendered":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes"},"content":{"rendered":"\n<p>Today, we are excited to announce an open-source project called&nbsp;<a href=\"https:\/\/github.com\/Azure\/azure-workload-identity\" target=\"_blank\" rel=\"noreferrer noopener\">Azure AD workload identity for Kubernetes<\/a>. It leverages the public preview capability of Azure AD workload identity federation. With this project, developers can use native Kubernetes concepts of service accounts and federation to access Azure AD protected resources, such as Azure and Microsoft Graph, without needing secrets.<strong><\/strong><\/p>\n\n\n\n<p>The existing Azure AD Pod Identity project addresses this need. However, the Azure AD workload identity approach is simpler to use and deploy, and overcomes several limitations in&nbsp;<a href=\"https:\/\/github.com\/Azure\/aad-pod-identity\" target=\"_blank\" rel=\"noreferrer noopener\">Azure AD Pod Identity<\/a>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Removes the scale and performance issues that existed for identity assignment.<\/li><li>Supports Kubernetes clusters hosted in any cloud.<\/li><li>Supports both Linux and Windows workloads.<\/li><li>Removes the need for Custom Resource Definitions and pods that intercept <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/virtual-machines\/linux\/instance-metadata-service?tabs=linux\" target=\"_blank\" rel=\"noreferrer noopener\">IMDS (Instance Metadata Service)<\/a> traffic.<\/li><li>Avoids the complication and error-prone installation steps such as cluster role assignment.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"how-does-this-work\">How does this work?<\/h2>\n\n\n\n<p>As shown in the following graphic, the Kubernetes cluster becomes a token issuer, issuing tokens to Kubernetes Service Accounts. These tokens can be configured to be trusted on Azure AD applications. They can then be exchanged for an Azure AD access token using the Azure Identity SDKs or the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/active-directory\/develop\/msal-overview\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Authentication Library (MSAL)<\/a>.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-1024x426.webp\" alt=\"UML workflow diagram of Workload Identity token process.\" class=\"wp-image-90090 webp-format\" srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-1024x426.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-300x125.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-768x319.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-800x333.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-400x166.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-450x187.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-650x270.webp 650w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2.webp 1123w\" data-orig-src=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-1024x426.png\" data-orig-srcset=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-1024x426.png 1024w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-300x125.png 300w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-768x319.png 768w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-800x333.png 800w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-400x166.png 400w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-450x187.png 450w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2-650x270.png 650w, https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2022\/01\/Img-2.png 1123w\"><\/figure>\n\n\n\n<p>To learn more, see the documentation in the <a href=\"https:\/\/azure.github.io\/azure-workload-identity\" target=\"_blank\" rel=\"noreferrer noopener\">Azure Workload Identity<\/a> open-source project. See also the <a href=\"https:\/\/docs.microsoft.com\/azure\/active-directory\/develop\/workload-identity-federation\" target=\"_blank\" rel=\"noreferrer noopener\">Azure AD documentation for workload identity federation<\/a> for an overview.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"what-is-next\">What is next?<\/h2>\n\n\n\n<p>Azure AD workload identity federation for Kubernetes is currently supported only on Azure AD applications. We intend to extend the same model for Azure managed identities.<\/p>\n\n\n\n<p>In the coming months, we plan to replace Azure AD Pod Identity with Azure Workload Identity. Our goal is to equip users who are already using Azure AD Pod Identity to move to Azure Workload Identity with minimal changes.<\/p>\n\n\n\n<p>We appreciate all input from the community. Please share any feedback or questions via GitHub <a href=\"https:\/\/github.com\/Azure\/azure-workload-identity\/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc\" target=\"_blank\" rel=\"noreferrer noopener\">issues<\/a> or <a href=\"https:\/\/github.com\/Azure\/azure-workload-identity\/discussions\" target=\"_blank\" rel=\"noreferrer noopener\">discussions<\/a>. Your support will help shape the project to meet community needs for ensuring secure access to Azure AD protected resources from Kubernetes workloads.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today, we are excited to announce an open-source project called&nbsp;Azure AD workload identity for Kubernetes. It leverages the public preview capability of Azure AD workload identity federation.<\/p>\n","protected":false},"author":5562,"featured_media":95475,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"msxcm_post_with_no_image":false,"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","footnotes":""},"post_tag":[158,2272],"content-type":[346,361],"topic":[2240],"programming-languages":[],"coauthors":[1884],"class_list":["post-90078","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-kubernetes","tag-microsoft","content-type-news","content-type-project-updates","topic-application-development","review-flag-publi-1593580761-124"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog<\/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:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog\" \/>\n<meta property=\"og:description\" content=\"Today, we are excited to announce an open-source project called&nbsp;Azure AD workload identity for Kubernetes. It leverages the public preview capability of Azure AD workload identity federation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Open Source Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-18T18:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-19T17:49:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1170\" \/>\n\t<meta property=\"og:image:height\" content=\"640\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anish Ramasekar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:site\" content=\"@OpenAtMicrosoft\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anish Ramasekar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 min read\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\"},\"author\":[{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/author\/anish-ramasekar\/\",\"@type\":\"Person\",\"@name\":\"Anish Ramasekar\"}],\"headline\":\"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes\",\"datePublished\":\"2022-01-18T18:00:00+00:00\",\"dateModified\":\"2024-06-19T17:49:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\"},\"wordCount\":345,\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp\",\"keywords\":[\"Kubernetes\",\"Microsoft\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\",\"name\":\"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog\",\"isPartOf\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp\",\"datePublished\":\"2022-01-18T18:00:00+00:00\",\"dateModified\":\"2024-06-19T17:49:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp\",\"width\":1170,\"height\":640},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/opensource.microsoft.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#website\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"name\":\"Microsoft Open Source Blog\",\"description\":\"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability\",\"publisher\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#organization\",\"name\":\"Microsoft Open Source Blog\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"contentUrl\":\"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png\",\"width\":259,\"height\":194,\"caption\":\"Microsoft Open Source Blog\"},\"image\":{\"@id\":\"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/OpenAtMicrosoft\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog","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:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/","og_locale":"en_US","og_type":"article","og_title":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog","og_description":"Today, we are excited to announce an open-source project called&nbsp;Azure AD workload identity for Kubernetes. It leverages the public preview capability of Azure AD workload identity federation.","og_url":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/","og_site_name":"Microsoft Open Source Blog","article_published_time":"2022-01-18T18:00:00+00:00","article_modified_time":"2024-06-19T17:49:43+00:00","og_image":[{"width":1170,"height":640,"url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.png","type":"image\/png"}],"author":"Anish Ramasekar","twitter_card":"summary_large_image","twitter_creator":"@OpenAtMicrosoft","twitter_site":"@OpenAtMicrosoft","twitter_misc":{"Written by":"Anish Ramasekar","Est. reading time":"1 min read"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#article","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/"},"author":[{"@id":"https:\/\/opensource.microsoft.com\/blog\/author\/anish-ramasekar\/","@type":"Person","@name":"Anish Ramasekar"}],"headline":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes","datePublished":"2022-01-18T18:00:00+00:00","dateModified":"2024-06-19T17:49:43+00:00","mainEntityOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/"},"wordCount":345,"publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp","keywords":["Kubernetes","Microsoft"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/","url":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/","name":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes | Microsoft Open Source Blog","isPartOf":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage"},"thumbnailUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp","datePublished":"2022-01-18T18:00:00+00:00","dateModified":"2024-06-19T17:49:43+00:00","breadcrumb":{"@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#primaryimage","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2024\/06\/CLO24-Azure-Retail-025.webp","width":1170,"height":640},{"@type":"BreadcrumbList","@id":"https:\/\/opensource.microsoft.com\/blog\/2022\/01\/18\/announcing-azure-active-directory-azure-ad-workload-identity-for-kubernetes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/opensource.microsoft.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Announcing Azure Active Directory (Azure AD) workload identity for Kubernetes"}]},{"@type":"WebSite","@id":"https:\/\/opensource.microsoft.com\/blog\/#website","url":"https:\/\/opensource.microsoft.com\/blog\/","name":"Microsoft Open Source Blog","description":"Open dialogue about openness at Microsoft \u2013 open source, standards, interoperability","publisher":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/opensource.microsoft.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/opensource.microsoft.com\/blog\/#organization","name":"Microsoft Open Source Blog","url":"https:\/\/opensource.microsoft.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","contentUrl":"https:\/\/opensource.microsoft.com\/blog\/wp-content\/uploads\/2019\/08\/Microsoft-Logo.png","width":259,"height":194,"caption":"Microsoft Open Source Blog"},"image":{"@id":"https:\/\/opensource.microsoft.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/OpenAtMicrosoft"]}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Open Source Blog","distributor_original_site_url":"https:\/\/opensource.microsoft.com\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/90078","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/users\/5562"}],"replies":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/comments?post=90078"}],"version-history":[{"count":1,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/90078\/revisions"}],"predecessor-version":[{"id":95706,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/posts\/90078\/revisions\/95706"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media\/95475"}],"wp:attachment":[{"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/media?parent=90078"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/post_tag?post=90078"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/content-type?post=90078"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/topic?post=90078"},{"taxonomy":"programming-languages","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/programming-languages?post=90078"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/opensource.microsoft.com\/blog\/wp-json\/wp\/v2\/coauthors?post=90078"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}