簡體   English   中英

需要AWS API網關身份驗證標頭

[英]AWS API-Gateway Authentication Headers required

這是我的情況:

通過Cognito具有UserPool和IdentityPool設置。 我還配置了一個API-Gateway終端節點以與AWS_AIM進行身份驗證。

首先,我使用用戶名和密碼將用戶登錄到Cognito UserPool。 我收到的答復是肯定的,看起來像下面這樣:

[AuthenticationResult] => Array
                (
                    [AccessToken] => <AccessToken>
                    [ExpiresIn] => 3600
                    [TokenType] => Bearer
                    [RefreshToken] => <RefreshToken>
                    [IdToken] => <IdToken>
                )

使用此信息,我授權用戶使用Cognito IdentityPool。 我收到的答復是肯定的,看起來像下面這樣:

            [IdentityId] => <IdentityId>
            [Credentials] => Array
                (
                    [AccessKeyId] => <AccessKeyId>
                    [SecretKey] => <SecretKey>
                    [SessionToken] => <SessionToken>
                    [Expiration] => Aws\Api\DateTimeResult Object
                        (
                            [date] => 2018-06-15 09:11:32.000000
                            [timezone_type] => 1
                            [timezone] => +00:00
                        )

                )

這就是我被困住的地方。 我需要以下標頭才能向API網關端點發出實際請求:

Authorization: AWS4-HMAC-SHA256 
Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, 
SignedHeaders=host;range;x-amz-date,

簽名= fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024

但是對於我一生,我找不到生成這些標頭的方法。 而且,針對Javascript和PHP的AWS開發工具包文檔集在具體做什么方面尚不清楚。 所以我的天才是我在某個地方錯過了一點。 是否有人知道如何正確生成這些標頭? 最好使用PHP。

我對PHP不太滿意,但是我知道您需要SignatureV4簽名的請求...這不是您要找的東西嗎? https://github.com/aws/aws-sdk-php/blob/master/src/Signature/SignatureV4.php#L42

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM