У меня есть приложение UWP с интеграцией Cortana с использованием команд (определения VCD). Приложение требует, чтобы пользователь вошел в систему (с помощью Facebook или Google).
Сейчас я пишу Cortana Skill - он будет предлагать те же функции, что и приложение UWP, но будет работать на других устройствах. Чтобы это работало, пользователю необходимо войти в систему, как и в приложении UWP.
Я понимаю, как осуществляется вход в Cortana Skill (с использованием BotBuilder) - после входа в систему токены доступа и обновления каким-то образом сохраняются в профиле пользователя, поэтому ему не нужно снова входить в систему на других своих устройствах. На самом деле я уже построил это, поэтому пользователь может войти в систему с помощью facebook / google в Cortana.
Но я хотел бы сделать это из приложения UWP - то есть после того, как пользователи войдут в приложение UWP, я хочу взять токен доступа / обновления и передать его какой-либо конечной точке Microsoft, чтобы пользователю не приходилось входить в систему дважды (один раз в UWP, второй раз в Кортане).
Это возможно? Есть ли какой-нибудь API, который я могу использовать для этого?





Канал (Cortana) обрабатывает поток OAuth и кэширование токенов с помощью «Подключенных служб». В настоящее время Кортана не поддерживает единый вход или кросс-клиентскую идентификацию. (Вы - приложение UWP и ваш навык Cortana - это, по сути, два приложения.) Это не означает, что вам нужно использовать «Подключенные службы», но вы должны реализовать встроенные функции для таких вещей, как обработка токенов обновления.
Я считаю, что OIDC создан для этого. Вам нужно будет подключить его к своему боту и клиентам. docs.microsoft.com/en-us/azure/active-directory/develop/…
Хорошо, но как они могут общаться с приложениями? В частности, могут ли они оба идентифицировать пользователя, который их вызывает? Например. пользователь вошел в приложение Windows через Facebook, как можно отправить эту информацию боту, что текущий пользователь (вошел в систему с учетной записью Microsoft) вошел в приложение, используя свою учетную запись facebook?