AWS Cognito不支持Okta IDP 发起的flow的解决方法

Okta cognito integration

Posted by leasy on December 28, 2019

“Okta创建Bookmark App”

我参考AWS Cognito文档 将Okta设置为SAML提供商,但是当我从Okta中发起登陆流程的时候发现会报错,错误信息是

Invalid samlResponse or relayState from identity provider

搜索了一下发现AWS Cognito目前是不支持IDP主动发起的Flow,只支持SP发起的flow,关于这两种flow 的区别可以参考之前的文章IDP and SP 发起的flow

配置好SAML提供商之后AWS Cognito会提供一个链接,通过链接来进行登陆,链接的格式是

https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl

这种情况下可以通过Okta的Bookmark APP来解决,不过在新版的Okta里面Bookmarp APP已经被移除,用户只能手动创建书签来解决这个问题:

  • 在Okta主界面选择”添加应用” 添加应用程序
  • 这个时候搜索Bookmark APP会被告知不存在,但是下面有个添加书签的按钮,点击添加书签
  • 在应用登陆URL中填写AWS提供的链接,应用名称填写自己要配置的名字然后选择添加,就可以看到一个书签的图标出现在应用程序主界面 创建应用程序 应用程序图标

这样就可以在Okta中发起AWS Cognito的授权流程。