400 ответ только на некоторые / случайные вызовы для получения токена доступа с использованием U / P? - PullRequest
0 голосов
/ 27 февраля 2020

Создан псевдо-SSO, в котором пользователь предоставляет свои Azure учетные данные, и мы используем Microsoft Graph, чтобы определить, есть ли у него нужные группы безопасности для входа. Это общедоступное c клиентское корпоративное приложение. Это позволяет нам предоставить имя пользователя / пароль и идентификатор клиента / арендатора для получения токена доступа, а также сделать два вызова Graph для получения информации. До недавнего времени все работало нормально.

Вот фрагмент кода, который выдает ошибку 400 ... но только время от времени.

context = new AuthenticationContext( authorityID, false, service );
Future<AuthenticationResult> future = context.acquireToken( "https://graph.microsoft.com", clientID, username, password, null );
result = future.get();

Я не уверен, почему эта ошибка происходит, по-видимому, случайно; некоторые пользователи могут войти в систему немедленно, в то время как другие должны сделать 2-3 попытки пройти. Ниже приведено сообщение об ошибке, смутное сообщение о неверном запросе. Есть ли что-то очевидное, что я здесь упускаю?

ERROR: Unable to create authentication result and retrieve access token from the given credentials.
com.microsoft.aad.adal4j.AuthenticationException: Server returned HTTP response code: 400 for URL : https://login.microsoftonline.com/common/userrealm/[usernamehere] ?api-version=1.0, Error details : 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><Bad Request
<hr><p>HTTP Error 400. The request is badly formed.</p>
</BODY></HTML>

Будем благодарны за любые советы или предложения! Я новый разработчик, которому нужны некоторые рекомендации о том, что искать при случайной ошибке, подобной этой.

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