Уничтожение 401 “Несанкционированного” ответа, сопровождаемого 200 “хорошо” ответы

Мне кажется, что вы используете пакет неправильно.

Попробуйте следующее:

    $this->client = CognitoIdentityProviderClient::factory([
        'region' => $region,
        'version' => $version
    ]);

    $result = $this->client->adminInitiateAuth([
        'UserPoolId'     => $this->poolId,
        'ClientId'       => $this->clientId,
        'AuthFlow'       => 'ADMIN_NO_SRP_AUTH', // this matches the 'server-based sign-in' checkbox setting from earlier
        'AuthParameters' => [
            'USERNAME' => $username,
            'PASSWORD' => $password
        ]
    ]);

Я нашел простое руководство , на которое я ссылаюсь, на которое вы, возможно, захотите взглянуть.

24
задан Troy Hunt 30 April 2009 в 00:26
поделиться

4 ответа

Unfortunately this is an artifact of the HTTP NTLM authentication scheme.

In short, the browser (Internet Explorer or otherwise) doesn't know that it needs to authenticate at all until it gets bounced with a 401 response containing a WWW-Authenticate response header.

In the case of WWW-Authenticate: NTLM -- annoyingly enough -- it requires two 401 responses on a single persistent connection to complete, and this process must be repeated once the HTTP persistent connection is closed. So even if you were able to get the browser to initiate a request blindly attempting NTLM, at least one 401 response cannot be removed from the transaction.

I think your best bet would be to maximize the amount of time that persistent connections are left open when idle.

16
ответ дан 29 November 2019 в 00:22
поделиться

Я полагаю, что можно убедить, что Firefox для автоматической отправки учетных данных NTLM в набор в белом списке доменов через настройки "about:config" - использует установку "network.automatic-ntlm-auth.trusted-uris". Я не попробовал это сам все же. Я не уверен, что существует любой эквивалент для Internet Explorer.

К сожалению, если Вы используете что-то еще как Kerberos, кажется, нет способа избежать 401.

0
ответ дан 29 November 2019 в 00:22
поделиться

Вам может понадобиться рассмотреть проверку подлинности с помощью форм, если задержка, вызванная 401, слишком велика. Пользователи должны войти в систему явно, но только один раз. Тогда вы могли бы использовать схему cookie или схему без cookie и получить ответ с первой попытки.

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

0
ответ дан 29 November 2019 в 00:22
поделиться

CSCRIPT.EXE c: \ inetpub \ adminscripts \ ADSUTIL.VBS SET W3SVC / AuthPersistSingleRequest FALSE

Значительно уменьшит количество ошибок 401.

3
ответ дан 29 November 2019 в 00:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: