IDX10500签名验证失败-仅在发布后

时间:2018-08-28 20:36:40

标签: identityserver4

我们收到以下错误

IDX10500 Signature validation failed. 
Unable to resolve SecurityKeyIdentifier: 'SecurityKeyIdentifier'  
with Clause[0]= System.IdentityModel.Tokens.NamedKeySecurityKeyIdentifierClause

仅当IdentityServer.Web项目已发布并且客户端浏览器过去曾访问过该站点时,才会发生此错误。如果刷新浏览器,则显示IdentityServer4登录页面。

我们正在运行IdentityServer4,ASP.Net Core 2.0 并使用应用程序Cookie。该网站作为应用程序服务托管在Azure中。

在ConfigureServices中,我们使用X509证书进行签名-

X509Store certStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
            certStore.Open(OpenFlags.ReadOnly);

            X509Certificate2Collection certCollection = certStore
                .Certificates
                .Find(X509FindType.FindByThumbprint,
                Configuration.GetValue<string>("SSL:Thumbprint"),
                false);

            X509Certificate2 cert = null;
            if (certCollection.Count > 0)
            {
                cert = certCollection[0];
            }
            certStore.Dispose();

            services.AddIdentityServer()
                .AddSigningCredential(cert)

我们正在测试使用.net核心数据保护的解决方案-将加密的密钥数据存储在Azure Blob中。我们已经进行了一些初步测试,表明这将解决问题,但我不相信。测试仍在继续。

是否有人遇到过此问题(在发布后,SecurityKeyIdentifier无效)?

我们正在测试的解决方案如下-

Uri blobUriWithSASToken = new StorageAccountService(Configuration).GetStorageAccountBlobWithSASToken2Async().Result;
        services.AddDataProtection()
            .PersistKeysToAzureBlobStorage(blobUriWithSASToken);

0 个答案:

没有答案