簡體   English   中英

具有 Azure AD SAML 集成的 Cognito 授權返回 id_token 和 access_token 但沒有刷新令牌

[英]Cognito Authorization with Azure AD SAML integration returns id_token and access_token but no refresh token

我有一個帶有 1 個客戶端的 Cognito 用戶池,該客戶端配置了 2 個身份提供程序、 Cognito User Pool和一個鏈接 Azure AD 實例的 SAML 提供程序。 Allowed OAuth Flows設置為僅隱式授予。 通過 Cognito 用戶池提供程序登錄是使用@aws-sdk/client-cognito-identity-provider庫中的InitiateAuthCommand完成的。 由此返回一個 id_token、access_token 和刷新令牌。

使用 Cognito 開發人員文檔中提供的模板鏈接通過 SAML 提供商登錄 (https://your_Amazon_Cognito_userpool_domain/authorize?response_type=code&identity_provider=your-SAML-IdP-name&client_id=your-client-id&redirect_uri=https://your_application_redirect_url ). 此登錄有效,但僅返回 id_token 和 access_token(無刷新令牌)。

如何讓 cognito 為通過 SAML 提供商登錄的用戶頒發刷新令牌

Cognito 不應為隱式授權流返回刷新令牌 這是根據規范的預期行為:

授權服務器不得發出刷新令牌。

由於存在漏洞,也非常不鼓勵使用隱式流。

請考慮將授權代碼授予流程與 PKCE 一起使用。 有了它,您可以獲得刷新令牌

您獲得刷新令牌和aws-sdk的原因是,它應該使用文檔中提到的不同的身份驗證流程(例如: USER_PASSWORD_AUTH )。

暫無
暫無

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

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