Asp.net核心2.0授权通过openIDConnect方法对IDP在identityServer3中进行

时间:2017-12-09 00:22:15

标签: c# asp.net-identity identityserver3 identityserver4 asp.net-core-2.0

我正在尝试连接内部SSO服务器,此SSO已使用IdentityServer3创建。它适用于我们现有的MVC 5应用程序。最近我们正在将我们的产品升级到ASP.net CORE 2.0。

我们遇到了身份验证过程的问题。经过大量的挖掘,我发现它连接了我们的授权终点;但有些人如何无法连接登录。

MVC-5使用OWIN实现来连接OpenIdConnect。 这是来自MVC-5的URL

identity/connect/authorize?client_id=XXXX
&redirect_uri=XXXXXXXXXXXXXXXXXXX
&response_mode=form_post&response_type=id_token+token&scope=openid+api&state=OpenIdConnect.AuthenticationProperties%3dwFuNqQIdG7E9axIWsGRaxqn8Aikv4B839r1HfWPm57n9RZ5Ig8BK-r2WuNclpcGZr0Ch2GThSpZ53ShE1zBESfxrSHts_I2iLYfTCvBa0Kd-uRueov-NpXDJOh39yh_f-h8TMcCXRe9S3cvE2eWp64dqJLJZM8EqBsW77b-keS3SvTB2KU0X7NqW-VGdI2StBn0y4kiWg9mZseGS4chgsA&nonce=636483566187911271.OTVmNDY1NGQtZDgxZS00ZjllLThjYzQtYjVkNGYxMGM5ZGZhZGI4MzMyYjctMTBiNi00OGQ3LThmOWItNGExNTc5OGFiYTA4

Asp.net Core在内置的OpenId Connect方法中使用。 这里来自ASP.net核心2.0的URL

identity/connect/authorize?
client_id=XXXXX
&redirect_uri=XXXXXXXXXXXXX &response_type=code
&scope=openid%20api
&response_mode=form_post
&nonce=636483740666280555.NDA3ZGRjZDQtNTdjNS00NjFiLTllOTYtMDc0MjE2NzhkMzQ5NmFiMzU0ZTQtMDIxOS00ODI5LWI4NWEtYTRiMDYzMTFmYjJi&state=CfDJ8AqnlI2Cn3FJtTEVow2y5i5Kt7x-JhPHvqlWGUu6jOxJQQiBB53rtgKV7_nXM4zY0MbzFPQUuONdoyEmX61bexqlAmbTmpEnVC5CHkr41q4b6e3_JtWTBaCOa3vT1_vCNNnIS6lQW3RH4nV-SQ5PUyVr2IzMO3feVRrkS-NLnLAuUXyKSR3gk0LtuzESq_xQ0dtdrjnWr5-dbCyOvG0p3vFhlaQeKyT55q2jZyM4sO0T7B524l6ICz2cKEVLdR6VU2RpjqV_UAlwM7i9Mm7yo_kbCBbtaOOZDWjDVj6XDop0YUmYJhMLGnlXWVBjD87vmg
&x-client-SKU=ID_NET&x-client-ver=2.1.4.0

如果您注意到ASP.net CORE openIdConnect添加了nonce参数,根据规范是可选的;但是,我无法摆脱它。 其他问题是State参数生成方式不同。

任何有助于使其与Asp.net Core 2.0一起使用到identityServer3的帮助。我没有在博客社区找到任何帮助。

请放心,我传递了正确的参数,如果我使用MVC 5,所有参数都可以正常工作。

1 个答案:

答案 0 :(得分:0)

所以在花了5天之后......我终于弄明白了这个问题。这是{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Aurora PostgreSQL", "Parameters": { "DBSecurityGroupIds": { "Description": "Security groups for PostgreSQL", "Type": "String" }, ..... "Resources": { "DBCluster": { "Type": "AWS::RDS::DBCluster", "Properties": { "VpcSecurityGroupIds": [ { "Ref" : "DBSecurityGroupIds" } ] } }, ..... "RDSinstance": { "Type": "AWS::RDS::DBInstance", "Properties": { }, "RDSinstance2": { "Type": "AWS::RDS::DBInstance", "Properties": { } ..... } 类中ASP.net CORE的基础实现更改。

请参阅我在Microsoft Asp.net安全团队中提出的Issue