Я пытаюсь реализовать цифровую подпись для входа в Интернет с помощью Laravel (php), и я не могу найти нужную информацию.
Я думаю, мне следует использовать x509 SSL, но я ничего не могу найти. Я только что обнаружил:
https://github.com/ingria/laravel-x509-auth/wiki/Using-other-cert-attributes
https://github.com/ndavison/laravel-clientcert/blob/master/ClientCertAuthMiddleware.php#L33
Но я в этом не уверен. Буду признателен за любую помощь.






Краткий ответ:
Вам необходимо настроить свой веб-сервер так, чтобы он запрашивал клиента, когда он подключается для получения сертификата клиента. Обычно это делается путем указания центра сертификации клиентов, от которого вы принимаете сертификат.
Раньше я писал контроллеры аутентификации в Laravel 5.x для клиентской аутентификации tls в сочетании с LDAP, в частности, с использованием пользовательских сертификатов служб сертификатов Windows Active Directory. Информация о внешних каталогах по-прежнему требуется после их аутентификации, например, для определения групповых разрешений.
Как только веб-сервер запрашивает и принимает сертификат клиента, ваше приложение должно выполнить ряд проверок, включая какой атрибут вы собираетесь использовать для уникальной идентификации пользователя? Отличительное имя LDAP? Основное имя пользователя? Атрибут сертификата не для Windows?
Используйте дампер сертификатов X509, например openssl -in client.cer -noout -text, чтобы просмотреть все атрибуты и решить, что вам нужно проверить и сопоставить с учетной записью пользователя в Laravel.
При этом большинство людей не полагаются только на сертификат пользователя (хотя это очень удобно для очень безопасной аутентификации, не требующей взаимодействия), они используют внешнего поставщика удостоверений через что-то вроде SAML или OAUTH.
В моем случае я использую Active Directory Azure на работе и регистрирую свои приложения в корпоративном AAD, а затем использую удобного поставщика услуг laravel, такого как https://github.com/metaclassing/PHP7-Laravel5-EnterpriseAuth, который был основан на laravel socialite для azure-ad и некоторых дополнительных сертификатов проверки подлинности.
Спасибо за ответ, но я не могу найти информацию о том, как искать сертификаты, когда пользователь находится в Интернете в laravel. Я имею в виду, я хочу попросить сертификаты пользователя, когда он вошел в сеть.