Ошибка STS "Эмитент токена не является доверенным."

Итак, для начала, вот моя среда:

  • SharePoint 2010
  • Windows Server 2008 Standard
  • Это VHD на моей локальной машине
  • Я подключен к моей рабочей области Я также подключен к
  • VPN, потому что некоторые ресурсы мне нужны

Так что у меня есть STS в SharePoint для единого входа

STS создается с помощью командлетов PowerShell:

$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\IdentityServer.cer")
$map1 = New-SPClaimTypeMapping -IncomingClaimType "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" –SameAsIncoming

# $map2 ... $mapN

$realm = "urn:mycompany:software"
$signinurl = "https://somesignin.com/FederationProvider/"

$ap = New-SPTrustedIdentityTokenIssuer -Name "MyFederationProvider" -Description "My Fed Provider" -Realm $realm -UseWReply -ImportTrustCertificate $cert -ClaimsMappings $map1 -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType

Для интернет-зоны моего сайта SharePoint у меня есть доверенный поставщик удостоверений, созданный выше как тип проверки подлинности на основе утверждений.

Когда я вхожу в систему, все идет хорошо, пока я не нажму эту строку в коде, FederatedPassiveSecurityTokenServiceOperations.ProcessSignInResponse(signInResponseMessage, Response);

The error I get is:
Exception information: 
    Exception type: SecurityTokenException 
    Exception message: The issuer of the token is not a trusted issuer. 

Request information: 
    Request URL: https://mySharePointSite.com:443/_trust/default.aspx 
    Request path: /_trust/default.aspx 
    User host address: 127.0.0.1 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: MyDomain\ThreadAccount

Thread information: 
    Thread ID: 10 
    Thread account name: MyDomain\ThreadAccount
    Is impersonating: False 
    Stack trace:    at Microsoft.SharePoint.IdentityModel.SPTrustedIssuerNameRegistry`1.GetIssuerName(SecurityToken securityToken)
   at Microsoft.SharePoint.IdentityModel.SPPassiveIssuerNameRegistry.GetIssuerName(SecurityToken securityToken)
   at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.CreateClaims(SamlSecurityToken samlSecurityToken)
   at Microsoft.IdentityModel.Tokens.Saml11.Saml11SecurityTokenHandler.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 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Однако корневой сертификат находится в доверенных корневых центрах сертификации в оснастке сертификатов MMC для учетной записи компьютера на локальном компьютере. Кроме того, корневой сертификат считается доверенным в SharePoint. Я добавил его через Центр администрирования-> Безопасность-> Управление доверием.

Есть идеи, почему я все еще получаю эту ошибку?

2 ответа

Решение

Проблема заключалась в том, что используемый сертификат изначально был не из домена, на котором я разрабатываю. Для локального развития был создан самозаверяющий сертификат, а затем издателю был доверен. И этот сертификат был добавлен в хранилище доверенных сертификатов моей локальной фермы Sharepoint, http://onpointwithsharepoint.blogspot.ca/2012/11/managing-trust-certificates-by-using.html.

У вас есть STS, работающий по адресу https://somesignin.com/FederationProvider/?

В документации для New-SPTrustedIdentityTokenIssuer говорится, что он "создает провайдера идентификации в ферме". Это кажется мне плохо сформулированным. На самом деле это не создает новый STS. Что действительно делает New-SPTrustedIdentityTokenIssuer, так это настраивает доверительные отношения между sharepoint и существующим сторонним поставщиком удостоверений. Например,

LiveID:

http://technet.microsoft.com/en-us/library/ff607628.aspx

или ADFS:

http://msdn.microsoft.com/en-us/library/hh446525.aspx

Другие вопросы по тегам