{"id":30,"date":"2022-09-25T20:17:55","date_gmt":"2022-09-25T20:17:55","guid":{"rendered":"http:\/\/nkascocom.nk\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/"},"modified":"2024-03-04T16:44:36","modified_gmt":"2024-03-04T21:44:36","slug":"2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3","status":"publish","type":"post","link":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/","title":{"rendered":"How to Authenticate to the Microsoft Graph API using PowerShell &#8211; Part 3 &#8211; Delegated Permissions"},"content":{"rendered":"\n<p>Now that you know you will have to use Delegated permissions the next logical step would be to identify what is the required setup based on HOW you will be authenticating. For delegated permission scenarios see the table below to help guide you:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Authentication Experience<\/th><th>Method Used<\/th><th>Azure AD Requirements<\/th><\/tr><\/thead><tbody><tr><td>Interactive<\/td><td>Client Credentials<\/td><td>If you&#8217;re using the Microsoft Graph PowerShell Enterprise Application you just need to connect with Connect-MgGraph and specify your required scope and ensure your target user will have access to the Microsoft Graph PowerShell Enterprise Application within Azure AD and any applicable Azure Roles.<br><br><b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ex: Connect-MgGraph -Scopes &#8220;Device.Read.All&#8221;<\/b><br><i>Note: You may need to be a Global Administrator to consent for certain permission scopes.<\/i>\n<p>If you&#8217;re using an Azure AD App Registration instead, head to the API Permissions blade of your Azure AD App Registration and select:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Add Permission -&gt; Microsoft Graph -&gt; Delegated Permissions -&gt; Device.Read.All<\/p>\n<p>&nbsp;<\/p>\n<\/td><\/tr><tr><td>Non-Interactive<\/td><td>Integrated Windows Authentication<\/td><td>Identical to Interactive \/ Client Credentials Azure AD setup, with 1 extra step:\n<p>Under the <b>Authentication<\/b> blade of your Azure AD App Registration, under Advanced Settings set <b>Allow public client flows<\/b> to <b>Yes.<\/b><\/p>\n<\/td><\/tr><tr><td>Non-Interactive<\/td><td>Client Credentials<\/td><td>Identical to Interactive \/ Client Credentials Azure AD setup, with 1 extra step:\n<p>Under the <b>Authentication<\/b> blade of your Azure AD App Registration, under Advanced Settings set <b>Allow public client flows<\/b> to <b>Yes.<\/b><\/p>\n<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\">Read on to see code examples for each authentication experience\/method used\u2026<\/p>\n<h2 style=\"white-space: pre-wrap;\"><strong>Interactive \/ Client Credentials &#8211; How To:<\/strong><\/h2>\n<p class=\"\" style=\"white-space: pre-wrap;\">Using delegated permissions with client credentials interactively is the most simple from a code standpoint. Simply run the following command which will automatically pop up a web page where you can authenticate.<\/p>\n<p class=\"\" style=\"white-space: pre-wrap;\">Option 1:<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">#Microsoft Graph PowerShell Enterprise Application Method\nConnect-MgGraph -Scopes \"Device.Read.All\"<\/pre>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\">Option 2:<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">#Microsoft Graph PowerShell Enterprise Application Method 2\n#This will provide you with a unique code that you can use to login from a different device if necessary\n#Note: Conditional Access may prevent this in some cases\nConnect-MgGraph -Scopes \"Device.Read.All\" -UseDeviceAuthentication<\/pre>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\">Option 3:<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">#Azure AD App Registration Method\n$ClientID = \"(your client id here)\"\n$TenantID = \"(your tenant id here)\"\nConnect-MgGraph -ClientId $ClientID -TenantId $TenantID -Scopes \"Device.Read.All\"<\/pre>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\"><em>Note: Only the Microsoft Graph PowerShell module is required for this method.<\/em><\/p>\n<h2 style=\"white-space: pre-wrap;\">Non-Interactive \/ Integrated Windows Authentication &#8211; How To:<\/h2>\n<p class=\"\" style=\"white-space: pre-wrap;\">The Microsoft.Graph PowerShell Module doesn\u2019t provide a way to authenticate with Integrated Windows Authentication, however, the Microsoft Authentication Library does and this method is exposed through the MSAL.PS module. Therefore we can use that module first, then pass that retrieved access token into the Microsoft Graph PowerShell module.<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">#Specify Client and Tenant IDs\n$ClientID = \"(your client id here)\"\n$TenantID = \"(your tenant id here)\"\n\n#Fetch a token silently using IWA with MSAL.PS\n$AccessToken = Get-MsalToken -ClientId $ClientID -TenantId $TenantID -IntegratedWindowsAuth -Scopes \"Device.Read.All\"\n\n#Pass the token we just retrieved into the Microsoft.Graph module\nConnect-MgGraph -AccessToken $AccessToken.AccessToken<\/pre>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\"><em>Note: MSAL.PS and Microsoft Graph PowerShell are required for this method.<\/em><\/p>\n<h2 style=\"white-space: pre-wrap;\">Non-Interactive \/ Client Credentials &#8211; How To:<\/h2>\n<p class=\"\" style=\"white-space: pre-wrap;\">The Microsoft.Graph PowerShell Module doesn\u2019t provide a way to authenticate with Client Credentials, however, the Microsoft Authentication Library does and this method is exposed through the MSAL.PS module. Therefore we can use that module first, then pass that retrieved access token into the Microsoft Graph PowerShell module.<\/p>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\">#Specify Client and Tenant IDs\n$ClientID = \"(your client id here)\"\n$TenantID = \"(your tenant id here)\"\n\n#NOTE: There are many ways to obtain credentials:\n#Encrypted key\/pass files, PowerShell Secrets Management Module, Azure Key Vault, etc.\n#For simplicity, this guide will list them here (This is NOT a best practice)\n$Username = \"myusername\"\n$UserPassword = \"mypassword\"\n$SecureStringPassword = ConvertTo-SecureString $UserPassword -AsPlainText -Force\n$Cred = New-Object System.Management.Automation.PSCredential ($Username, $SecureStringPassword)\n\n#Fetch a token silently using Client Credentials with MSAL.PS\n$AccessToken = Get-MsalToken -ClientId $ClientID -TenantId $TenantID -UserCredential $Cred -Scopes \"Device.Read.All\"\n\n#Pass the token we just retrieved into the Microsoft.Graph module\nConnect-MgGraph -AccessToken $AccessToken.AccessToken<\/pre>\n\n\n\n<div class=\"sqs-html-content\">\n<p class=\"\" style=\"white-space: pre-wrap;\"><em>Note: MSAL.PS and Microsoft Graph PowerShell are required for this method.<\/em><\/p>\n<p class=\"\" style=\"white-space: pre-wrap;\">That\u2019s it! Once you\u2019ve authenticated you can use any of the available cmdlets within the Microsoft.Graph module provided you have access to it and the necessary permissions are in place.<\/p>\n<p class=\"\" style=\"white-space: pre-wrap;\">Once you\u2019ve retrieved everything you need, you can run the following command to disconnect from Graph:<\/p>\n<pre><code>Disconnect-MgGraph<\/code><\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Now that you know you will have to use Delegated permissions the next logical step would be to identify what is the required setup based on HOW you will be authenticating. For delegated permission scenarios see the table below to help guide you: Authentication Experience Method Used Azure AD Requirements Interactive Client Credentials If you&#8217;re [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":31,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-30","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - 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:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - Blog\" \/>\n<meta property=\"og:description\" content=\"Now that you know you will have to use Delegated permissions the next logical step would be to identify what is the required setup based on HOW you will be authenticating. For delegated permission scenarios see the table below to help guide you: Authentication Experience Method Used Azure AD Requirements Interactive Client Credentials If you&#8217;re [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Nathan Kasco - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-25T20:17:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-04T21:44:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"504\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nate Kasco\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Bu5yGiraffe\" \/>\n<meta name=\"twitter:site\" content=\"@Bu5yGiraffe\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nate Kasco\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\"},\"author\":{\"name\":\"Nate Kasco\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3\"},\"headline\":\"How to Authenticate to the Microsoft Graph API using PowerShell &#8211; Part 3 &#8211; Delegated Permissions\",\"datePublished\":\"2022-09-25T20:17:55+00:00\",\"dateModified\":\"2024-03-04T21:44:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\"},\"wordCount\":512,\"publisher\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3\"},\"image\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png\",\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\",\"url\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\",\"name\":\"How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png\",\"datePublished\":\"2022-09-25T20:17:55+00:00\",\"dateModified\":\"2024-03-04T21:44:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage\",\"url\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png\",\"contentUrl\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png\",\"width\":960,\"height\":504},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.nkasco.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Authenticate to the Microsoft Graph API using PowerShell &#8211; Part 3 &#8211; Delegated Permissions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#website\",\"url\":\"https:\/\/blog.nkasco.com\/wordpress\/\",\"name\":\"Nathan Kasco - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.nkasco.com\/wordpress\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3\",\"name\":\"Nate Kasco\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png\",\"url\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png\",\"contentUrl\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png\",\"width\":200,\"height\":200,\"caption\":\"Nate Kasco\"},\"logo\":{\"@id\":\"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png\"},\"sameAs\":[\"http:\/\/nkascocom.nk\/wordpress\",\"https:\/\/x.com\/Bu5yGiraffe\"],\"url\":\"https:\/\/blog.nkasco.com\/wordpress\/index.php\/author\/nate\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - 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:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/","og_locale":"en_US","og_type":"article","og_title":"How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - Blog","og_description":"Now that you know you will have to use Delegated permissions the next logical step would be to identify what is the required setup based on HOW you will be authenticating. For delegated permission scenarios see the table below to help guide you: Authentication Experience Method Used Azure AD Requirements Interactive Client Credentials If you&#8217;re [&hellip;]","og_url":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/","og_site_name":"Nathan Kasco - Blog","article_published_time":"2022-09-25T20:17:55+00:00","article_modified_time":"2024-03-04T21:44:36+00:00","og_image":[{"width":960,"height":504,"url":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png","type":"image\/png"}],"author":"Nate Kasco","twitter_card":"summary_large_image","twitter_creator":"@Bu5yGiraffe","twitter_site":"@Bu5yGiraffe","twitter_misc":{"Written by":"Nate Kasco","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#article","isPartOf":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/"},"author":{"name":"Nate Kasco","@id":"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3"},"headline":"How to Authenticate to the Microsoft Graph API using PowerShell &#8211; Part 3 &#8211; Delegated Permissions","datePublished":"2022-09-25T20:17:55+00:00","dateModified":"2024-03-04T21:44:36+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/"},"wordCount":512,"publisher":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3"},"image":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png","inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/","url":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/","name":"How to Authenticate to the Microsoft Graph API using PowerShell - Part 3 - Delegated Permissions - Nathan Kasco - Blog","isPartOf":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage"},"image":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png","datePublished":"2022-09-25T20:17:55+00:00","dateModified":"2024-03-04T21:44:36+00:00","breadcrumb":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#primaryimage","url":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png","contentUrl":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2022\/09\/graphapilogo-2.png","width":960,"height":504},{"@type":"BreadcrumbList","@id":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/2022\/09\/25\/2022-9-25-how-to-authenticate-to-the-microsoft-graph-api-using-powershell-delegated-permissions-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.nkasco.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"How to Authenticate to the Microsoft Graph API using PowerShell &#8211; Part 3 &#8211; Delegated Permissions"}]},{"@type":"WebSite","@id":"https:\/\/blog.nkasco.com\/wordpress\/#website","url":"https:\/\/blog.nkasco.com\/wordpress\/","name":"Nathan Kasco - Blog","description":"","publisher":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.nkasco.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/blog.nkasco.com\/wordpress\/#\/schema\/person\/1dfd694a2ed094a43a37dc6882c65eb3","name":"Nate Kasco","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png","url":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png","contentUrl":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png","width":200,"height":200,"caption":"Nate Kasco"},"logo":{"@id":"https:\/\/blog.nkasco.com\/wordpress\/wp-content\/uploads\/2024\/03\/cropped-logo.png"},"sameAs":["http:\/\/nkascocom.nk\/wordpress","https:\/\/x.com\/Bu5yGiraffe"],"url":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/author\/nate\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/30","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=30"}],"version-history":[{"count":3,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/30\/revisions"}],"predecessor-version":[{"id":108,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/30\/revisions\/108"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media\/31"}],"wp:attachment":[{"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=30"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=30"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nkasco.com\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=30"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}