需要帮助将使用PingFederate作为SAML IDP提供程序的测试设置进行故障排除到AWS Cognito

时间:2018-05-31 21:06:08

标签: amazon-web-services aws-cognito pingfederate

有关解决此问题的任何帮助/建议,或建立备用SAML IDP提供程序以进行测试的建议将非常感谢。

背景:

对于我们的多租户应用,我们一直在使用PingFederate来提供SSO。我们正在使用AWS Cognito替换它。

我已经完成了基本的代码更改,以便我们的应用程序将调用awscognito,进行身份验证并将令牌返回给应用程序。最后一步是设置AWS用户池以处理SAML IDP。

过去,当我需要测试PingFederate时,我将PingFederate测试服务器设置为同时充当IDP和SP。这样我可以在我们的应用程序中启动IDP请求,PingFederate的IDP服务部分将回答IDP请求,然后调用SP处理,最终将返回到我们的应用程序。

我想使用类似的设置来测试AWS Cognito,但我很难让PingFederate与AWS Cognito集成。当我尝试在AWS Cognito中创建提供程序时,我收到以下错误消息:

我们无法创建身份提供者:在元数据中找不到SingleSignOn Http重定向绑定位置。 (服务:AWSCognitoIdentityProviderService;状态代码:400;错误代码:InvalidParameterException;请求ID:8f48b246-6513-11e8-a8a0-8177ff216d8a)

以下是上传的导出文件的样子:

<md:EntityDescriptor entityID="OTIDPQA" cacheDuration="PT1440M" 
ID="WRHOcPiQSytSdX73eJiSqU7NYk7" 
xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:IDPSSODescriptor 
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>   encrypted certificate data 
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-
format:unspecified</md:NameIDFormat>
<md:SingleSignOnService Location="https://xxxxx-userpool-test.auth.us-east-2.amazoncognito.com/saml2/idpresponse" 
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="MiddleName" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="Email" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="generic1" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="subject" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="userId" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="restricted" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="FirstName" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
 format:basic" Name="Role" 
 xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="UserName" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
<saml:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-
format:basic" Name="LastName" 
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/>
</md:IDPSSODescriptor>
<md:ContactPerson contactType="administrative">
<md:Company>company data </md:Company>
<md:GivenName>first name data</md:GivenName>
<md:SurName>last name data</md:SurName>
<md:EmailAddress>email data</md:EmailAddress>
<md:TelephoneNumber>phone data</md:TelephoneNumber>
</md:ContactPerson>
</md:EntityDescriptor>

1 个答案:

答案 0 :(得分:0)

仅供参考,我通过使用PingFederate中的手动导出选项来解决这个问题。问题中包含的文件是从PF自动生成的。相反,我使用了选择应该导出的选项。该导出文件已成功加载。