Я использую Visual Studio 2015 Enterprise и ASP.NET vNext Beta8 для выпуска и использования токенов JWT, как описано here.Выход с AspNet.Security.OpenIdConnect.Server (ASP.NET vNext)
В нашей реализации мы сохраняем некоторые детали клиента в Redis при выпуске маркера, и мы хотели бы сбросить эту информацию при выходе пользователя из системы.
Мой вопрос - это то, что лучше всего подходит для выхода из системы OIDC?
Хотя я мог свернуть свой собственный контоллер для этой цели, я не мог не заметить, что Open ID Connect (OIDC) кажется несколько загрунтованным для обработки этого случая. Например, OIDC имеет обработчик OnLogoutEndpoint и LogoutEndpointPath. Но когда я вызываю URI OIDC logout, который, как представляется, обработчик принимает любую случайную форму x-www-form-urlencoded, которую я бросаю в нее и никоим образом не требую наличия токена.
Любые рекомендации относительно надлежащей практики выхода из системы OIDC будут очень оценены.
спасибо - просто из любопытства, если я использую событие LogoutEndpoint, почему это событие в конечной точке ожидает форму или, что более важно, то, что ожидается в этой форме? – 42vogons
Использование запроса POST/формы не является обязательным, вы также можете использовать один запрос GET. Я использовал форму здесь, потому что я хотел добавить поддержку анти-XSRF к конечной точке выхода, чтобы предотвратить нежелательный выход из системы (синдром «суперлогаут»). В качестве альтернативы вы также можете использовать 'id_token_hint' для этого: https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/issues/99#issuecomment-118515272 – Pinpoint
(FYI: начиная со следующей беты, мы По умолчанию перестают использовать токены доступа JWT и возвращаются к непрозрачным маркерам. Для получения дополнительной информации см. https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/issues/185) – Pinpoint