繁体   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