【问题标题】:cert x509 Laravel auth SSL证书 x509 Laravel 身份验证 SSL
【发布时间】:2019-01-03 02:17:57
【问题描述】:

我正在尝试实现数字签名以使用 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

但我不确定。我将不胜感激。

【问题讨论】:

    标签: php laravel ssl digital-signature x509certificate


    【解决方案1】:

    简短的回答:

    您需要配置您的 Web 服务器以在客户端连接时质询客户端以获取客户端证书。这通常通过指定您接受证书的客户端证书颁发机构来完成。

    我之前在 Laravel 5.x 中为客户端 tls auth 结合 LDAP 编写了身份验证控制器,特别是使用 Windows 活动目录证书服务用户证书。外部目录信息在通过身份验证后仍然需要,例如确定基于组的权限。

    一旦网络服务器挑战并接受客户端证书,您的应用程序需要进行大量验证,包括您将使用什么属性来唯一标识用户? LDAP 专有名称?用户主体名称?非windows证书属性?

    使用诸如 openssl -in client.cer -noout -text 之类的 X509 证书转储器来查看所有属性并决定您需要检查什么并将其映射到 Laravel 中的用户帐户。

    总而言之,大多数人不仅仅依赖用户证书(尽管这对于无需交互且非常安全的身份验证非常方便),他们通过 SAML 或 OAUTH 等方式利用外部身份提供者。

    在我的情况下,我在工作中使用 Azure 活动目录并在公司 AAD 中注册我的应用程序,然后使用方便的 laravel 服务提供商,例如 https://github.com/metaclassing/PHP7-Laravel5-EnterpriseAuth,它基于 azure-ad 的 laravel 社交名流和一些添加的 cert auth goodness .

    【讨论】:

    • 感谢您的回答,但是当用户在 laravel 中的网络上时,我找不到有关如何查找证书的信息。我的意思是,我想在用户访问网络时要求他提供证书。
    • github.com/metaclassing/PHP7-Laravel5-EnterpriseAuth/blob/… 证书如果通过 $_SERVER[] 变量访问,网络服务器有用户证书,您需要阅读它。网络服务器向用户询问他们的证书,您从您的 laravel 身份验证控制器向网络服务器询问。
    猜你喜欢
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2011-11-10
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多