Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010 STS错误“;代币的发行人不是受信任的发行人。”;_Sharepoint 2010_X509certificate_Wif_Sts Securitytokenservice - Fatal编程技术网

Sharepoint 2010 STS错误“;代币的发行人不是受信任的发行人。”;

Sharepoint 2010 STS错误“;代币的发行人不是受信任的发行人。”;,sharepoint-2010,x509certificate,wif,sts-securitytokenservice,Sharepoint 2010,X509certificate,Wif,Sts Securitytokenservice,首先,这里是我的环境: SharePoint 2010 Windows Server 2008标准 这是我本地电脑上的VHD 机器 我连接到我的工作领域我也连接到 VPN也是因为我需要的一些资源需要它 所以我在SharePoint中有一个用于SSO的STS STS是通过PowerShell cmdlet创建的: $cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2("c:\Ident

首先,这里是我的环境:

  • SharePoint 2010
  • Windows Server 2008标准
  • 这是我本地电脑上的VHD 机器
  • 我连接到我的工作领域我也连接到
  • VPN也是因为我需要的一些资源需要它
所以我在SharePoint中有一个用于SSO的STS

STS是通过PowerShell cmdlet创建的:

$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网站的Internet区域,我已将上面创建的受信任身份提供程序作为声明身份验证类型

当我登录时,一切都很顺利,直到我在代码中找到这一行, FederatedPassiveSecurityTokenServiceOperations.ProcessSignInResponse(signInResponseMessage,Response)

但是,根证书位于本地计算机上计算机帐户的MMC证书管理单元中的受信任根证书颁发机构中。 此外,根证书在SharePoint中被认为是受信任的。我通过中央管理->安全->管理信任添加了它


你知道为什么我仍然会出现这个错误吗?

你有一个STS在运行吗

新SPTrustedIdentityTokenIssuer的文档中说它“在服务器场中创建了一个身份提供者”。这在我看来似乎措词不当。它实际上并没有创建一个新的STS。新的SPTrustedIdentityTokenIssuer真正做的是配置sharepoint和现有第三方身份提供程序之间的信任关系。比如说,

LiveID:

或ADF:


您有运行STS的计算机吗

新SPTrustedIdentityTokenIssuer的文档中说它“在服务器场中创建了一个身份提供者”。这在我看来似乎措词不当。它实际上并没有创建一个新的STS。新的SPTrustedIdentityTokenIssuer真正做的是配置sharepoint和现有第三方身份提供程序之间的信任关系。比如说,

LiveID:

或ADF:


问题在于最初使用的证书不是来自我开发的域。对于本地开发,创建了自签名证书,然后信任颁发者。此证书已添加到本地Sharepoint场的管理信任存储。

问题是最初使用的证书不是来自我开发的域。对于本地开发,创建了自签名证书,然后信任颁发者。此证书已添加到本地Sharepoint场的管理信任存储。

是的,有一个STS正在运行。如果我在本地进行开发,我可以为它创建一个可信的证书,而不是使用客户端提供给我的证书吗?啊,我明白了。是的,您可以使用自己的证书,只要它链接到受信任的根证书,或者它本身作为受信任的根证书添加到sharepoint服务器上。是的,有一个STS正在运行。如果我在本地进行开发,我可以为它创建一个可信的证书,而不是使用客户端提供给我的证书吗?啊,我明白了。是的,您可以使用自己的证书,只要它链接到受信任的根证书,或者它本身作为受信任的根证书添加到sharepoint服务器上。
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)