MessageSecurityException: пункт EncryptedKey не был обернут необходимым символом шифрования ' Система. IdentityModel. Символы. X509SecurityToken'

Я создал обслуживание Wcf с внедрением SAML. Я использую закрепление федерации для того же самого. Из моего клиентского приложения я в состоянии получить доступ к услугам, принятым на моем веб-сервисе WCF легко, когда я управляю и обслуживанием клиента и хозяина на ту же самую машину. Я использовал свидетельства для идентификации (внедрение SAML).

For your information I have custom module at client side which acts as a identity provider. The host service just has some functions which are exposed using wsfederationbinding.

Теперь проблема состоит в том, что, когда я управляю своим сервисным хозяином WCF в различной системе и клиентском приложении (потребитель с поставщиком идентичности) на различной системе, я получаю следующее сообщение об ошибке

  MessageSecurityException: The EncryptedKey clause was not wrapped with the required encryption token 'System.IdentityModel.Tokens.X509SecurityToken'.

Note:I feel there is a something mismatch happening interms of certificates between client and host service.

0
nl ja de

1 ответы

Я решил вышеупомянутую проблему, на самом деле первопричиной для вышеупомянутой ошибки было несоответствие свидетельства. Я прочитал на одном из форума SAML относительно <сильной> идентификации свидетельства SAML процедуру, в которой говорится

  1. символ зашифрован, используя Общественное свидетельство в клиентской стороне.
  2. В серверной стороне (Хозяин веб-сервиса в моем случае) полученный символ расшифрован, используя закрытый ключ свидетельства.

Так, в моем случае свидетельства отличались в клиентской стороне по сравнению с в серверной стороне.

Резолюция:

Просто экспортируйте свидетельства от серверной стороны (Хозяин веб-сервиса в моем случае) и импортируйте то же самое в клиентской стороне.

Note: There exist 2 certificates,client certificate and server certificate at both sides(client side and server side). so in reality,when a client wants to access the host web service(dynamically), just like downloading apps,we need to create both certificates at service side and deploy those certificates to client upon activation of the client app.this way certificates will be in sync.

1
добавлено