Привет ! Добрый день, у меня вопрос по плагину OpenID Connect.
Я пытаюсь использовать ID Uruguay (государственного провайдера OpenID Connect) с Discourse. Я зарегистрировался на тестовом сервере, и они предоставили мне необходимые данные.
Весь процесс, кажется, работает корректно, за исключением обратного вызова: похоже, что поле Issuer, переданное в JWT, не совпадает с данными в документе обнаружения (discovery document).
Я уже связался со службой поддержки, и они сказали, что ошибка, по сути, находится на стороне Discourse (что, на мой взгляд, неверно).
Возможно ли каким-то образом добавить другое значение в параметр «ожидаемый издатель» (expected issuer)?
Исходя из расположения документа обнаружения, необходимо исходить из того, что издателем является https://auth-testing.iduruguay.gub.uy/oidc/v1, поскольку документ обнаружения представляет собой URL издателя с добавленным в конец /.well-known/openid-configuration.
Теперь сам документ указывает: issuer "https://auth-testing.iduruguay.gub.uy".
Оба требования в последнем предложении не выполнены. Значение утверждения iss идентично URL издателя, использованному для получения конфигурации, но ни одно из них НЕ идентично возвращённому значению issuer.
Так что, насколько я понимаю, они ошибаются, а вы правы. Жаль, что это не поможет вам продвинуться в решении проблемы.
Я сообщил об этом и привязал ссылку к вашему ответу, буду ждать ответа от поддержки ID Uruguay .
Сейчас я использую pastebin с правильным издателем (в любом случае, это было для тестирования), и всё, кажется, работает корректно. Надеюсь, что команда поддержки сможет решить эту деталь до перехода в режим Production для ID Uruguay.
Я создал «прокси» для документа обнаружения, который изменяет возвращённый издатель, и это тоже «просто работает». Я сообщил об этом, и они приняли моё решение
Мне кажется, что в будущем это перестанет работать, так как не соответствует спецификациям, но пока всё в порядке.