2017-06-07 138 views
1

我正在關注一篇神奇的文章SAML for Your Serverless JavaScript Application,該文章適用於使用來自給定IdP的SAML響應的AWS Cognito提供SSO的Web應用程序。 下面是架構圖:architectureURL中的SAML響應時間太長

所以我的問題是在API-G重定向到我的網站的最後。我可以在chrome/firefox開發工具中看到302重定向工作,並且在url中有正確的url和saml響應,但是頁面無法加載。 Chrome瀏覽器顯示「取消」,而Firefox對此無能爲力。

我注意到總的網址長度大約是8500個字符,如果我使它大約7500個字符或更少,那麼它可以工作,但大於7500左右,則會中斷。

那麼爲什麼寫這篇文章的人會工作,但我無法得到它?該錯誤可能與我認爲的不同,它似乎只是網址的長度。

本地我正在運行一個包含ng serve的Angular 4應用程序,最終的應用程序將是S3存儲桶外的單頁應用程序。

+0

你正在修改什麼URL從8500字符下降到7500? 301重定向到了什麼樣的服務? –

+0

直接刪除SAML響應中的字符。 302來自AWS API-G/Lambda,重定向是一個GET到承載網絡應用程序的S3存儲區(因爲它是一個SPA和一個無服務器設置) – canada11

回答

1

如果您將AWS CloudFront與您的S3存儲桶一起使用,則存在8,192字節的URL限制,這似乎是導致問題的原因。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html

甲SAML響應可以是不同的原因不同的長度。部分原因可能是:

  • 包括簽署公證書(以及它的變量)
  • 屬性聲明(附帶斷言用戶信息)

因此,或許筆者是生產SAML迴應說導致更小的重定向網址。

此外,RFC中似乎沒有任何規定URI長度的限制,所以他們的服務器/瀏覽器可能與您的設置不同。

+0

我會把它當作現在的答案。是的,我無法完全解決這個問題,但是看起來好像我們只是在SAML中添加了更多內容,使其變得更大。此外,我還需要提供許多關於這個人可以在AWS中承擔的角色的信息,所以我現在只是走了一條不同的路線。 至於URI長度的限制,這就是爲什麼我很好奇,在我的情況下,我應該建立完全一樣的博客我跟隨,這只是一個簡單的SPA託管在S3(無服務器設置)。我猜S3在有7500多個字符的情況下出現問題 – canada11

+1

您是否在使用CloudFront訪問您的S3存儲桶?如果是這樣,我認爲你在正確的軌道上。 CloudFront具有8,192字節的URL限制,看起來像是您在那裏工作的領域。 http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html – vexdev

+0

這個,你可以添加一個實際的答案或答案。因爲就是這樣,我正在使用cloudfront。這就是爲什麼然後,它不工作。 – canada11