使用OAuth2S2SClient时,TokenHelper.GetAccessToken()处的令牌请求失败



我创建了一个SharePoint提供商托管的应用程序,当我发布并添加到网站时,它运行良好。我创建了一个CName,并使用appregnew页面注册,部署了云服务项目,安装并添加了应用程序。我在进行身份验证[SharePointContextFilter]的页面上遇到了相同的错误。未进行身份验证的页面[SharePointContextFilter]工作正常。

以下是详细的错误:

出现错误。令牌请求失败。内部:System.Net.WebException:远程服务器返回错误:(400)错误请求。在Microsoft.IdentityModel.S2S.Protocols.OAuth2.OAuth2S2SClient.Issue的System.Net.HttpWebRequest.GetResponse()上(字符串securityTokenServiceUrl,OAuth2AccessTokenRequest oauth2Request)位于PasswordResetAppWeb.TokenHelper.GetAccessToken(字符串refreshToken,字符串targetPrincipalName,字符串targetHost,字符串targetRealm),位于PasswordResetAppWeb.SharePointAcsContext.ReweAccessTokenIfNeeded(元组2& accessToken, Func 1 1 tokenRenewalHandler)。SharePointAceContext.GetAccessTokenString(元组2& accessToken, Func 1 tokenRenewalHandler)位于PasswordResetAppWeb.Controllers.PasswordProfilesController.Index()Stacktace:MicrosoftIdentityModel.Extensions

知道我做错了什么吗?

我在使用appregnew.aspx注册应用程序时使用了Cname URL,在打包应用程序时也使用了Cname URL。我在这里做错了什么?

任何建议都很好。。提前感谢!!

我得到了它。我没有正确地将客户端机密id复制到web.config。它中有一个空间,这导致了问题。

因此,将别名添加到云服务中托管的共享点应用程序的步骤是正确的:

使用新的CName注册应用程序,在webconfig中更改客户端ID和客户端机密并进行部署,使用CName和客户端ID打包应用程序并安装和添加应用程序。请确保您的客户端ID和客户端机密已正确复制。

编辑7/2022:我再次出现完全相同的错误,这次我通过启用TLS 1.2修复了它。

        // Get token
        OAuth2S2SClient client = new OAuth2S2SClient();
        OAuth2AccessTokenResponse oauth2Response;
        const SslProtocols _Tls12 = (SslProtocols)0x00000C00;
        const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12;
        ServicePointManager.SecurityProtocol = Tls12;
        try
        {
            oauth2Response =
                client.Issue(AcsMetadataParser.GetStsUrl(targetRealm), oauth2Request) as OAuth2AccessTokenResponse;
        }

相关内容

  • 没有找到相关文章

最新更新