如何使用Cognito通过AWS服务对App实例进行身份验证?

我有一个需要在AWS上使用Firehose Kinesis Video流服务的应用程序。根据{{​​3}},客户端需要通过AWSCredentialsProvider进行身份验证。 现在,我实际上不需要身份验证,但是客户端必须具有凭据才能执行请求。同样,如果应用程序具有一些秘密令牌,那么没有应用程序的人将无法发出请求,这将是首选。请注意,此应用程序将拥有许多用户,但我希望他们共享相同的密钥/凭证,以便通过Kinesis进行身份验证。 为此,我创建了一个用户池并添加了一个documentation描述的App Client。 完成后,我尝试使用以下代码使用App Client凭据进行身份验证并创建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.

在搜索该错误时,很可能我的凭据是错误的。 我在这里什么我不应该将App Client凭据视为AWS访问密钥吗?还是我弄错了一切?同样,我不想创建“用户”或其他任何东西,但我只希望该应用程序能够使用我的AWS账户服务。起初我以为我只需要身份池,但是后来我意识到我还需要用户池来进行身份验证。

jujumickey 回答:如何使用Cognito通过AWS服务对App实例进行身份验证?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3078439.html

大家都在问