Декодирование JWT из AWS Cognito предоставляет идентификатор пула и секрет клиентского приложения

Я создал приложение ASP .Net Core, которое выполняет аутентификацию по Cognito.

Мой контроллер аутентификации выглядит так:

public class AuthenticationController : Controller
    {
        [HttpPost]
        [Route("api/signin")]
        public async Task<ActionResult<string>> SignIn(User user)
        {
            var cognito = new AmazonCognitoIdentityProviderClient(RegionEndpoint.APSoutheast2);

            var request = new AdminInitiateAuthRequest
            {
                UserPoolId = "ap-southeast-2_mypoolid",
                ClientId = "myclientid",
                AuthFlow = AuthFlowType.ADMIN_USER_PASSWORD_AUTH
            };
            request.AuthParameters.Add("USERNAME", user.Username);
            request.AuthParameters.Add("PASSWORD", user.Password);

            var response = await cognito.AdminInitiateAuthAsync(request);

            return Ok(response.AuthenticationResult);

        }
    }

Startup.ConfigureServices выглядит так:

services.AddAuthentication("Bearer")
                .AddJwtBearer(options =>
                {
                    options.Audience = "client key";
                    options.Authority = "https://cognito-idp.ap-southeast-2.amazonaws.com/ap-southeast-poolid";
                });

Я включил это на случай, если это что-то, что я сделал выше.

Мои токены на предъявителя работают нормально. Я авторизуюсь против Cognito и получаю токены доступа / идентификатора / обновления. Поскольку я новичок в Cognito и AWS в целом и из любопытства, я запустил свои токены на https://jwt.io/ и обнаружил, что они содержат мои poolId и clientId. У меня сложилось впечатление, что их нужно спрятать с максимальной безопасностью.

Это нормально или я что-то сделал? Я чувствую, что, может быть, это не следует так легко разоблачать?


person The_Chud    schedule 30.12.2019    source источник


Ответы (1)


Да нормально, только секрет раскрывать не надо.

person Arun K    schedule 30.12.2019
comment
И как мне этого добиться? - person The_Chud; 30.12.2019
comment
для браузерных приложений вы не должны создавать клиент приложения с секретом, вы должны создать его без секрета - person Arun K; 30.12.2019
comment
На данном этапе это только API. - person The_Chud; 30.12.2019
comment
Извинения - это НЕ секрет клиента приложения. Это мой идентификатор клиента приложения, который декодируется. Под секретом клиента приложения у меня нет (секретного ключа нет). - person The_Chud; 30.12.2019
comment
также нормально выставить идентификатор клиента приложения. - person Arun K; 01.01.2020