Использование Azure AD B2C с ботом

Я создал бота в Azure, который использует SignInCard, чтобы дать пользователям возможность войти в систему или зарегистрироваться в качестве клиентов. Это SignInCard, который у меня сейчас есть:

messageActivity.Attachments.Add(new SigninCard()
            {
                Buttons = new List<CardAction>()
                {
                    new CardAction()
                    {
                        Title = "Log in here",
                        DisplayText = "Log in here",
                        Value = "https://login.microsoftonline.com/XXXXXXXX.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_SiUp&client_id=XXXXX-XXXX-XXXX-XXXX-XXXXXXXd&nonce=defaultNonce&redirect_uri=http%3A%2F%2Flocalhost%3A3980%2Fapi%2Flogin&scope=openid&response_type=id_token&prompt=login",
                        Text = "Sign in/Register",
                        Type = ActionTypes.Signin,                        
                    }
                }                
            }.ToAttachment());

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

С моей стороны, у меня есть веб-API с LoginController, сопоставленным с моим Вернуть URL (то есть localhost: 3980 / api / login).

Чтобы убедиться, что вызывается Return Url, я поставил точку останова в LoginControl.Get:

public class LoginController : ApiController
{
    [HttpGet]
    public IHttpActionResult Get()
    {
        return Ok();     //The breakpoint here is hit!
    }
}

После входа в систему при достижении точки останова вызывается метод Get. Но что будет дальше? Я не знаю, что делать дальше.

Единственное, что я обнаружил, это то, что метод LoginController.Get вызывается Azure B2C AD с таким URL-адресом:

http: // локальный: 3980 / api / логин # id_token = eyJ0eXAi ...

Я предполагаю, что это тот URL-адрес, который вызывается, потому что он отображается в адресной строке моего браузера.

Итак, он отправляет нечто под названием «id_token», но внутри метода Controller.Get я не могу получить к нему доступ.

Что за id_token? Как его получить?

Что, если вы добавите этот URI перенаправления в свое приложение Azure AD B2C, а затем используете его со свойством CardAction.Value: https://token.botframework.com/.auth/web/redirect?

Chris Padgett 26.07.2018 11:19

@ChrisPadgett Я помещаю этот URL-адрес, и открывается белая страница с текстом «Неверный запрос»

SuperJMN 26.07.2018 12:38

Играя, я установил URL-адрес перенаправления на URL-адрес моего веб-API, который сопоставляется с контроллером с именем LoginController: URL-адрес, который я установил, следующий => локальный: 3980 / api / логин В LoginController я установил точку останова в методе Get (HttpGet). После входа в систему достигается точка останова. URL-адрес такой: localhost: 3980 / api /… .... как мне с этим справиться? Он поставляется с id_token.

SuperJMN 26.07.2018 12:59

@ChrisPadgett Я обновил вопрос своими последними выводами. Я надеюсь, что вы можете мне помочь. Заранее спасибо!

SuperJMN 26.07.2018 13:37

Отвечает ли это на ваш вопрос? как заставить Azure Active Directory B2C работать с Bot Framework?

Sanjeevi Subramani 13.05.2020 14:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
270
1

Ответы 1

AuthBot, а также BotAuth являются примерами, которые содержат подходы к реализации аутентификации.

Вы должны использовать Graph Api для получения пользовательских принципов с использованием токена, полученного от службы аутентификации (более конкретно для Azure Active Directory). Токен получит URL-адрес обратного вызова, который вы настроили в приложении AAD.

В примерах вы получите полную реализацию аутентификации пользователя.

Надеюсь, что это поможет вам.

Другие вопросы по теме