Microsoft Bot Framework Oauthprompt возвращает 401 несанкционированныйC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Microsoft Bot Framework Oauthprompt возвращает 401 несанкционированный

Сообщение Anonymous »

У меня есть бот C#, написанный в рамках бота, реализация очень напоминает образец MSSOFT MS Auth Auth.

Код: Выделить всё

await stepContext.BeginDialogAsync(nameof(OAuthPrompt), null, ct);

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

Код: Выделить всё

https://api.botframework.com/api/usertoken/GetToken?userId={UserId}&connectionName={ConnectionName}&channelId=emulator'

Запрос содержит токен носителя, чья аудитория - https://api.botframework.com, так что это должно быть хорошо.
Этот API почти всегда возвращает 401, а иногда 404. Это кажется довольно случайным. Redirect URI в моей регистрации приложения - https://europe.token.botframework.com/. ... b/redirect.
Проблема в том, что я понятия не имею, с чего начинать, потому что у меня нет подсказок, указывающих на то, что не так. Все, возвращая 401 за каждый запрос (не только OAuthPrompt). При отладке эта проблема, по -видимому, связана с проверкой токенов JWT, мой эмитент токена - https://sts.windows.net/matenidid), но код проверяет некоторые жесткие списки эмитентов:

Код: Выделить всё

var toBotFromEmulatorTokenValidationParameters =
new TokenValidationParameters()
{
ValidateIssuer = true,
ValidIssuers = new[]
{
... // stackoverflow won't let me post with the urls
},

ValidateAudience = false, // CODEQL [cs/web/missing-token-validation] Audience validation takes place manually in code.
ValidateLifetime = true,
ClockSkew = TimeSpan.FromMinutes(5),
RequireSignedTokens = true,
};
Я попытался аутентифицировать пользователя в эмуляторе Framework Bot, пробовал различные соединения, настройки Appsettings.json, настройки эмулятора бота и т. Д., Все, что приводит к возвращению 401. один-арендатор. Я прочитал некоторую проблему GitHub, что вам, вероятно, нужно проверить власть для европейских ботов. Тем не менее, теперь оно бросает исключение «приложение с идентификатором '{my_app}', не было найдено в каталоге" Framework '' ", и когда я просто переключаю один-> Multi-> Single-Altrant в регистрации приложения, исключение изменяется на . (TenantId: D6D49420-F39B-4DF7-A1DC-D59A935871DB) ". И я пытаюсь сделать этот авторитетный валидацию работать только потому, что это может потребоваться для ботов в Европе, но я не уверен на 100%. https://sts.windows.net/benantId )/.

Подробнее здесь: https://stackoverflow.com/questions/797 ... authorized
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»