ALB жалуется на когнито - PullRequest
       37

ALB жалуется на когнито

0 голосов
/ 28 октября 2019

Я пытаюсь подключить балансировщик нагрузки приложения к AWS Cognito, и все кажется правильным, за исключением случаев, когда я пытался сохранить изменения и получаю эту ошибку «У клиента пула пользователей должен быть секретный клиент», я его погуглил, ноничего полезного не нашел.

Мне удалось успешно протестировать пользовательский интерфейс аутентификации Cognito (я думаю ...), поэтому я не понимаю, почему AWS будет жаловаться на клиента пула пользователей.

поэтому вопрос в том, сталкивался ли кто-нибудь с этой проблемой раньше, и если вы это сделаете, как вы ее решили?

РЕДАКТИРОВАТЬ:

В основном, что яс одной стороны я настроил Cognito для работы только с Google OAuth (я удалил amazon по умолчанию), а с другой стороны я создал балансировщик нагрузки приложения с несколькими правилами, каждое правило указывает на другую целевую группу, каждая цельgroup - это приложение Docker, работающее на Kubernetes. (он же ЭКС). Все эти приложения имеют различный тип аутентификации или не имеют вообще никакой аутентификации. Поэтому идея состоит в том, чтобы добавить в ALB правило для аутентификации пользователей с помощью Cognito. проблема в том, что после добавления всех необходимых параметров и только когда я собираюсь сохранить свои изменения, все эти новые изменения. Я получаю сообщение об ошибке «У клиента пула пользователей должен быть секрет клиента», и я нашел это точное предложение, и я не получаю ничего, кроме сообщения, которое я разместил в других местах.

спасибо за ваше время!

1 Ответ

0 голосов
/ 29 октября 2019

Для правильной работы AWS Cognito требуется несколько базовых настроек. Ознакомьтесь с выдержкой из кода Amplify (AWS Dev Lib для Cognito).

import Amplify, { Auth } from 'aws-amplify';

Amplify.configure({
    Auth: {

        // REQUIRED only for Federated Authentication - Amazon Cognito Identity Pool ID
        identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',

        // REQUIRED - Amazon Cognito Region
        region: 'XX-XXXX-X',

        // OPTIONAL - Amazon Cognito Federated Identity Pool Region 
        // Required only if it's different from Amazon Cognito Region
        identityPoolRegion: 'XX-XXXX-X',

        // OPTIONAL - Amazon Cognito User Pool ID
        userPoolId: 'XX-XXXX-X_abcd1234',

        // OPTIONAL - Amazon Cognito Web Client ID (26-char alphanumeric string)
        userPoolWebClientId: 'a1b2c3d4e5f6g7h8i9j0k1l2m3',

        // OPTIONAL - Enforce user authentication prior to accessing AWS resources or not
        mandatorySignIn: false,

        // OPTIONAL - Configuration for cookie storage
        // Note: if the secure flag is set to true, then the cookie transmission requires a secure protocol
        cookieStorage: {
        // REQUIRED - Cookie domain (only required if cookieStorage is provided)
            domain: '.yourdomain.com',
        // OPTIONAL - Cookie path
            path: '/',
        // OPTIONAL - Cookie expiration in days
            expires: 365,
        // OPTIONAL - Cookie secure flag
        // Either true or false, indicating if the cookie transmission requires a secure protocol (https).
            secure: true
        },

        // OPTIONAL - customized storage object
        storage: new MyStorage(),

        // OPTIONAL - Manually set the authentication flow type. Default is 'USER_SRP_AUTH'
        authenticationFlowType: 'USER_PASSWORD_AUTH'
    }
});

// You can get the current config object
const currentConfig = Auth.configure();
...