数据保护操作失败

The data protection operation was unsuccessful

我正在尝试从部署到 Azure 的 Kentor AuthServices 获取示例 MVC 应用程序,并使用 Okta 作为 IDP。我跳过了几个障碍,但偶然发现了 CryptographicException "The data protection operation was unsuccessful"。我不确定如何解决它。

发生这种情况时,浏览器中的 URL 是 https://mysite.azurewebsites.net/AuthServices/Acs

感谢任何帮助,谢谢。

下面是我 web.config 的 kentor 部分。我没有身份服务器,所以删除了所有联合配置..

<kentor.authServices entityId="https://mysite.azurewebsites.net/AuthServices"
               returnUrl="https://mysite.azurewebsites.net/"
               authenticateRequestSigningBehavior="Never">
<identityProviders>
  <add entityId="http://www.okta.com/1111111"
       allowUnsolicitedAuthnResponse="true" binding="HttpRedirect" 
       metadataLocation="https://dev-11111.oktapreview.com/app/1111111/sso/saml/metadata"
       loadMetadata="true">
    <signingCertificate fileName="~/App_Data/okta.cert" />
  </add>
</identityProviders>

如果我可以提供任何进一步的信息来帮助您帮助我,请告诉我!

看起来像是 Kentor.AuthServices 中的错误。我最近做了一些利用数据保护 API 的重写,所以那里可能有问题。请在 github site 提交问题并包括异常的堆栈跟踪以及有关您正在使用的 API 模块(MVC、HttpModule 或 OWIN)的信息。

这实际上是一个 Azure 问题 as Anders points out。解决方法是将以下内容添加到 web.config:

<system.identityModel>
    <identityConfiguration>
      <securityTokenHandlers>
        <add type="System.IdentityModel.Services.Tokens.MachineKeySessionSecurityTokenHandler, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
        <remove type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </securityTokenHandlers>
    </identityConfiguration>
  </system.identityModel>