Мы с коллегой пытаемся включить OAuth в ADFS 2.2. Все работает, за исключением того, что сервер возвращает только токен доступа (с истечением срока действия) и не включает токен обновления после успешного входа в систему. По этому поводу очень мало документации, но кто-нибудь знает, какие настройки нужно обновить, чтобы возвращать токены обновления?
Редактировать: В предлагаемая спецификация OAuth 2.0 состояния:
Выпуск токена обновления не является обязательным по усмотрению сервера авторизации. Если сервер авторизации выдает токен обновления, он включается при выдаче токена доступа
Поскольку я получаю токен доступа, но не обновляю токен, и поскольку ADFS в настоящее время реализует только поток кода OAuth, я предполагаю, что команда ADFS решила не возвращать токены обновления. Я хотел бы услышать это окончательно.
Редактировать: Как сказал Трэвис ниже, убедитесь,
IssueOAuthRefreshTokensTo
установлен правильно AlwaysRequireAuthentication
ложноTokenLifetime
ниже, чем ADFS ' SSOLifetime
В объекте проверяющей стороны ADFS есть переключатель конфигурации с именем IssueOAuthRefreshTokensTo, который определяет, на какой тип устройств отправляются маркеры обновления. По умолчанию это значение установлено на «NoDevice», что означает, что ADFS не будет выпускать токены обновления. Возможные значения:
Помимо проверки, разрешает ли проверяющая сторона выпуск токенов обновления, ADFS также проверяет следующее.
Можете ли вы также убедиться, что вы отправляете допустимый параметр ресурса в запросе авторизации?
В ADFS есть журнал отладки. Если вы можете воспроизвести это поведение в непроизводственной системе, самым простым способом определения проблемы может быть включение журналов отладки.
В этой статье рассказывается, как включить журналы отладки в системе ADFS 2.0. ADFS 3.0 (2012 R2) аналогичен, имена узлов немного отличаются, и вам не нужно включать трассировку WIF или WCF в файле конфигурации.