У нас есть сценарий, в котором у нас есть одно приложение, к которому будет осуществляться доступ из нашей организации, а также доступ из внешней организации. Мы будем размещать это веб-приложение в лазурном цвете. Я использую MVC 5 с промежуточным программным обеспечением Owin WSFederation. Я могу подключиться к своему локальному серверу ADFS, и он работает должным образом.
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = "https://localhost:44321/",
MetadataAddress = "https://sso2.xxxxx.com/FederationMetadata/2007-06/FederationMetadata.xml"
});
Когда я использую ACS в качестве основной STS и настраиваю наш сервер ADFS в качестве IDP, он направляется на правильную страницу входа в ADFS, но после аутентификации я получаю эту ошибку
ID4037: ключ, необходимый для проверки подписи, не может быть определен из следующего идентификатора ключа безопасности 'SecurityKeyIdentifier (IsReadOnly = False, Count = 1, Clause [0] = X509RawDataKeyIdentifierClause (RawData = MIIC4DCCAc ... Убедитесь, что SecurityTokenResolver заполнен требуемым ключом.
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = "https://localhost:44321/",
MetadataAddress = "https://xxxxxxxx.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml"
});
Я чувствую, что это проблема, потому что федеративные метаданные содержат ключ для подписи, а поскольку промежуточное программное обеспечение owin имеет только метаданные из ACS, подписывающую сторону невозможно определить.
Мысли?