Java 如何使用Cognito通过AWS服务验证应用程序实例?

Java 如何使用Cognito通过AWS服务验证应用程序实例?,java,android,amazon-web-services,authentication,amazon-cognito,Java,Android,Amazon Web Services,Authentication,Amazon Cognito,我有一个应用程序需要在AWS上使用Firehose Kinesis视频流服务。根据需要,客户端需要使用AWSCredentialsProvider进行身份验证。 现在我不需要进行身份验证,但是客户端必须具有执行请求的凭据。此外,如果应用程序有一些秘密令牌,那么没有应用程序的人就不能发出请求,这将是首选。请注意,此应用程序将有许多用户,但我希望他们共享相同的密钥/凭据,以便与kinesis进行身份验证。 为此,我创建了一个用户池,并添加了一个应用程序客户端,如下所示。 完成后,我尝试使用以下代码验

我有一个应用程序需要在AWS上使用Firehose Kinesis视频流服务。根据需要,客户端需要使用AWSCredentialsProvider进行身份验证。 现在我不需要进行身份验证,但是客户端必须具有执行请求的凭据。此外,如果应用程序有一些秘密令牌,那么没有应用程序的人就不能发出请求,这将是首选。请注意,此应用程序将有许多用户,但我希望他们共享相同的密钥/凭据,以便与kinesis进行身份验证。 为此,我创建了一个用户池,并添加了一个应用程序客户端,如下所示。 完成后,我尝试使用以下代码验证应用程序客户端凭据并创建一个Kinesis客户端

        final String clientId = "xxxxxxxxxx3";
        final String clientSecret = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";
        final Regions region = Regions.EU_WEST_1;
        final AWSCredentials basicAWSCredentials = new BasicAWSCredentials(clientId, clientSecret);
        AWSCredentialsProvider basicCredProvider = new AWSCredentialsProvider() {
            @Override
            public AWSCredentials getCredentials() {
                return basicAWSCredentials;
            }
            @Override
            public void refresh() {
            }
        };
        //Create kinesis client
        KinesisVideoClient mKinesisVideoClient;
        try {
            mKinesisVideoClient = KinesisVideoAndroidClientFactory.createKinesisVideoClient(
                    getApplicationContext(),
                    region,
                    basicCredProvider);
            AndroidCameraMediaSource mCameraMediaSource = (AndroidCameraMediaSource) mKinesisVideoClient
                    .createMediaSource("TEST", getCurrentConfiguration());
            mCameraMediaSource.start();
        } catch (KinesisVideoException e) {
            Log.e("KINESIS", "Failed to create Kinesis Video client", e);
        }
(当然,我的证件在这里被弄糊涂了) 但我收到一个响应,表示我的令牌无效:

2019-11-18 16:10:04.679 20458-20458/com.example.testauth W/IInputConnectionWrapper: getExtractedText on inactive InputConnection
2019-11-18 16:10:04.680 20458-20458/com.example.testauth W/IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
2019-11-18 16:10:09.268 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library .so.
2019-11-18 16:10:09.269 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library .dylib.
2019-11-18 16:10:09.269 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library .dll.
2019-11-18 16:10:09.270 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.so.
2019-11-18 16:10:09.270 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.dylib.
2019-11-18 16:10:09.271 20458-20458/com.example.testauth W/KinesisVideoAndroidClient: Unsatisfied link error. Directly loading native library libKinesisVideoProducerJNI.dll.
2019-11-18 16:10:09.276 20458-20458/com.example.testauth V/KinesisVideoAndroidClient: Success! Indirectly loaded native library KinesisVideoProducerJNI.
2019-11-18 16:10:09.276 20458-20458/com.example.testauth V/KinesisVideoAndroidClient: KinesisVideoProducerJNI library: version 1.8, compile time Oct 30 2018 15:31:01
2019-11-18 16:10:09.277 20458-20458/com.example.testauth D/platform-utils: Java_com_amazonaws_kinesisvideo_internal_producer_jni_NativeKinesisVideoProducerJni_createKinesisVideoClient(): Creating Kinesis Video client.
2019-11-18 16:10:09.278 20458-20458/com.example.testauth D/platform-utils: createKinesisVideoClient(): Creating Kinesis Video Client
2019-11-18 16:10:09.278 20458-20458/com.example.testauth D/platform-utils: heapInitialize(): Initializing native heap with limit size 402653184, spill ratio 90% and flags 0x00000001
2019-11-18 16:10:09.278 20458-20458/com.example.testauth D/platform-utils: heapInitialize(): Creating AIV heap.
2019-11-18 16:10:09.278 20458-20458/com.example.testauth D/platform-utils: heapInitialize(): Heap is initialized OK
2019-11-18 16:10:09.283 20458-20524/com.example.testauth D/KinesisVideoAndroidClient: Refreshing credentials
2019-11-18 16:10:09.316 20458-20524/com.example.testauth D/KinesisVideoAndroidClient: Returning credentials with expiration Sun Aug 17 08:12:55 GMT+01:00 292278994
2019-11-18 16:10:09.388 20458-20524/com.example.testauth D/platform-utils: Java_com_amazonaws_kinesisvideo_internal_producer_jni_NativeKinesisVideoProducerJni_createDeviceResultEvent(): create device event for handle 0x0000007cee505140.
2019-11-18 16:10:09.388 20458-20524/com.example.testauth D/platform-utils: createDeviceResultEvent(): Create device result event.
2019-11-18 16:10:09.389 20458-20458/com.example.testauth I/KinesisVideoAndroidClient: Initializing Kinesis Video client
2019-11-18 16:10:09.432 20458-20458/com.example.testauth D/platform-utils: Java_com_amazonaws_kinesisvideo_internal_producer_jni_NativeKinesisVideoProducerJni_createKinesisVideoStream(): Creating Kinesis Video stream.
2019-11-18 16:10:09.433 20458-20458/com.example.testauth D/platform-utils: createKinesisVideoStream(): Creating Kinesis Video Stream.
2019-11-18 16:10:09.603 20458-20525/com.example.testauth D/KinesisVideoAndroidClient: calling describe stream: {StreamName: TEST,}
2019-11-18 16:10:09.663 20458-20525/com.example.testauth D/NetworkSecurityConfig: No Network Security Config specified, using platform default
2019-11-18 16:10:09.666 20458-20525/com.example.testauth W/System: Ignoring header x-amz-security-token because its value was null.
2019-11-18 16:10:10.690 20458-20525/com.example.testauth E/KinesisVideoAndroidClient: 2019-11-18T16:10Z T2960: EXCEPTION: AmazonServiceException: Service call failed.: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 03729e92-fb1a-4e2a-9f34-03f6fac18f8b)
2019-11-18 16:10:10.690 20458-20525/com.example.testauth E/KinesisVideoAndroidClient: Kinesis Video service client returned an error com.amazonaws.AmazonServiceException: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 03729e92-fb1a-4e2a-9f34-03f6fac18f8b). Reporting to Kinesis Video PIC.
2019-11-18 16:10:10.690 20458-20525/com.example.testauth D/platform-utils: Java_com_amazonaws_kinesisvideo_internal_producer_jni_NativeKinesisVideoProducerJni_describeStreamResultEvent(): Describe stream event for handle 0x0000007cee505140.
2019-11-18 16:10:10.691 20458-20525/com.example.testauth D/platform-utils: describeStreamResultEvent(): Describe stream result event.
2019-11-18 16:10:10.736 20458-20525/com.example.testauth D/KinesisVideoAndroidClient: calling describe stream: {StreamName: TEST,}
2019-11-18 16:10:10.752 20458-20525/com.example.testauth W/System: Ignoring header x-amz-security-token because its value was null.
2019-11-18 16:10:10.836 20458-20525/com.example.testauth E/KinesisVideoAndroidClient: 2019-11-18T16:10Z T2960: EXCEPTION: AmazonServiceException: Service call failed.: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 5e342080-cd44-40b0-a151-1aa56758f076)
2019-11-18 16:10:10.837 20458-20525/com.example.testauth E/KinesisVideoAndroidClient: Kinesis Video service client returned an error com.amazonaws.AmazonServiceException: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 5e342080-cd44-40b0-a151-1aa56758f076). Reporting to Kinesis Video PIC.
2019-11-18 16:10:10.837 20458-20525/com.example.testauth D/platform-utils: Java_com_amazonaws_kinesisvideo_internal_producer_jni_NativeKinesisVideoProducerJni_describeStreamResultEvent(): Describe stream event for handle 0x0000007cee505140.
2019-11-18 16:10:10.837 20458-20525/com.example.testauth D/platform-utils: describeStreamResultEvent(): Describe stream result event.
2019-11-18 16:10:10.887 20458-20524/com.example.testauth D/KinesisVideoAndroidClient: calling describe stream: {StreamName: TEST,}
2019-11-18 16:10:10.912 20458-20524/com.example.testauth W/System: Ignoring header x-amz-security-token because its value was null.
2019-11-18 16:10:11.028 20458-20524/com.example.testauth E/KinesisVideoAndroidClient: 2019-11-18T16:10Z T2959: EXCEPTION: AmazonServiceException: Service call failed.: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 673ec4b4-70c8-425e-b7d9-b0a364618085)
2019-11-18 16:10:11.028 20458-20524/com.example.testauth E/KinesisVideoAndroidClient: Kinesis Video service client returned an error com.amazonaws.AmazonServiceException: The security token included in the request is invalid. (Service: AWSKinesisVideo; Status Code: 403; Error Code: UnrecognizedClientException; Request ID: 673ec4b4-70c8-425e-b7d9-b0a364618085). Reporting to Kinesis Video PIC.
在谷歌搜索这个错误时,很可能是我的凭证错了。 我这里有什么?难道我不能将应用程序客户端凭据视为AWS访问密钥吗?还是我把一切都搞错了?同样,我不想创建“用户”或任何东西,但我只希望应用程序能够使用我的AWS帐户服务。起初我以为我只需要身份池,但后来我意识到我还需要用户池来进行身份验证