Платформа для ботов ClaimsPrincipal Azure

#botframework

#ботфреймворк

Вопрос:

Это обобщенный концептуальный вопрос, касающийся получения информации о пользователе в чате бота. Предпочтительно это было бы через OpenID и для начала с использованием учетных записей Microsoft. Мы хотели бы иметь возможность считывать отображаемое имя пользователя, адрес электронной почты пользователя, членство в группе пользователей и т.д. Каков наилучший способ получения этой информации в Azure Bot Framework? В MVC легко использовать OpenID для получения ClaimsPrincipal, но можно ли использовать эту концепцию в Azure Bot Framework и есть ли какие-либо примеры этого процесса?

Комментарии:

1. Я прочитал и протестировал этот образец бота: learn.microsoft.com/en-us/azure/bot-service /… . Я вижу токен, но больше ничего. Идет ли это по правильному пути и позволяет ли этот механизм аутентификации считывать дополнительные атрибуты пользовательских утверждений?

2. Я полагаю, что решение, которое я приму, состоит в том, чтобы получить токен из OAuth AD из примера выше, а затем использовать этот токен для запроса MS Graph API для получения информации о пользователе. Как только я заработаю, я опубликую, как выглядит решение здесь.

Ответ №1:

В этом было много всего, но, по сути, я использовал OAuth-соединение в службе ботов, чтобы отправить пользователя в конечную точку AADv2 для получения токена. Затем я использовал этот токен для отправки в метод GraphServiceClient (часть пакета Nuget Microsoft.График) для получения информации о пользователе. Это было предоставлено путем предоставления приложению в Azure AD MS Graph пользователя.Прочитайте разрешения API.