Получение Amazon Cognito Access Token в Java - PullRequest
1 голос
/ 09 июля 2019

Мы пишем некоторый код для проверки наших конечных точек и процесса аутентификации.Мы используем Cognito для аутентификации, нашим конечным точкам требуется токен доступа с неявным потоком предоставления.

При чтении документации Amazon нам удалось получить токен openid, используя следующий код:

    AmazonCognitoIdentity identityClient = new AmazonCognitoIdentityClient(
            new BasicAWSCredentials("XXXXXXXXXXXXXXXXXXXXX",
                    "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")
    );
    identityClient.setRegion(Region.getRegion(Regions.EU_WEST_1));
    GetOpenIdTokenForDeveloperIdentityRequest request =
            new GetOpenIdTokenForDeveloperIdentityRequest();
    request.setIdentityPoolId("eu-west-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    Map<String,String> logins = new HashMap<>();
    logins.put("acceptance-tests", "acceptance-tests");
    request.setLogins(logins);

    GetOpenIdTokenForDeveloperIdentityResult response =
            identityClient.getOpenIdTokenForDeveloperIdentity(request);
    String identityId = response.getIdentityId();

    String token = response.getToken();

Мыпросто не знаю, как обменять токен openid на токен доступа для вызова наших конечных точек.

Тем не менее, мы даже не уверены, действительно ли нам нужно сначала получить токен openid, чтобы получить доступтокен.

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

final String clientId = "XXXXXXXXXXXXXXXXXXXXXXXXX";
final String region = "eu-west-1";
final String username = "USERNAME";
final String password = "PASSWORD";
AWSCognitoIdentityProvider cognitoClient = AWSCognitoIdentityProviderClientBuilder.standard()
            .withRegion(region)
            .build();
final Map<String, String> authParams = new HashMap<>();
authParams.put("USERNAME", username);
authParams.put("PASSWORD", password);
final InitiateAuthRequest authRequest = new InitiateAuthRequest();
authRequest.withAuthFlow(AuthFlowType.USER_SRP_AUTH)
            .withClientId(clientId)
            .withAuthParameters(authParams);
InitiateAuthResult result = cognitoClient.initiateAuth(authRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...