WsFederation OWIN + Sequence не содержит ошибок элементов - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь настроить аутентификацию Google App Suites с помощью моего приложения .NET 4.6.

Я использую пакет nuget Microsoft.Owin.Security.WsFederation OWIN, вот код, который я использую при запуске:

app.UseWsFederationAuthentication(new WsFederationAuthenticationOptions
{
    MetadataAddress = "URL TO HOSTED META DATA XML",
    Wtrealm = "blah", 
    TokenValidationParameters = new TokenValidationParameters
    {
        ValidateAudience = false,
        ValidAudiences = new List<string>()
        {
            wtrealm,
            validAudience
        }
    },
    SignInAsAuthenticationType = "Cookies"
});

Я получаю сообщение об ошибке «InvalidOperationException: Sequence не содержит элементов».Я подозреваю, что что-то не так с файлом метаданных, но я не уверен, что (я получил этот файл от администратора Google App Suites).Я размещаю этот файл метаданных в своем приложении .NET, так как WSFed требует URL.Любая идея, что я могу делать неправильно?

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="https://accounts.google.com/o/saml2?idpid=C03tzverc" validUntil="2023-08-06T13:59:09.000Z">
  <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
    <md:KeyDescriptor use="signing">
      <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
        <ds:X509Data>
          <ds:X509Certificate>MIIDdDCCA...REMOVED THE REST</ds:X509Certificate>
        </ds:X509Data>
      </ds:KeyInfo>
    </md:KeyDescriptor>
    <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://accounts.google.com/o/saml2/idp?idpid=C03tzverc"/>
    <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://accounts.google.com/o/saml2/idp?idpid=C03tzverc"/>
  </md:IDPSSODescriptor>
</md:EntityDescriptor>

Вот полный стек:

[InvalidOperationException: последовательность не содержит элементов] System.Linq.Enumerable.First (IEnumerable`1источник) +264 Microsoft.IdentityModel.Protocols.d__1.MoveNext () в c: \ workspace \ WilsonForDotNet45Release \ src \ Microsoft.IdentityModel.Protocol.Extensions \ Configuration \ WsFederationConfigurationRetriever.cs: 100 System.Runtime.TrowserAЗадача задачи) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача задачи) +58 System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (Задача задачи) +25 Microsoft.IdentityModel.Protocols.x3. (in.рабочее пространство \ WilsonForDotNet45Release \ src \ Microsoft.IdentityModel.Protocol.Extensions \ Configuration \ ConfigurationManager.cs: 198

[InvalidOperationException: IDX10803: Невозможно создать для получения конфигурации из: 'УДАЛЕНО ДЛЯ ПРИЧИН БЕЗОПАСНОСТИ'.] Microsoft.IdentityModel.Protocols.d__3.MoveNext () в c: \ workspace \ WilsonForDotNet45Release \ src \ Microsoft.IdentityModel.Protocol.Extensions \ Configuration \ ConfigurationManager.cs: 212 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) + время работы системы задач. + SystemC.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) +58 Microsoft.Owin.Security.WsFederation.d__c.MoveNext () +432 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (резервная задача). Служебная служба.Задача задачи) +58 Microsoft.Owin.Security.Infrastructure.d__b.MoveNext () +282 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задачи) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuggerMicrosoft.Owin.Security.Infrastructure.d__8.MoveNext () +275 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) +58 Microsoft.Owin.Security.Infrastructure.d__5.MoveNext () +160 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) +99 System.Runtime.CompilerServices.TccesskAwaiter.HugleND+58 Microsoft.Owin.Security.Infrastructure.d__0.MoveNext () +815 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (целевая задача) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAgnault.Og.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () +182 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAInfrastructure.d__0.MoveNext () +638 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача задачи) +58 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.d__5.MoveNext () +182 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (целевая задача) +99 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSug.SystemWeb.IntegratedPipeline.d__2.MoveNext () +180Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.StageAsyncResult.End (IAsyncResult ar) +69 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.EndFinalWork (IAsyncResult ar )Exp.IExecutionStep.Execute () +380 System.Web.HttpApplication.ExecuteStepImpl (шаг IExecutionStep) +48 System.Web.HttpApplication.ExecuteStep (шаг IExecutionStep, логический и завершенный синхронно) + 159

...