Единый вход (SSO) в Microsoft Bot v4 (веб-чат) через веб-страницу Angular - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть веб-страница (Angular), которая аутентифицирует пользователя, после входа в систему (oAuth2), у пользователя есть возможность взаимодействовать с ботом (Bot Framework v4 C #), так как теперь у меня был бот Independent, следовательно, имелиспользовал OAuthCard в боте для аутентификации пользователя.

Теперь я хочу иметь единый вход.Я не уверен, как пользовательский токен будет передаваться с веб-страницы боту, у меня есть два сценария, теперь я уверен, что правильный: 1. Отправлять пользовательский токен с каждым сообщением, требует проверки каждого сообщения, слишком много вычислений.2. Отправьте токен с TTL и обработайте срок его действия.

Но сейчас я не уверен, как отправить токен с веб-страницы в приложение C #.

Я пошелчерез this и как говорится

"Третий вариант, называемый Single Sign-On (SSO), находится в разработке и является тем, где пользовательский интерфейс клиента принимает клиентский токен клиента для клиентаприложение и обменивает его на другой токен, который можно использовать с тем же поставщиком удостоверений, но с другим приложением / областями применения. На данный момент можно создать аналогичный пользовательский интерфейс с помощью WebChat, используя метод № 1, описанный выше ".

И документ кажется слишком скудным, чтобы понять, как именно это было сделано с техникой # 1

1 Ответ

0 голосов
/ 12 февраля 2019

Я согласен, что сообщение в блоге довольно запутанно, и я до сих пор не имею ни малейшего понятия, что они собираются в конечном итоге сделать для того, что они называют «сценарием единого входа».Основное отличие, которое они описывают от простой передачи токену бота из SPA, заключается в том, что они будут выполнять какой-то обмен токенами для другого набора областей, в которых бот нуждается в сравнении с SPA.Это, безусловно, было бы полезно, но на данный момент это «все разговоры», и я не знаю ничего, что они создали, чтобы включить его.

Позвольте мне сначала быстро рассмотреть ваши две точки..


  1. Отправляет маркер пользователя с каждым сообщением, требует проверки на каждое сообщение, слишком много вычислений.

Прежде всего, я бы рискнул сказать, что на этом этапе большая часть сети построена на обмене токенами.Токены необходимо постоянно передавать, проверять подписи и проверять их срок действия.Это просто природа аутентификации;Я не думаю, что это специфическая проблема бота.

Отправьте токен с TTL и обработайте срок его действия.

Используете ли вы JWT?В них встроен TTL через стандартную заявку exp, так что вам не нужно беспокоиться о том, чтобы придумать свой собственный TTL.Да, вам нужно проверить срок действия.


Хорошо, это говорит о том, что, если вас беспокоят постоянные передачи токена боту, вы можете один раз отправить его черезпользовательское событие "backchannel" через соединение DirectLine.Затем ваш бот может взять этот токен, проверить его один раз и связать с состоянием диалога, чтобы клиенту не приходилось отправлять его при каждом запросе.Имейте в виду, однако, что вам все равно нужно будет постоянно проверять, что токен не истек.

Это событие обратного канала и его обработка будут полностью проприетарными (например, в коробке нет ничего, чтобы сделать это для вас сегодня).Точно так же, как у вас было бы событие от клиента к боту для отправки токена, вы также можете иметь событие, которое передается от бота к клиенту, чтобы сообщить ему, что ему нужен токен от клиента (например, первый запрос или обновлениеодин из-за истечения срока действия).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...