I ' m разработка системы, в которой пользователи смогут регистрироваться и впоследствии аутентифицироваться с помощью клиентских сертификатов в дополнение к аутентификации по имени пользователя и паролю.
Клиентские сертификаты должны быть действительными сертификатами, выданными настроенным списком центров сертификации, и будут проверяться ( проверено) при представлении.
На этапе регистрации мне нужно сохранить часть (и) клиентского сертификата в пользовательском репозитории (БД, LDAP и т. д.), чтобы я мог сопоставить пользователя, который аутентифицируется с клиентским сертификатом, с внутренний «пользователь».
Один довольно очевидный выбор - использовать отпечаток сертификата; Но одного отпечатка пальца недостаточно, поскольку могут возникнуть коллизии (даже если они маловероятны), поэтому нам нужно сохранить дополнительную информацию из сертификата. Этот вопрос SO также информативен в этом отношении.
RFC 2459 определяет (4.1.2.2), что серийный номер сертификата должен быть уникальным в пределах данного CA.
Со всем этим вместе взятым. , Я думаю о сохранении серийного номера сертификата и источника сертификата для каждого зарегистрированного пользователя. Учитывая, что сертификаты клиентов будут проверены и действительны, это должно однозначно идентифицировать каждый сертификат клиента. Таким образом, даже при обновлении сертификата клиента он останется действительным (серийный номер останется прежним, как и издатель).
Я что-то пропустил?