Domanda

Sto cercando di risolvere questo problema per un po 'senza fortuna, potrebbe essere qualcuno con più esperienza di SharePoint sarà in grado di individuare il mio problema.

Stacktrace di eccezione nei registri di SharePoint Sembra questo:

System.IdentityModel.Tokens.SecurityTokenException: The issuer of the token is not a trusted issuer.    
at Microsoft.SharePoint.IdentityModel.SPLocalIssuerNameRegistry.GetIssuerName(SecurityToken securityToken)     
at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.CreateClaims(SamlSecurityToken samlSecurityToken)     
at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.ValidateToken(SecurityToken token)     
at Microsoft.IdentityModel.Tokens.SecurityTokenHandlerCollection.ValidateToken(SecurityToken token)     
at Microsoft.IdentityModel.Web.TokenReceiver.AuthenticateToken(SecurityToken token, Boolean ensureBearerToken, String endpointUri)     
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequest request)     
at Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args)     
at Microsoft.SharePoint.IdentityModel.SPFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs eventArgs)     
at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()     
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
.

Ho guardato il codice decompilato, sembra questo:

 if (!accessProvider.SigningCertificate.Equals((X509Certificate) x509SecurityToken.Certificate))
    throw new SecurityTokenException(SPResource.GetString("IssuerIsNotTrusted"));
.

Quindi sembra che il token di sicurezza ricevuto e i certificati di accesso di accesso non corrispondono.Sono andato oltre, ha fatto schox dump, caricato in Windbg e ho provato a trovare quale certificato ha AccessProvider, non sono sicuro se stavo cercando nel posto giusto, ma se lo fossi, allora aveva un certificato sbagliato - il soggetto è stato CN=SharePoint Security Token Service, OU=SharePoint, O=Microsoft, C=US, chiaramente non mio configurato.

Stavo registrando il fornitore di identità miniera come questo:

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("C:\temp\wcfsts.dev.cer")
$map1 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Display Name" –SameAsIncoming
$realm = "http://sp2013.testweb.local"
$ap = New-SPTrustedIdentityTokenIssuer -Name "WSFederationSTS" -Description "WCF STS." –Realm $realm -ClaimsMappings $map1 -ImportTrustCertificate $cert -SignInUrl "http://wcfsts.dev/WSFederationSecurityTokenService.svc/Issue" -IdentifierClaim $map1.InputClaimType
.

Ho anche il certificato registrato con New-SPTrustedRootAuthority.

È stato utile?

Soluzione

Ho trovato il problema accidentalmente, guardando quello che avrei potuto sbagliare.
Stavo cercando di Reclami walkthrough e notato, che registrano l'emittente del token utilizzando il codice C #, così deciso di fare lo stesso e hanno usato il regno del provider " https://intranet.contoso.com/_trust/ ", quindi l'ho appena cambiato per avere il mio dominio, lasciando parte" _trust "- e ha iniziato a lavorare, quindi l'eccezione nei registri è stata molto fuorviante. Dopo questo, ho trovato Blog post con lo stesso problema, chiedendo perché non l'ho notato prima.

.

Altri suggerimenti

Stavo seguendo alcune istruzioni da questo link: https://support.microsoft.com/en-us/help/3042604/the-convert-spwebapplication-command-cannot-convert-from-windows-claim

ha utilizzato il seguente formato per il comando New-SpRisidIdentityTokenissuer:

$ap = New-SPTrustedIdentityTokenIssuer -Name $tokenIdentityProviderName -Description $TrustedIdentityTokenIssuerDescription -realm $siteRealm -ImportTrustCertificate $adfsCert -SignInUrl $signInUrl -UseDefaultConfiguration -IdentifierClaimIs EMAIL -RegisteredIssuerName $siteRealm
.

Non ero sicuro di cosa mettere per il Registratore, e in precedenza lo avesse lasciato vuoto quando funzionava, ma in questo caso lo metto allo stesso modo del $ tokenidentityprovidername.

Ho iniziato a ottenere l'errore "L'emittente del token non è un errore di emittente fidato" dopo.

Ho cancellato il valore per il RegarsoSuername:

Set-SPTrustedIdentityTokenIssuer -Identity $ap  -RegisteredIssuerName ""
.

e questo ha risolto il problema per me.

Credo che per il RegolareISSuename funzioni, potrebbe essere necessario aggiungere un'entrata di iscrizione all'emittente alla rete Web.config per specificare gli emittenti di token attendibili.

<issuerNameRegistry 
  type="Microsoft.IdentityModel.Tokens.ConfigurationBasedIssuerNameRegistry,
  Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, 
  PublicKeyToken=31bf3856ad364e35">
  <trustedIssuers>
      <add thumbprint="99fcfe2c70ebb571020ca8aa1b7633dfe1fa1d58" name="http://localhost:48924/WingtipSTS/" />
  </trustedIssuers>
</issuerNameRegistry>
.

Source aggiuntiva: https: / /docs.microsoft.com/en-us/previous-versions/office/developer/sharepoint-2010/ff955607(v=office.14)

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