SharePoint提供程序托管应用程序使用无效的JWT令牌退出

时间:2015-11-06 13:17:23

标签: jwt sharepoint-online sharepoint-apps

我们在SharePoint Online中运行了一个Provder Hosted应用程序。这已经运行了差不多一年(或两年)没有任何问题。

但是今天我们遇到了一个问题,即提供商托管应用无法创建SharePoint上下文。经过SAML检查后,我们发现秘密值已经过时了。

然后我们添加了一组新的密钥,其中包含本文中描述的新秘密: https://msdn.microsoft.com/en-us/library/office/dn726681(v=office.15).aspx (我还配置了web.config并拥有正确的TokenHelper.cs)

但是现在我发现了以下错误:

无效的JWT令牌。无法解析颁发者令牌。

我的JWT令牌得到以下标题:

{
  "typ": "JWT",
  "alg": "RS256",
  "x5t": "MnC_VZcATfM5pOYiJHMba9goEKY"
}

和这个有效载荷:

{
  "aud": "aefb17f0-e9d0-455e-ad3b-beb5ed917229/myapp.azurewebsites.net@38de6aa7-8463-4f48-a281-f6492da7fc88",
  "iss": "00000001-0000-0000-c000-000000000000@38de6aa7-8463-4f48-a281-f6492da7fc88",
  "nbf": 1446809939,
  "exp": 1446853139,
  "appctxsender": "00000003-0000-0ff1-ce00-000000000000@38de6aa7-8463-4f48-a281-f6492da7fc88",
  "appctx": "{\"CacheKey\":\"RSS44EdBaPB95yqMHVTPG6IjJmW9gTCXqB4cEBi5CPk=\",\"NextCacheKey\":null,\"SecurityTokenServiceUri\":\"https://accounts.accesscontrol.windows.net/tokens/OAuth/2\"}",
  "refreshtoken": "IAAAANkH_KL_8o5Ywirb8vICkixTM8ua3nUZhCqpyogpttXy3ovx7HUpgv7pvN8Uy-uVa53kc8gPy2onhFZZTD-6Tc9QcxNxnzSEW3LJdQ8Xdz2KwfMchFq0D0053qtjGQaJY6kt1DR6EcU2fnjrlpBWc2Zxy661GVFFHw4duK0SUNiFMo3OHvHcraXAsLMkWA_LBB9nR5z-u9GieKpBLB9GKiHxyxxuO1ByYgWJoHYCDFffwlsC-AH3TteywkFCBw70FUDw9FyWOVwOHKmUyxmsrGI8HZGuC-J7qa5LGl7villsW-AY-U_uZS-h0zB7iYQI2OVxJt6-KmMDbQkIJHR8XvI",
  "isbrowserhostedapp": "true"
}

在某些论坛中,我读到我必须等待12个小时,以便应用新生成的秘密。这是真的还是我做错了什么?

1 个答案:

答案 0 :(得分:0)

我最近遇到过类似的问题。秘密已过期,我按照您链接的文章中的步骤生成新秘密。那个秘密不起作用。我给了它8个小时,因为我读到它可能需要一段时间才能工作,但没有运气。

然后,我使用卖方信息中心as per this MSDN article更新了密码,这样做有效,但仅在几个小时之后。

奇怪的是,在卖家仪表板上我没有看到我使用PowerShell生成的秘密,如果我在PowerShell中列举了秘密,我就不会看到卖家仪表板上生成的秘密。全部使用相同的客户端ID。