{"id":1807,"date":"2024-02-23T10:41:54","date_gmt":"2024-02-23T02:41:54","guid":{"rendered":"https:\/\/www.ruianding.com\/blog\/?p=1807"},"modified":"2024-02-29T14:30:30","modified_gmt":"2024-02-29T06:30:30","slug":"testing-the-adfs-oauth-flow-auth-code-grant","status":"publish","type":"post","link":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/","title":{"rendered":"Testing the ADFS OAuth Flow &#8211; Auth Code Grant"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">Overview<\/h3>\n\n\n\n<p>The protocol diagram is showed as below which is very similar to Microsoft identity platform Auth Code Grant flow which involved both authorize and token endpoints:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"616\" height=\"362\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\" alt=\"\" class=\"wp-image-1809\"\/><\/figure>\n\n\n\n<p>Due to the similarity, we can simply clone the Postman sample in the Microsoft identity platform OAuth flow documentation. And we just need replace some parameters to simulate the OAuth flow in ADFS.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-cyan-bluish-gray-color has-alpha-channel-opacity has-cyan-bluish-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Test in Postman<\/h3>\n\n\n\n<p>Firstly, go to this link <a rel=\"noreferrer noopener\" href=\"https:\/\/learn.microsoft.com\/en-us\/entra\/identity-platform\/v2-oauth2-auth-code-flow\" target=\"_blank\">Microsoft identity platform and OAuth 2.0 authorization code flow &#8211; Microsoft identity platform | Microsoft Learn<\/a>. Find the header <strong>Protocol details<\/strong>, later find the <strong>Tip<\/strong> and click <strong>Run in Postman<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-11.png\" alt=\"\" class=\"wp-image-1812\" width=\"730\" height=\"274\"\/><\/figure>\n\n\n\n<p>We can either choose clone and run the flow on Postman web or client app. In this demo, I am testing under the Postman native client app. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-12.png\" alt=\"\" class=\"wp-image-1815\" width=\"269\" height=\"177\"\/><\/figure>\n\n\n\n<p>We will see a Collection named &#8220;<strong>Azure AD v2.0 Protocols<\/strong>&#8221; will be created. Expand OAuth 2.0 Authorization Code Flow<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1249\" height=\"470\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-13.png\" alt=\"\" class=\"wp-image-1819\"\/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-cyan-bluish-gray-color has-alpha-channel-opacity has-cyan-bluish-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Create the ADFS Application Group<\/h3>\n\n\n\n<p>Similar to the OAuth app in Entra ID, we also need to create an app registration entry in our ADFS. Later, we will need to fill out the parameters to obtain the OAuth code.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-14.png\" alt=\"\" class=\"wp-image-1821\" width=\"531\" height=\"431\"\/><\/figure>\n\n\n\n<p>We will use <a href=\"https:\/\/jwt.ms\/\">https:\/\/jwt.ms\/<\/a> as the redirect URI:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-17.png\" alt=\"\" class=\"wp-image-1829\" width=\"531\" height=\"432\"\/><\/figure>\n\n\n\n<p>For Access Control Policy, we will choose permit all in this time. Later finish the Add Application Group Wizard<\/p>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-cyan-bluish-gray-color has-alpha-channel-opacity has-cyan-bluish-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Retrieve the Authorization code<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1233\" height=\"446\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-18.png\" alt=\"\" class=\"wp-image-1830\"\/><\/figure>\n\n\n\n<p>Let&#8217;s click the GET Authorize Request, and in this time we will adding some parameters in our HTTP request and sending the request to ADFS authorize endpoint. So make sure the URI has been adjusted as below:<br><code>https:\/\/&lt;yourfedservicedomainname>\/adfs\/oauth2\/authorize<\/code><\/p>\n\n\n\n<p>Additionally, please insert the highlighted parameters which can be retrieved from the previous Application Group we&#8217;ve created.<\/p>\n\n\n\n<p>Copy the URI and start a new browser windows, throw the URI in the address bar:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1826\" height=\"76\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-19.png\" alt=\"\" class=\"wp-image-1834\"\/><\/figure>\n\n\n\n<p>Later, we will be directed to the ADFS login page, and after we finish the ADFS login, we will see the authorization code:<\/p>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1370\" height=\"115\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-20.png\" alt=\"\" class=\"wp-image-1835\"\/><\/figure>\n\n\n\n<p>Save the Code and we will use it to get the access token in the next step.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-text-color has-cyan-bluish-gray-color has-alpha-channel-opacity has-cyan-bluish-gray-background-color has-background is-style-wide\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Redeem the Authorization code<\/h3>\n\n\n\n<p>Similar to previous step, but as we are using the POST method in this time, we will modify the parameters in the request body:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1570\" height=\"403\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-21.png\" alt=\"\" class=\"wp-image-1836\"\/><\/figure>\n\n\n\n<p>After you click the Send button, we will see the access token returned by our ADFS IdP:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1264\" height=\"292\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-22.png\" alt=\"\" class=\"wp-image-1837\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-23.png\" alt=\"\" class=\"wp-image-1839\" width=\"494\" height=\"520\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Overview The protocol diagram is showed as below which is very similar to Microsoft identity platform Auth Code Grant flow which involved both authorize and token endpoints: Due to the similarity, we can simply clone the Postman sample in the Microsoft identity platform OAuth flow documentation. And we just need replace some parameters to simulate [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[42],"tags":[5,54],"class_list":["post-1807","post","type-post","status-publish","format-standard","hentry","category-adfs","tag-adfs","tag-oauth2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT<\/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.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT\" \/>\n<meta property=\"og:description\" content=\"Overview The protocol diagram is showed as below which is very similar to Microsoft identity platform Auth Code Grant flow which involved both authorize and token endpoints: Due to the similarity, we can simply clone the Postman sample in the Microsoft identity platform OAuth flow documentation. And we just need replace some parameters to simulate [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\" \/>\n<meta property=\"og:site_name\" content=\"\u6781\u7b80IT\uff5cSimpleIT\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-23T02:41:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-29T06:30:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"616\" \/>\n\t<meta property=\"og:image:height\" content=\"362\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ruian Ding\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ruian Ding\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\"},\"author\":{\"name\":\"Ruian Ding\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b\"},\"headline\":\"Testing the ADFS OAuth Flow &#8211; Auth Code Grant\",\"datePublished\":\"2024-02-23T02:41:54+00:00\",\"dateModified\":\"2024-02-29T06:30:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\"},\"wordCount\":379,\"publisher\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b\"},\"image\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\",\"keywords\":[\"ADFS\",\"OAUTH2\"],\"articleSection\":[\"ADFS\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\",\"url\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\",\"name\":\"Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT\",\"isPartOf\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\",\"datePublished\":\"2024-02-23T02:41:54+00:00\",\"dateModified\":\"2024-02-29T06:30:30+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage\",\"url\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\",\"contentUrl\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png\",\"width\":616,\"height\":362},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.ruianding.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Testing the ADFS OAuth Flow &#8211; Auth Code Grant\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/#website\",\"url\":\"https:\/\/www.ruianding.com\/blog\/\",\"name\":\"Ruian's Tech Troubleshooting Toolbox\",\"description\":\"Debug the World.\",\"publisher\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b\"},\"alternateName\":\"\u4e01\u777f\u5b89\u7684\u6280\u672f\u5206\u4eab\u535a\u5ba2\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.ruianding.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b\",\"name\":\"Ruian Ding\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2023\/05\/logo.png\",\"contentUrl\":\"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2023\/05\/logo.png\",\"width\":284,\"height\":284,\"caption\":\"Ruian Ding\"},\"logo\":{\"@id\":\"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"I am currently a Support Specialist at NIO, focusing on cloud-related issues for NIO Power. Previously, at Microsoft Entra ID, I specialized in identity and access management (IAM), including device registration, Windows Hello for Business (WHfB), multi-factor authentication (MFA), and single sign-on (SSO). In addition to my core expertise, I have a strong foundation in Active Directory, Servers, Cloud Computing, Network Administration, and Front-end Web Development. This diverse technical skill set enables me to effectively handle a wide range of challenges in a fast-paced IT environment.\",\"sameAs\":[\"https:\/\/www.ruianding.com\"],\"url\":\"https:\/\/www.ruianding.com\/blog\/author\/ruiand\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT","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.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/","og_locale":"en_US","og_type":"article","og_title":"Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT","og_description":"Overview The protocol diagram is showed as below which is very similar to Microsoft identity platform Auth Code Grant flow which involved both authorize and token endpoints: Due to the similarity, we can simply clone the Postman sample in the Microsoft identity platform OAuth flow documentation. And we just need replace some parameters to simulate [&hellip;]","og_url":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/","og_site_name":"\u6781\u7b80IT\uff5cSimpleIT","article_published_time":"2024-02-23T02:41:54+00:00","article_modified_time":"2024-02-29T06:30:30+00:00","og_image":[{"width":616,"height":362,"url":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png","type":"image\/png"}],"author":"Ruian Ding","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ruian Ding","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#article","isPartOf":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/"},"author":{"name":"Ruian Ding","@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b"},"headline":"Testing the ADFS OAuth Flow &#8211; Auth Code Grant","datePublished":"2024-02-23T02:41:54+00:00","dateModified":"2024-02-29T06:30:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/"},"wordCount":379,"publisher":{"@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b"},"image":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png","keywords":["ADFS","OAUTH2"],"articleSection":["ADFS"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/","url":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/","name":"Testing the ADFS OAuth Flow - Auth Code Grant - \u6781\u7b80IT\uff5cSimpleIT","isPartOf":{"@id":"https:\/\/www.ruianding.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage"},"image":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png","datePublished":"2024-02-23T02:41:54+00:00","dateModified":"2024-02-29T06:30:30+00:00","breadcrumb":{"@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#primaryimage","url":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png","contentUrl":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2024\/02\/image-8.png","width":616,"height":362},{"@type":"BreadcrumbList","@id":"https:\/\/www.ruianding.com\/blog\/testing-the-adfs-oauth-flow-auth-code-grant\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ruianding.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing the ADFS OAuth Flow &#8211; Auth Code Grant"}]},{"@type":"WebSite","@id":"https:\/\/www.ruianding.com\/blog\/#website","url":"https:\/\/www.ruianding.com\/blog\/","name":"Ruian's Tech Troubleshooting Toolbox","description":"Debug the World.","publisher":{"@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b"},"alternateName":"\u4e01\u777f\u5b89\u7684\u6280\u672f\u5206\u4eab\u535a\u5ba2","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ruianding.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/440d88575b7dc819a4cefc8c4199db3b","name":"Ruian Ding","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2023\/05\/logo.png","contentUrl":"https:\/\/www.ruianding.com\/blog\/wp-content\/uploads\/2023\/05\/logo.png","width":284,"height":284,"caption":"Ruian Ding"},"logo":{"@id":"https:\/\/www.ruianding.com\/blog\/#\/schema\/person\/image\/"},"description":"I am currently a Support Specialist at NIO, focusing on cloud-related issues for NIO Power. Previously, at Microsoft Entra ID, I specialized in identity and access management (IAM), including device registration, Windows Hello for Business (WHfB), multi-factor authentication (MFA), and single sign-on (SSO). In addition to my core expertise, I have a strong foundation in Active Directory, Servers, Cloud Computing, Network Administration, and Front-end Web Development. This diverse technical skill set enables me to effectively handle a wide range of challenges in a fast-paced IT environment.","sameAs":["https:\/\/www.ruianding.com"],"url":"https:\/\/www.ruianding.com\/blog\/author\/ruiand\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/posts\/1807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/comments?post=1807"}],"version-history":[{"count":14,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions"}],"predecessor-version":[{"id":1841,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/posts\/1807\/revisions\/1841"}],"wp:attachment":[{"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/media?parent=1807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/categories?post=1807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ruianding.com\/blog\/wp-json\/wp\/v2\/tags?post=1807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}