Я пытаюсь заставить аутентификацию OpenID работать в моем приложении Azure ASP.NET MVC 3 и выполнил действия, указанные в MVC 3 Custom Login Sample для этого. В среде разработки все работает нормально, но не при развертывании на платформе Azure.
Первая проблема началась с аутентификации, вызывающей ошибку «Ключ недействителен для использования в указанном состоянии». В обсуждении здесь говорится, что приложение необходимо настроить для использования RsaEncryptionCookieTransform вместо DPAPI, который используется по умолчанию. . Чтобы попытаться решить эту проблему, я добавил код для OnServiceConfigurationCreated
описанного в блоге Алика Левина, но дальше не пошло. описывает настройку самозаверяющего сертификата в процессе разработки (в котором, как уже упоминалось, не было необходимости), а не в Azure.
Вместо этого я попытался использовать сертификат X.509 уже в Azure. Я нашел отпечаток в разделе Windows Azure Management> Access Control Service> Relying Party Applications> (My Application Name)> Token Signing Certificates> Used for Service Namespace (X.509 Certificate). Затем я добавил эту ссылку в web.config:
<serviceCertificate>
<certificateReference x509FindType="FindByThumbprint" findValue="8A417..." />
</serviceCertificate>
Теперь я получаю ошибку конфигурации при запуске приложения:
ID1024: The configuration property value is not valid. Property name: 'certificateReference' Error: 'ID1025: Cannot find a unique certificate that matches the criteria. StoreName: 'My' StoreLocation: 'LocalMachine' X509FindType: 'FindByThumbprint' FindValue: '8A417...''
Действительно ли мне нужно изменить метод шифрования, чтобы устранить ошибку «Ключ недействителен для использования в указанном состоянии»? Если да, как я могу использовать сертификат X.509, уже находящийся в Azure, для шифрования файлов cookie?