Не удается аутентифицировать пользователя в MS Teams Bot.
То же самое работает в «Тестировании в веб-чате» правильно:
Домен добавлен в манифест Teams правильно:
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.15/MicrosoftTeams.schema.json",
"version": "1.0.0",
"manifestVersion": "1.15",
"id": "a0d93a07-2f63-4569-a651-cf3761859b28",
"packageName": "com.package.name",
"name": {
"short": "NewTest",
"full": ""
},
"developer": {
"name": "KUKA",
"mpnId": "",
"websiteUrl": "https://supportbotkuka.z6.web.core.windows.net/teams_ITSupport_about.html",
"privacyUrl": "https://supportbotkuka.z6.web.core.windows.net/teams_ITSupport_priv.html",
"termsOfUseUrl": "https://supportbotkuka.z6.web.core.windows.net/teams_ITSupport_terms.html"
},
"description": {
"short": "CS Logistics TEST app",
"full": "test app for CS Logistics"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#FFFFFF",
"staticTabs": [
{
"entityId": "conversations",
"scopes": [
"personal"
]
},
{
"entityId": "about",
"scopes": [
"personal"
]
}
],
"bots": [
{
"botId": "99e82921-96c9-4ec1-83ab-bd05382abc96",
"scopes": [
"personal"
],
"isNotificationOnly": false,
"supportsCalling": false,
"supportsVideo": false,
"supportsFiles": true
}
],
"validDomains": [
"token.botframework.com"
],
"webApplicationInfo": {
"id": "1e04e5cd-88e1-4522-984d-2bba5e2d37eb",
"resource": "https://graph.microsoft.com/"
}
}
Также воссоздан AppService, AzureBot в Azure и настроено новое приложение Teams с новой версией манифеста через портал разработчика. Установил приложение Teams прямо из себя, как личное приложение.
URI перенаправления регистрации приложения:
Также регистрация приложения отлично работает для других чат-ботов в нашем домене. Почему не для этого?
То же самое, проверка подлинности без единого входа работает для других ботов Teams в домене. И это работало для этого тоже до сих пор. Так почему же он вдруг перестал работать?
Фактически единственное, что нужно было изменить, это добавить эту строку кода в адаптер обработчика ошибок к коду бота: base.Use(new TeamsSSOTokenExchangeMiddleware(storage, configuration["ConnectionName"]));
Добавить код для обработки токена доступа.
А также добавить в бота метод OnTeamsSigninVerifyStateAsync, как в примере sso-quickstart.
Боюсь, вам нужно включить систему единого входа для бота вашей команды.