miniorange/oauth-laravel-free

Laravel OAuth 单点登录解决方案。使用此插件将您的 Laravel 应用程序作为 OAuth 客户端。Laravel 最终用户可以使用他们的 OAuth 提供程序/服务器凭据登录到 Laravel 应用程序。

v2.0.7 2023-11-22 11:50 UTC

This package is auto-updated.

Last update: 2024-09-22 13:54:03 UTC


README

单点登录是一种授权和认证过程,使用户能够使用一组凭证连接到多个企业应用程序。简单来说,SSO 将多个应用程序登录页面合并为一个,允许您只需提交一次凭证即可访问所有应用程序,而无需逐个登录。最终用户通过无需频繁登录和注销各种本地、Web 和云应用程序来节省时间和精力。

SSO 是身份和访问管理或访问权限服务的核心组件。在企业内部完美实施 SSO 解决方案可以简化整体密码管理,提高生产力和安全性,降低弱密码、丢失或遗忘密码的可能性。

Laravel OAuth SSO

Laravel OAuth 单点登录解决方案使用此软件包将您的 Laravel 应用程序作为 OAuth 客户端。Laravel 最终用户可以使用他们的 OAuth 提供程序/服务器凭据登录到您的 Laravel 应用程序。

我们支持所有已知的 OAuth 提供程序 - Azure AD、Azure B2C、Office 365、AWS Cognito、Classlink、Discord、Clever、Ping、Keycloak、WHMCS、Okta、WSO2、Identity Server、Onelogin、Salesforce、G Suite/Google Apps、Invision Community、Slack、Amazon、Twitter、Apple、ID.me、Shell、Cisco Webex、Auth0、miniOrange 等。OAuth 单点登录 (SSO) 作为 OAuth 2.0 客户端,并使用您的 OAuth 2.0 提供程序安全地验证用户。

要求

  • Laravel - 7.0+
  • PHP - ^5.1 || ^7.1 || ^8.0

安装 - Composer

  1. 在 Laravel 应用程序的主目录中通过 composer 安装该软件包。
composer require miniorange/oauth-laravel-free
  1. 成功安装软件包后,在浏览器中打开您的 Laravel 应用程序,并输入以下内容

    {laravel-application-domain}/mo_oauth_admin

  2. 该软件包将开始为您设置数据库,然后重定向到管理员注册页面,您可以在那里注册或登录 miniOrange 并设置您的 OAuth 提供程序。

    This is plugin login page

配置软件包

  1. 登录后,您将看到 OAuth 提供程序设置选项,其中您将获取重定向/回调 URL。请保存好,因为它将在稍后配置 OAuth 提供程序时需要。

    This is plugin setting page

  2. 从下拉菜单中选择一个 OAuth 提供程序。例如,WordPress

    This is plugin setting page

  3. 使用您的 OAuth 提供程序详细信息,如 客户端 ID客户端密钥 来配置插件。然后,您可以输入 作用域授权端点访问令牌端点获取用户信息端点域名租户(根据您的 OAuth 提供程序或使用已提供的默认值)。您可以发送客户端凭据到头或体中,并相应地发送状态参数。

    This is plugin setting page

    This is plugin setting page

  4. 点击“保存设置”按钮。

测试配置

  1. 您可以通过点击“测试配置”按钮来测试软件包是否正确配置。您应该看到一个“测试成功”屏幕,如下所示,以及用户的属性值。

    This is test configuration page

    This is test configuration page

在应用程序登录页面上添加单点登录按钮(可选)

安装软件包后,您可以使用以下命令在应用程序登录页面上添加一个 单点登录 按钮

  1. 安装 Laravel UI 软件包。
composer require laravel/ui
  1. 使用 VueJs 生成 Auth 路由。
php artisan ui vue --auth
  1. 安装 Node 模块并运行开发
npm install && npm run dev
  1. 迁移和更新数据库
php artisan migrate 

那么 Laravel 应用的登录页面应该是这样的。

This is plugin login page

功能

免费版和高级版提供的功能列表如下。

功能描述

  • 高级和自定义属性映射

    允许您将 OAuth 提供商发送的接收到的自定义属性映射到 OAuth 客户端(Laravel 应用)。

  • 在 Laravel 中自动创建用户

    在完成单点登录后,从 OAuth 提供商创建用户到 OAuth 客户端(Laravel 应用)。

  • OAuth/OpenID 支持的授权类型

    支持多种授权类型,如授权码授权、密码授权、客户端凭证授权、隐式授权、刷新令牌授权以及带有 PKCE 的授权码授权。

  • JWT 验证支持

    支持 JWT 验证的 HSA 和 RSA 算法。

  • 保护整个网站和自动重定向

    每次访问网站时,如果用户会话不存在,则要求用户通过单点登录登录。

单点登录(SSO)

可以通过 {laravel-application-domain}/ssologin.php?option=oauthredirect 或在 Laravel 应用登录页面添加的(如果使用上述命令添加)单点登录按钮来启动单点登录。