Ответ 1
Просто, чтобы прояснить поток
- Пользователь подписывается с использованием простой старой пары имени пользователя и пароля. Ему также предлагается ввести хотя бы один открытый ключ (другие могут быть добавлены позже из панели администрирования профиля).
- Сервер хранит открытый ключ пользователя и связывает его со своим пользователем в сертификате
- В следующий раз, когда клиент делает запрос, представляющий свой сертификат (это должно обрабатываться браузером, таким образом, прозрачно для пользователя), механизм SSL на стороне сервера проверяет, знает ли он клиента и если он выполняет запрос и код приложения будет аутентифицировать и авторизировать пользователя, поскольку он знает ссылку между открытым ключом и пользователем. Если клиент не идентифицирован, сервер должен перенаправить на какую-либо страницу, чтобы разрешить вход или ручной вход (возможно, чтобы добавить новый открытый ключ).