2014-04-12 7 views
8

Ho creato una semplice webapp in cui ho creato dinamicamente una richiesta di accesso e invio al mio server ADFS. Al ritorno mi sto reindirizzando all'URL di un'altra app che ho configurato nel mio server iis [lo stesso URL è configurato anche nel server ADFS]. Ma unfaurtunately sto ottenendo il messaggio di errore come segueAudienceRestrictionCondition non era valido perché il pubblico specificato non è presente in AudienceUris

<i>` 
issuerLocation = "https://test12.login.mytest.edu/adfs/ls/"; 
       realm = "https://domain/SSO_Test/";   
       this.Request.Url.AbsoluteUri.Remove(this.Request.Url.AbsoluteUri.IndexOf(this.Request.Url.Query, StringComparison.OrdinalIgnoreCase)); 
      var contextId = Guid.NewGuid().ToString(); 
      this.CreateContextCookie(contextId, this.Request.Url.AbsoluteUri); 

      var message = new SignInRequestMessage(new Uri(issuerLocation), realm) 
           { 
            CurrentTime = DateTime.UtcNow.ToString("s", CultureInfo.InvariantCulture) + "Z", 
           }; 

      this.Response.Redirect(message.RequestUrl, false); 


ID1038: The AudienceRestrictionCondition was not valid because the specified Audience is not present in AudienceUris. 
Audience: 

Please help me

+0

Sono molto nuovo ad adfs. Ho installato il mio server adfs, ho configurato il trust relying party con il protocollo saml. E nel codice mvc asp.net, non so, come gestire l'autenticazione basata su saml nel metodo di callback. per il relying party basato su ws-fedaration sono in grado di analizzare le informazioni dell'utente usando l'oggetto ClaimsPrincipal.Current ma come fare per il protocollo basato su saml. Mi aiuti per favore. – Mohan

risposta

9

Se ho ben capito la tua situazione, hai un relying party (il vostro webapp) inviando a un (server ADFS) provider di identità, e una volta che la relying party (la tua webapp) si è autenticata, stai reindirizzando l'utente a un'altra app.

L'errore fa riferimento alla sezione AudienceUri del file di configurazione della relying party. Un valore è probabilmente manca o è errato:

<configuration> 
    <system.identityModel> 
    <identityConfiguration> 
     <audienceUris> 
     <add value="http://**YourSiteHere**/" /> 
     </audienceUris> 
    </identityConfiguration> 
    </system.identityModel> 
</configuration> 

HTH

+0

Sono stato un po 'più di una volta da un "/" in coda che ha bisogno di essere lì o meno. – psaxton

+0

@caPorter, \t Sono molto nuovo ad adfs. Ho installato il mio server adfs, ho configurato il trust relying party con il protocollo saml. E nel codice mvc asp.net, non so, come gestire l'autenticazione basata su saml nel metodo di callback. per il relying party basato su ws-fedaration sono in grado di analizzare le informazioni dell'utente usando l'oggetto ClaimsPrincipal.Current ma come fare per il protocollo basato su saml. Mi aiuti per favore. – Mohan

+0

Salve @Mohan, se hai ancora domande, se invii la tua domanda su StackOverflow e fammi sapere, sarei lieto di aiutarti. – CaPorter

2

volte potrebbe essere a causa della barra finale "/" ... che era il problema nel mio caso. Copiato l'URL dal messaggio di errore e aggiunto a audience Uris, e ha iniziato a funzionare bene.

+0

Voglio integrare la mia applicazione asp.net mvc per l'autenticazione adfs con protocollo basato su saml. Ho fatto con successo per il mio server adfs con protocollo ws-federation e tuttavia sono in grado di leggere i dettagli della risposta usando ClaimsPrincipal. Ma ho fallito quando uno dei miei clienti mi inviava una risposta basata su saml, su come convalidare e filtrare le attestazioni nel metodo callback. Mi aiuti per favore. – Mohan