У нас установлена Discourse с доступом только по приглашениям. При отправке приглашения приглашённый должен иметь возможность принять его только при наличии определённого клиентского сертификата в браузере.
Есть ли какие-либо подсказки, как это реализовать?
Возможно ли также использовать поле сертификата и сохранить его в экземпляр пользователя как поле пользователя? Например, если мы хотим сохранить дату истечения срока действия, можем ли мы это сделать?
Сценарий использования следующий: у нас есть организация, которая аутентифицирует компании с помощью этих клиентских сертификатов. Мы пытаемся создать экземпляр Discourse, доступ к которому получат только эти компании. Судя по фрагменту nginx, предоставленному @michaeld, это должно быть довольно просто.
В сертификате также указан номер компании. Мы хотели бы извлекать этот номер и делать его доступным в экземпляре Discourse. Так компании смогут легко находить друг друга, и их можно будет идентифицировать только по номеру.
Надеюсь, теперь всё понятно. Если нет — не стесняйтесь спрашивать.
Можно ли рассчитывать на то, что сотрудники этих компаний будут использовать корпоративные адреса электронной почты? Это было бы намного проще, чем плагин, способный читать сертификат. Вы даже могли бы сопоставить его обратно с номером компании, если этот номер каким-то образом очень важен.