Бот использует команды SSO: < /p>
- Когда пользователь устанавливает бот в команды, они видят входную карту, к карте Authure Aps, и к приложению. Весь этот процесс входов и выхода обрабатывается самим SDK с тех пор, как я включил AutoSignin. /> проблема < /strong> < /p>
Производительный развод Повторно переоценивает ту же учетную запись.https://login.microsoftonline.com/{tena ... 2.0/logout) только очищает сеанс браузера. Команды Desktop/Mobile по -прежнему молча входят в систему с учетной записью кэшированной."AgentApplication": {
"UserAuthorization": {
"DefaultHandlerName": "auto",
"Handlers": {
"auto": {
"Settings": {
"AzureBotOAuthConnectionName": "teams_sso",
"OBOConnectionName": "ServiceConnection"
}
}
}
}
},
"Connections": {
"ServiceConnection": {
"Settings": {
"AuthType": "FederatedCredentials",
"AuthorityEndpoint": "https://login.microsoftonline.com/{{TenantId}}",
"ClientId": "{{ClientId}}",
"FederatedClientId": "{{ManagedIdentityClientId}}",
"Scopes": [
"https://api.botframework.com/.default"
]
}
}
},
< /code>
подписать код: < /p>
await UserAuthorization.SignOutUserAsync(turnContext, turnState, cancellationToken: cancellationToken);
< /code>
Я попытался очистить сеанс Azure AD после подписки, но он только очищает сеанс браузера. Это работает, как и ожидалось в Teams Web, но в командах настольных и мобильных устройств процесс входа в систему обрабатывается клиентом команд, поэтому пользователь молча переоценивается с предыдущей учетной записью. Однако, поскольку поток входа полностью обрабатывается внутренне с помощью агента Microsoft 365 SDK, я не уверен, где или как указать эту подсказку = select_account параметр в коде бота.
{
await UserAuthorization.SignOutUserAsync(turnContext, turnState, cancellationToken: cancellationToken);
var tenantId = botOptions.TenantId;
var logoutUrl = $"https://login.microsoftonline.com/{tena ... 2.0/logout";
var card = new HeroCard
{
Text = "You have been signed out from the app. To fully clear your Microsoft login session, click below:",
Buttons = new List
{
new CardAction(ActionTypes.OpenUrl, "Sign out completely", value: logoutUrl)
}
};
logger.LogInformation($"User signed out. Logout URL: {logoutUrl}");
await turnContext.SendActivityAsync(MessageFactory.Attachment(card.ToAttachment()), cancellationToken);
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... popup-afte