Adding authentication to messaging extension and testing locally.

%3CLINGO-SUB%20id%3D%22lingo-sub-2021750%22%20slang%3D%22en-US%22%3EAdding%20authentication%20to%20messaging%20extension%20and%20testing%20locally.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2021750%22%20slang%3D%22en-US%22%3E%3CP%3EAdding%20authentication%20to%20messaging%20extension%20and%20testing%20locally.%20Unable%20to%20access%20openUrl%20hosted%20on%20ngrok%3C%2FP%3E%3CDIV%20class%3D%22question-body%20post-body%22%3E%3CP%3EFollowing%20the%20steps%20here%20to%20add%20authentication%20to%20a%20messaging%20extension%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoftteams%2Fplatform%2Fmessaging-extensions%2Fhow-to%2Fadd-authentication%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fdocs.microsoft.com%2Fen-us%2Fmicrosoftteams%2Fplatform%2Fmessaging-extensions%2Fhow-to%2Fadd-authentication%3C%2FA%3E%3C%2FP%3E%3CP%3ERunning%202%20static%20pages%3A%3CBR%20%2F%3Ehttps%3A%2F%2F%3CEM%3E.ngrok.io%2FstartAuth.html%3CBR%20%2F%3Ehttps%3A%2F%2F%3C%2FEM%3E.ngrok.io%2FendAuth%3C%2FP%3E%3CP%3ELoginCard%3A%3C%2FP%3E%3C%2FDIV%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-javascript%22%3E%3CCODE%3E%20return%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%22composeExtension%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%22type%22%3A%22auth%22%2C%0A%20%20%20%20%20%20%20%20%20%22suggestedActions%22%3A%7B%0A%20%20%20%20%20%20%20%20%20%20%20%22actions%22%3A%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22openUrl%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22value%22%3A%20%22https%3A%2F%2F*.ngrok.io%2FstartAuth.html%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22title%22%3A%20%22Sign%20in%20to%20this%20app%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EUsing%20card%20to%20access%20first%20static%20page%20to%20kick%20off%20authentication%20returns%20error%3A%3CBR%20%2F%3EAfter%20clicking%20login%20button%3A%3CBR%20%2F%3ESomething%20went%20wrong%2C%20please%20try%20again.%3C%2FP%3E%3CP%3EThe%20*.ngrok.io%20domain%20is%20already%20added%20to%20the%20validDomain%20list%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3Eusing%20nodejs%3C%2FP%3E%3CDIV%3E%3CSPAN%3E%3CSPAN%3Ebotbuilder%26nbsp%3B%3C%2FSPAN%3E%3C%2FSPAN%3E%3CDIV%3E%3CDIV%3E%3CSPAN%3ETeamsActivityHandler%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3EFlow%3A%26nbsp%3B%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3E%3CSPAN%3Eservice%20is%20running%20on%20same%20ngrok%20domain%3C%2FSPAN%3E%3C%2FDIV%3E%3CDIV%3EhandleTeamsMessagingExtensionFetchTask%20captures%20first%20event%20on%20message%3C%2FDIV%3E%3CDIV%3Echeck%20if%20users%20has%20session%3C%2FDIV%3E%3CDIV%3Eif%20no%20session%20return%20login%20card%20above%3C%2FDIV%3E%3CDIV%3E-%20stuck%20here%20since%20it%20wont%20open%20a%20new%20window%20loading%20the%20static%20start%20auth%20page%3C%2FDIV%3E%3CDIV%3E-%20works%20if%20I%20point%20directly%20to%20the%20auth.domain.com%2F_oauth%2Fauthorize%3Fcode%3D%3C%2FDIV%3E%3CDIV%3E-%20I%20can%20then%20redirect%20back%20to%20my%20close%20auth%20page%20but%20the%20notifySuccess%20doesn't%20seem%20to%20trigger%20closing%20the%20window%3C%2FDIV%3E%3CDIV%3E-%20read%20that%20this%20is%20because%20I%20did%20not%20initiate%20the%20authentication%20from%20the%20same%20domain%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%3C%2FDIV%3E%3C%2FDIV%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2021750%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EMicrosoft%20Teams%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2022193%22%20slang%3D%22en-US%22%3ERe%3A%20Adding%20authentication%20to%20messaging%20extension%20and%20testing%20locally.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2022193%22%20slang%3D%22en-US%22%3EAre%20you%20able%20to%20access%20the%20URL%20from%20browser%3F%20Could%20you%20please%20check%20the%20URL%20from%20the%20browser%3F%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2022622%22%20slang%3D%22en-US%22%3ERe%3A%20Adding%20authentication%20to%20messaging%20extension%20and%20testing%20locally.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2022622%22%20slang%3D%22en-US%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F749860%22%20target%3D%22_blank%22%3E%40Varaprasad-MSFT%3C%2FA%3E%2C%3C%2FP%3E%3CP%3EThanks%20for%20the%20quick%20response%2C%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EYes%20I%20can%20access%20both%20static%20pages%20from%20my%20chrome%20browser.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2032501%22%20slang%3D%22en-US%22%3ERe%3A%20Adding%20authentication%20to%20messaging%20extension%20and%20testing%20locally.%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2032501%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F914024%22%20target%3D%22_blank%22%3E%40MatthewCohen%3C%2FA%3E%26nbsp%3B-%20Could%20you%20please%20share%20your%20manifest%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2034723%22%20slang%3D%22en-US%22%3EApp%20Manifest%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2034723%22%20slang%3D%22en-US%22%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-json%22%3E%3CCODE%3E%7B%0A%20%20%22%24schema%22%3A%20%22https%3A%2F%2Fdeveloper.microsoft.com%2Fen-us%2Fjson-schemas%2Fteams%2Fv1.8%2FMicrosoftTeams.schema.json%22%2C%0A%20%20%22manifestVersion%22%3A%20%221.8%22%2C%0A%20%20%22version%22%3A%20%221.0.0%22%2C%0A%20%20%22showLoadingIndicator%22%3A%20true%2C%0A%20%20%22id%22%3A%20%22f9083eaf-0ae8-4331-9653-10080cc36b54%22%2C%0A%20%20%22packageName%22%3A%20%22%7B%7BPACKAGE_NAME%7D%7D%22%2C%0A%20%20%22developer%22%3A%20%7B%0A%20%20%20%20%22name%22%3A%20%22brightidea%22%2C%0A%20%20%20%20%22websiteUrl%22%3A%20%22https%3A%2F%2F%7B%7BHOSTNAME%7D%7D%22%2C%0A%20%20%20%20%22privacyUrl%22%3A%20%22https%3A%2F%2F%7B%7BHOSTNAME%7D%7D%2Fprivacy.html%22%2C%0A%20%20%20%20%22termsOfUseUrl%22%3A%20%22https%3A%2F%2F%7B%7BHOSTNAME%7D%7D%2Ftou.html%22%0A%20%20%7D%2C%0A%20%20%22icons%22%3A%20%7B%0A%20%20%20%20%22color%22%3A%20%22color.png%22%2C%0A%20%20%20%20%22outline%22%3A%20%22outline.png%22%0A%20%20%7D%2C%0A%20%20%22name%22%3A%20%7B%0A%20%20%20%20%22short%22%3A%20%22BI%20Test%201%22%2C%0A%20%20%20%20%22full%22%3A%20%22BI%20Test%201%22%0A%20%20%7D%2C%0A%20%20%22description%22%3A%20%7B%0A%20%20%20%20%22short%22%3A%20%22TODO%3A%20add%20short%20description%20here%22%2C%0A%20%20%20%20%22full%22%3A%20%22TODO%3A%20add%20full%20description%20here%22%0A%20%20%7D%2C%0A%20%20%22accentColor%22%3A%20%22%23D85028%22%2C%0A%20%20%22bots%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22botId%22%3A%20%22aa38ad8c-5635-49c2-80b6-e3b0d2b47333%22%2C%0A%20%20%20%20%20%20%22scopes%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%22team%22%2C%0A%20%20%20%20%20%20%20%20%22groupchat%22%2C%0A%20%20%20%20%20%20%20%20%22personal%22%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%22supportsFiles%22%3A%20false%2C%0A%20%20%20%20%20%20%22isNotificationOnly%22%3A%20false%0A%20%20%20%20%7D%0A%20%20%5D%2C%0A%20%20%22composeExtensions%22%3A%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22botId%22%3A%20%22aa38ad8c-5635-49c2-80b6-e3b0d2b47333%22%2C%0A%20%20%20%20%20%20%22canUpdateConfiguration%22%3A%20false%2C%0A%20%20%20%20%20%20%22commands%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%22createIdea%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22action%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22title%22%3A%20%22Create%20Idea%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22description%22%3A%20%22Create%20an%20idea%20from%20a%20message%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22initialRun%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%22fetchTask%22%3A%20true%2C%0A%20%20%20%20%20%20%20%20%20%20%22context%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22message%22%0A%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%22parameters%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22param%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22title%22%3A%20%22param%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22description%22%3A%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%5D%0A%20%20%20%20%7D%0A%20%20%5D%2C%0A%20%20%22permissions%22%3A%20%5B%0A%20%20%20%20%22identity%22%2C%0A%20%20%20%20%22messageTeamMembers%22%0A%20%20%5D%2C%0A%20%20%22validDomains%22%3A%20%5B%0A%20%20%20%20%221e5e8f0306b0.ngrok.io%22%0A%20%20%5D%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F914024%22%20target%3D%22_blank%22%3E%40MatthewCohen%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2038587%22%20slang%3D%22en-US%22%3ERe%3A%20App%20Manifest%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2038587%22%20slang%3D%22en-US%22%3EThanks%20for%20sharing%20the%20manifest%20%2C%20we%20are%20checking%20internally%20and%20get%20back%20to%20you%20on%20this.%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2056919%22%20slang%3D%22en-US%22%3ERe%3A%20App%20Manifest%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2056919%22%20slang%3D%22en-US%22%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F914024%22%20target%3D%22_blank%22%3E%40MatthewCohen%3C%2FA%3E%2C%20are%20you%20still%20facing%20this%20issue%3F%20Could%20you%20please%20check%20this%20sample%20for%20%5Bmessaging%20extension%20Authentication%5D(%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fmicrosoft%2FBotBuilder-Samples%2Ftree%2Fmain%2Fsamples%2Fcsharp_dotnetcore%2F52.teams-messaging-extensions-search-auth-config%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Ehttps%3A%2F%2Fgithub.com%2Fmicrosoft%2FBotBuilder-Samples%2Ftree%2Fmain%2Fsamples%2Fcsharp_dotnetcore%2F52.teams-messaging-extensions-search-auth-config%3C%2FA%3E)%3C%2FLINGO-BODY%3E
Occasional Contributor

Adding authentication to messaging extension and testing locally. Unable to access openUrl hosted on ngrok

 

Following the steps here to add authentication to a messaging extension:

https://docs.microsoft.com/en-us/microsoftteams/platform/messaging-extensions/how-to/add-authenticat...

 

Working with a messaging extension bot running 2 static pages:
https://.ngrok.io/startAuth.html
https://
.ngrok.io/endAuth

 

Returns the following card: (using teams app on mac)

 

 return
     {
       "composeExtension":{
         "type":"auth",
         "suggestedActions":{
           "actions":[
             {
               "type": "openUrl",
               "value": "https://*.ngrok.io/startAuth.html",
               "title": "Sign in to this app"
             }
           ]
         }
       }
     }

 

 

 

 

After clicking the login button on the card it displays the following error: Something went wrong, please try again.

 

The *.ngrok.io domain is already added to the validDomain list

 

Additional Notes:

using nodejs / botbuilder / TeamsActivityHandler

 
Flow: 
- service is running on same ngrok domain
- handleTeamsMessagingExtensionFetchTask captures first event on message action
- checks if users has session
- if no session return login card above
stuck here since it wont open a new window loading the static start auth page
 
works if I point directly to the auth.domain.com/_oauth/authorize?code=
 
I can then redirect back to my close auth page but the notifySuccess doesn't seem to trigger closing the window
- read that this is because I did not initiate the authentication from the same domain
 
 

 

6 Replies

Are you able to access the URL from browser? Could you please check the URL from the browser?

 

Thanks,

Varaprasad.

-------------------------------------------------------------------------------------------------

If the response is helpful, please click "**Mark as Best Response**" and like it. You can share your feedback via Microsoft Teams Developer Feedback link. Click here to escalate.

Hi @Varaprasad-MSFT,

Thanks for the quick response,

 

Yes I can access both static pages from my chrome browser.

 

 

@MatthewCohen - Could you please share your manifest?

 

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.8/MicrosoftTeams.schema.json",
  "manifestVersion": "1.8",
  "version": "1.0.0",
  "showLoadingIndicator": true,
  "id": "f9083eaf-0ae8-4331-9653-10080cc36b54",
  "packageName": "{{PACKAGE_NAME}}",
  "developer": {
    "name": "brightidea",
    "websiteUrl": "https://{{HOSTNAME}}",
    "privacyUrl": "https://{{HOSTNAME}}/privacy.html",
    "termsOfUseUrl": "https://{{HOSTNAME}}/tou.html"
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "name": {
    "short": "BI Test 1",
    "full": "BI Test 1"
  },
  "description": {
    "short": "TODO: add short description here",
    "full": "TODO: add full description here"
  },
  "accentColor": "#D85028",
  "bots": [
    {
      "botId": "aa38ad8c-5635-49c2-80b6-e3b0d2b47333",
      "scopes": [
        "team",
        "groupchat",
        "personal"
      ],
      "supportsFiles": false,
      "isNotificationOnly": false
    }
  ],
  "composeExtensions": [
    {
      "botId": "aa38ad8c-5635-49c2-80b6-e3b0d2b47333",
      "canUpdateConfiguration": false,
      "commands": [
        {
          "id": "createIdea",
          "type": "action",
          "title": "Create Idea",
          "description": "Create an idea from a message",
          "initialRun": true,
          "fetchTask": true,
          "context": [
            "message"
          ],
          "parameters": [
            {
              "name": "param",
              "title": "param",
              "description": ""
            }
          ]
        }
      ]
    }
  ],
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "1e5e8f0306b0.ngrok.io"
  ]
}

@MatthewCohen 

Thanks for sharing the manifest , we are checking internally and get back to you on this.
@MatthewCohen, are you still facing this issue? Could you please check this sample for [messaging extension Authentication](https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/csharp_dotnetcore/52.teams-messagi...)