azureoutlookmicrosoft-graph-apioffice-jsaccess-token

Access Token not working of tenant of office 365


I am working in add-in that's why i am using office dialog to login

var url = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=myclientid&response_type=token&redirect_uri=https://localhost:3000/assets/Redirect.html&scope=user.read%20mail.readwrite%20mail.send&response_mode=fragment&state=12345&nonce=678910";
Office.context.ui.displayDialogAsync(url, {  height: 60, width: 40 }, function (asyncResult) {
Logindialog = asyncResult.value;
Logindialog.addEventHandler(Office.EventType.DialogMessageReceived, function (arg) {
  token = arg.message;
  });
});

I am getting token After successfully login using this in my redirect.html file

 var address_Link = window.location.href;
 console.log(address_Link)
 var address_arr = address_Link.split("=");
 var address_Token = address_arr[1];
 var Id_Token = address_Token.split("&");
 var access_token = Id_Token[0];
 console.log(Id_Token);
 Office.onReady(function (appInfo) {    
  Office.context.ui.messageParent(JSON.stringify(access_token));
 })

my simple Microsoft Account token looks like this

EwCoA8l6BAAUs5%2bHQn0N%2bh2FxWzLS31ZgQVuHsYAASzDAo%2bzOHW8bimiwipl3VtTsk4JI1MUN2Osop4ryl1wGSRhZypgzfO/ff1zkOGAzStT4BsAzkSOV/0LiCtQ2MTB2RsR1%2buhflh3Pq2CwOawwTS7nj/%2bKnDFvH3N9h6N8uwruiEH4OZekE0gfk4fOfY2Go5IgrWUfbs%2bjcbNXKGv/Ekc4PeSXNaII5mCyBjLVuvxvLHhrZzAL7tu8AxCFyd5XxAWP6pXjJRZk7ow0ChUQeNNPNP5/rWSTLBbMu3AORmKIi%2bvfdvVcxhmmQmpAgU4glN6BIR7gKj6pkvhKQVydGIvTPvFlLOvWJItF5um8ignPEgP43gMqmPsH07xFJcDZgAACBbA8fXreaJdeAK%2bseTrYHH7KxKhAhPIN2sZUfAZKPHjuoPqhQopFvQFxWUljFOlJzHWn00pHbW3pVm95S58HngtIYDzNg9uKqIm9O3VJdrwctgnsDA5cMNPFzyOb3nYh58BSdefe3c42D1n7ovKtUjKtQR%2b5zJrocarrhwXhYLvXbAg2kMliEc1zqiCbyH6ila5s63mWaoufy%2bFnPkW9nyQ2qaTfqWgFa0tHlaNgWf9a2j5zlLUFTvaw9zLRtilFLWoOv1FMfEzw/A7WaebYW4DHCOeMJIkd2NjHGtqg3kXj0cXf1Jt2xQnoIG8vR5w%2bzqI/tfqMAMkJSOSGCLRdjNjUadF8NNYFbzoLX8TPeYarwHWJRbXBUtbBhOpRJE/DTwaJh800AcUBM6y5v1bFnRBWtdAYtrlefL0lQT2FodrcpcVH9AAao2ks2EQa0Xla8D39dYDcGqQ1mg3VCzjz7qNlhnIP6D30oL%2bzM8oTjjZahKE62ISPcpWEVTPQ3s7CddKYR6TJ86xmLGqTedK1u5xypHopSXTRzCbLvu6pGaKZy%2bacDVwT8YzABbZfGYdZnmh6CDfoYubYI924O0r22XC1rtrdGv9ghCDkZEcGIIiJelTiTRpgP/QDHlXW2Qci4gwRUK3cIYCTQds9Z2PA6sn3iDpa/Sf8vyaQZ1m99Rek8mVifBkGxOr2O7t5Tzq69sBOMylz7y7SvWlHEgqpC%2bSQ3/eQX6wcOEbrdldqFA5yu%2bqm0bANF5RIc1L7AZo/PagLt1DmAILJKIxomQ5pTelqeXpAKUM4qN%2b4ym4TKhINqNAnks4rd4/1aLeVG9o%2bZG98f6ePdGKf4MC9%2boSKewl2qgC

when I login with tenant of office 365 I got token like this

eyJ0eXAiOiJKV1QiLCJub25jZSI6IkJneVFGOVVSTm5RSlh4end2MTlsTGV6QWFqUG9maFBJUEdSUmtXOTVTSnMiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyIsImtpZCI6ImtXYmthYTZxczh3c1RuQndpaU5ZT2hIYm5BdyJ9.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTAwMDAtYzAwMC0wMDAwMDAwMDAwMDAiLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8zYTc0YmRlZi05ZWQ1LTQ0NGMtYjZjNC1kYmFhYmMwNmMwNGYvIiwiaWF0IjoxNzA4MTc5NDA1LCJuYmYiOjE3MDgxNzk0MDUsImV4cCI6MTcwODE4NDkwNCwiYWNjdCI6MCwiYWNyIjoiMSIsImFjcnMiOlsidXJuOnVzZXI6cmVnaXN0ZXJzZWN1cml0eWluZm8iXSwiYWlvIjoiQVRRQXkvOFZBQUFBVm53ZDkvM0tZK3VNU2I4eWlHTVlyZXd2c2xCY2diNEI3NFkxVkV3d290ZTM5Wnd4ZUhMaVB2aUVVcDNodnBnRSIsImFtciI6WyJwd2QiXSwiYXBwX2Rpc3BsYXluYW1lIjoiT3V0bG9vayBBZGRpbiIsImFwcGlkIjoiMTc1Zjc2ZDAtY2YxNS00MjBlLTg2NmUtYjBjOWZjNmJmODFiIiwiYXBwaWRhY3IiOiIwIiwiaGFzd2lkcyI6InRydWUiLCJpZHR5cCI6InVzZXIiLCJpcGFkZHIiOiI3NC4yMzQuNTAuMzMiLCJuYW1lIjoiZnVuZGF0aW8iLCJvaWQiOiJiMjU2NDRhYy0xNjAyLTQ2NzUtOTMwZC0xNDJmZDhkYzc3MzAiLCJwbGF0ZiI6IjMiLCJwdWlkIjoiMTAwMzIwMDE2NzI4QjIzQSIsInJoIjoiMC5BWUVBNzcxME90V2VURVMyeE51cXZBYkFUd01BQUFBQUFBQUF3QUFBQUFBQUFBQ0JBT0EuIiwic2NwIjoiZW1haWwgRmlsZXMuUmVhZCBGaWxlcy5SZWFkLkFsbCBGaWxlcy5SZWFkV3JpdGUgRmlsZXMuUmVhZFdyaXRlLkFsbCBNYWlsLlJlYWQgTWFpbC5SZWFkQmFzaWMgTWFpbC5SZWFkV3JpdGUgTWFpbC5TZW5kIG9wZW5pZCBwcm9maWxlIFVzZXIuUmVhZCIsInN1YiI6IkFVU0wzSl9OQ0g0OTZEcDg0cUtydUE3Ym93Vkw0YjZqYUFnYUNNbGh6d0kiLCJ0ZW5hbnRfcmVnaW9uX3Njb3BlIjoiRVUiLCJ0aWQiOiIzYTc0YmRlZi05ZWQ1LTQ0NGMtYjZjNC1kYmFhYmMwNmMwNGYiLCJ1bmlxdWVfbmFtZSI6ImZ1bmRhdGlvQGZ1bmRhdGlvLm9yZyIsInVwbiI6ImZ1bmRhdGlvQGZ1bmRhdGlvLm9yZyIsInV0aSI6Imd1YjRCNERVNTBhY1BOeXVsRk1HQVEiLCJ2ZXIiOiIxLjAiLCJ4bXNfc3QiOnsic3ViIjoiVFRJcVNfanhaNXAyRnpROVJPaG5tZWxLVjNrRkFPdmQ5Z2lEUUZySU15QSJ9LCJ4bXNfdGNkdCI6MTYxODQ4MjgyNCwieG1zX3RkYnIiOiJFVSJ9.LS0n3DWrv-YHufr9oA4PW97_nwQ_oP6Z4e-jdWvQrU97nznZQs9w-qfeRvtijUXvmVEGo8fyUgCCZ1UNLB3pbOIWZYIOPhXmsGiWs5sjdn9-vKT-394jBUqCqkaLXa2aldBWGUmklDJ81TYzFV4C7BEjQang162KjHqetXg118OEmDZaayd1VyNWIc2xQ6RK-gmxvPOqv8CPIAOj4fQ8HcQxpUtpSONr98mVwX4potYpJVV2Vn6-gaLF86DYNrxw1rBt3qOMhCInHMwxgQHsLK_XO2tnSoJ-LZzk5NusOOpnM4GVrcsKgA9jUK3NwBrJYpda2RAkcHfcM5hkOYxc1A


Solution

  • As a workaround, make use of Microsoft domain user like xxx@onmicrosoft.com.

    Created a Microsoft Entra ID application and granted API permissions:

    enter image description here

    Now I generated auth-code using below endpoint:

    https://login.microsoftonline.com/TenantID/oauth2/v2.0/authorize?
    &client_id=ClientID
    &response_type=code
    &redirect_uri=https://jwt.ms
    &response_mode=query
    &scope=https://graph.microsoft.com/.default
    &state=12345
    

    enter image description here

    Generated access token via Postman by using below parameters:

    https://login.microsoftonline.com/TenantID/oauth2/v2.0/token
    
    client_id:ClientID  
    scope:https://graph.microsoft.com/.default
    grant_type:authorization_code  
    code:code  
    redirect_uri:https://jwt.ms
    client_secret:Secret
    

    enter image description here

    Decoded the access token:

    enter image description here

    Now by using the above access token, I am able to send mail successfully:

    POST https://graph.microsoft.com/v1.0/me/sendMail
    Content-type: application/json
    
    {
      "message": {
        "subject": "Meet for lunch?",
        "body": {
          "contentType": "Text",
          "content": "The new cafeteria is open."
        },
        "toRecipients": [
          {
            "emailAddress": {
              "address": "xxx.onmicrosoft.com"
            }
          }
        ],
        "ccRecipients": [
          {
            "emailAddress": {
              "address": "xxx.onmicrosoft.com"
            }
          }
        ]
      },
      "saveToSentItems": "false"
    }
    
    

    enter image description here

    Reference:

    user: sendMail - Microsoft Graph v1.0 | Microsoft