Domanda

Ho questo CloudShare Environment composto da 3 macchine:

È stato utile?

Soluzione

Per semplicità indicherò l'ovvio!

.

L'utente non è autenticato e la risorsa richiede l'autenticazione

Questo mi dice che c'è qualcosa di sbagliato in corso con la mano che agita (il tuo certificato non viene inviato o sbagliato), come è un prodotto Microsoft il posto migliore è guardare MSDN.

Per chiarire per favore, leggere questo:

.

Il passo seguente è facoltativo. Tuttavia, ti consigliamo di sviluppare e prova con HTTPS acceso. Spegnere HTTPS potrebbe causare te come a Sviluppatore per perdere determinati problemi durante la creazione di un'app che si verificherebbe Durante una distribuzione della produzione in cui è richiesto HTTPS

Ora leggi la nota, leggi il problema che hai!

.

Oauth ora richiede SharePoint per eseguire HTTPS, non solo per il tuo servizio Ma anche per SharePoint 2013. Otterrai un messaggio 403 (proibito) Quando si tenta di effettuare una chiamata a SharePoint utilizzando un test certificato.

Sul computer in cui è stato installato SharePoint 2013, è possibile girare off il requisito https durante lo sviluppo utilizzando quanto segue I cmdlet di Windows PowerShell.

Quindi questo è il tuo problema proprio lì! per aggirarlo mentre si sviluppano lo sviluppo di:

Questo a PowerShell per il test / lo sviluppo:

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()
.

Una volta finito ritorna a come è stato!

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $false
$serviceConfig.Update()
.

Ora vorrei anche notare:

.

In un'applicazione di alto trust, non ci sono token di contesto, anche se usi il file apprerererect.aspx. Il token del contesto è specifico per le configurazioni Quello utilizzare Windows Azure Access Control Service (ACS). Tuttavia, An. Il token di accesso è comunque richiesto. Se stai usando un alto trust Configurazione, l'applicazione Web deve autenticare l'utente in Lo stesso modo in cui SharePoint 2013 fa (cioè, l'app è Responsabile della creazione della porzione utente del token di accesso).

Stai usando la classe tokenhelper per ottenere il clienteContext?

        using (var clientContext = TokenHelper.GetS2SClientContextWithWindowsIdentity(hostWeb, Request.LogonUserIdentity))
        {
            clientContext.Load(clientContext.Web, web => web.Title);
            clientContext.ExecuteQuery();
            Response.Write(clientContext.Web.Title);
        }
.

Anche cosa stai cercando di fare esattamente come potresti aver bisogno di più permessi a seconda di cosa stai facendo!

.

Per accedere ad altre proprietà, potrebbe essere necessario richiedere le autorizzazioni sul Web host.

http://msdn.microsoft.com/en-us/library/fp179901.aspxeking/ A>

Spero che quanto sopra risponda alla tua domanda! È necessario assicurarsi che quanto sopra sia fatto correttamente per il lavoro!


.

Se ciò è ancora un problema rispetto al suo qualcosa in errore con il GUID che viene emesso da VS2012, che viene inviato automaticamente quando si preme F5, questo è impostato in Web.config su questa riga:

<add key="IssuerId" 
.

Modificare il GUID dalla maiuscolo in minuscolo:

Da:

<add key="IssuerId" value="F2AE6B96-1FC0-43C6-B5D0-900117C491A4"/>
.

a

<add key="IssuerId" value="f2ae6b96-1fc0-43c6-b5d0-900117c491a4"/>
.

Ovviamente il tuo GUID sarà diverso da sopra;)

piace anche notare che hai bisogno di un certificato unico per ogni singola app! Assicurati inoltre che il GUID sia lo stesso del PowerShell GUID utilizzando Get-SPTrustedSecurityTokenIssuer dovrebbe essere lo stesso del Web.Config!

http:// www .jamestsai.net / blog / post / sharepoint-provider-hosted-app-401-non autorizzato-error-on-clientcontextexecutequery (). aspx

Aggiornamento

Ho appena guardato il tuo file di registro!

per rompere il suo fallimento subito con l'autenticazione! Quale metodo stai usando? ntlm? Kerbos? ect ...

Questo è fondamentale per sapere come si ha configurato la tua azienda agricola e autenticazione!

Ora ci potrebbero essere diversi problemi in corso qui dall'aspetto degli errori! Ti consiglio di leggere i link qui sotto! Consiglio vivamente una volta che hai letto i collegamenti che se tutto è corretto nella configurazione per eseguire New-SPTrustedSecurityTokenIssuer Questo esempio può essere trovato nel mio ultimo collegamento nella parte inferiore della pagina! Questo potrebbe risolvere il problema con la parte del token e la handshaking corretta tra due server (convalidandoti a vicenda).

1) Il token non viene inviato a causa delle impostazioni di sicurezza che non sono compatibili!

.

Se si utilizza la modalità Reclami di Windows per l'autenticazione dell'utente e il L'applicazione Web è configurata per utilizzare solo l'autenticazione Kerberos Senza cadere a NTLM come protocollo di autenticazione, quindi app L'autenticazione non funziona.

http://technet.microsoft.com/en-us/library/ee806870.aspxeled/ A>

o / e

2) L'utilizzo del server per l'auth per server, è qui che potrebbe sbagliare! Hai il tuo profilo è stato sincronizzato ??

Per il server 2013 al server Assicurarsi che le iscrizioni del gruppo siano sincronizzate con l'applicazione del servizio Profilo utente.

.

Se esiste un profilo utente per un utente e il gruppo del gruppo pertinente

ps. non sono sincronizzati, l'accesso può essere negato quando l'utente è supposto da concedere l'accesso per una determinata risorsa. Pertanto, assicurati che Le iscrizioni al gruppo sono sincronizzate con il servizio del profilo dell'utente Applicazione.

http://technet.microsoft.com/en-us/library/jj219806.aspxeleth/ A>

Ora è necessario per il server per il server di configurazione del server per funzionare!

.

Autenticazione server-to-server consente ai server che sono in grado di Autenticazione server-to-server per accedere e richiedere risorse da l'un l'altro per conto degli utenti. Pertanto, il server che funziona SharePoint Server 2013 e che i servizi sono la richiesta di risorse in entrata Deve essere in grado di completare due compiti:

Per reidratare l'identità dell'utente, un server che può eseguire Autenticazione server-to-server richiede l'accesso a SharePoint risorse. SharePoint Server 2013 prende le rivendicazioni dall'incoming Security token e risolverlo a uno specifico utente di SharePoint. Di Default, SharePoint Server 2013 utilizza il servizio del profilo utente integrato Applicazione per risolvere l'identità.

E il risultato di quanto sopra è:

.

Se un profilo utente e le iscrizioni del gruppo pertinenti per l'utente sono Non sincronizzato, SharePoint Server 2013 potrebbe negare in modo errato l'accesso a una determinata risorsa. Pertanto, assicurati che le iscrizioni del gruppo siano sincronizzato con l'applicazione del servizio del profilo utente. Per Windows. Reclami, l'applicazione del servizio del profilo utente importa il quattro utente chiave Attributi descritti in precedenza e membri del gruppo.

http://technet.microsoft.com/en-us/library/jj729797.aspxeled/ A>

Punto Essere è il token e l'autenticazione non funziona correttamente perché la configurazione è sbagliata con il tipo di sicurezza o la configurazione! Sapendo ciò che hai fatto determinerà dove va storto! Chiaramente sembra che il server per l'autenticazione del server venga respinto mentre il token non viene inviato correttamente.

Se credi che il protocollo di autenticazione sia corretto di, è possibile seguire questa guida una volta leggi i link sopra:

http://technet.microsoft.com/en-us/library/jj655400.aspxeleth/ A>

Link sopra spiega e dimostra il server ai passaggi del server per specifici Senarios

Per creare una fiducia tra due server (crea una fiducia tra un server al server del server.)

Segui questa guida! Usando New-SPTrustedSecurityTokenIssuer

http://technet.microsoft.com/en-us/library/jj219695.aspxetry/ A>

Scusa per il testo lungo e molti collegamenti! Come il suo server al server e il registro è generico / configurazione posso darti una risposta definitiva! Ma quello che so è che la handshaking tra due server sta andando male, il che significa che hai perso qualcosa con la configurazione iniziale! I collegamenti sopra riportati dovrebbero risolvere la tua questione tra handshaking per passare le credenziali corrette per funzionare correttamente!

Altri suggerimenti

Ho avuto problemi simili.Invece di usare clientcontext o tokenhelper, sono passato al nuovo SharePointContext che puoi leggere qui: http://blogs.msdn.com/b/kaevans/archive/2013/09/24/introducing-sharepointContext-for-Provider-Hosted-SharePoint-apps.aspx

Una volta ho realizzato questo interruttore, i miei problemi 401 e 403 sono scomparsi.Il nuovo SharePointContext utilizza il tokenhelper sottostante, quindi assicurati di avere anche l'ultima versione del file tokenhelper.

Penso di sapere qual è il tuo problema, i punti di registro del server su Client / Server Machine non hanno il tempo in sincronia.

"SPApplicationAuthenticationModule: No valid access token exists in the Authorization header, you should see a 401 challenge as a response to this request."

"SPSecurityTokenExtensions: Not Valid Before:10/11/2013 21:15:38, Valid To:09/06/2015 07:55:38."
.

Avevo affrontato un errore simile a pochi giorni di ritorno e la risoluzione era di avere il server e il tempo della macchina del client per essere sincronizzati.

Foundation  Application Authentication ajezq High SPApplicationAuthenticationModule: 
Error authenticating request, Error details: 
Header: 3000002;reason="The access token has expired.
It's valid from '4/29/2015 2:50:44 PM' and to '4/30/2015 2:50:44 AM'.";
category="invalid_client", Body: {"error_description":"Invalid JWT token. The token is not yet valid. 
Current time is 4\/29\/2015 10:44:25 AM and the token is Valid from 4\/29\/2015 2:50:44 PM."}  
.

Come impostare il tempo della macchina in sincronizzazione con Internet

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top