Код: Выделить всё
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,
};
Подробнее здесь: https://stackoverflow.com/questions/797 ... authorized