Приложение, размещенное у поставщика SharePoint, завершается с недопустимым токеном JWT

у нас работает приложение Provder Hosted в SharePoint Online. Это работает почти год (или два) без каких-либо проблем.

Но сегодня у нас возникла проблема, заключающаяся в том, что приложение, размещенное у поставщика, не может создать контекст 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 часов, чтобы новый сгенерированный секрет был применен. Это правда или я что-то не так?


person Sascha    schedule 06.11.2015    source источник


Ответы (1)


Недавно у меня была аналогичная проблема. Срок действия секрета истек, и я выполнил действия, описанные в статье, которую вы связали, чтобы создать новый секрет. Этот секрет не сработал. Я дал ему 8 часов, поскольку прочитал, что это может занять некоторое время, но не повезло.

Затем я обновил секрет с помощью панели инструментов продавца в соответствии с этой статьей MSDN, и это сработало, но только через несколько часов.

Как ни странно, на панели инструментов продавца я не вижу секрет, созданный с помощью PowerShell, и если я перечисляю секреты в PowerShell, я не вижу секрета, созданного на панели инструментов продавца. Все используют один и тот же идентификатор клиента.

person tardomatic    schedule 11.11.2015