miniorange / oauth-laravel-free
Laravel OAuth 单点登录解决方案。使用此插件将您的 Laravel 应用程序作为 OAuth 客户端。Laravel 最终用户可以使用他们的 OAuth 提供程序/服务器凭据登录到 Laravel 应用程序。
Requires
- php: ^5.1 || ^7.1 || ^8.0
- laravel/framework: >=5.2
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
- 在 Laravel 应用程序的主目录中通过 composer 安装该软件包。
composer require miniorange/oauth-laravel-free
-
成功安装软件包后,在浏览器中打开您的 Laravel 应用程序,并输入以下内容
{laravel-application-domain}/mo_oauth_admin
-
该软件包将开始为您设置数据库,然后重定向到管理员注册页面,您可以在那里注册或登录 miniOrange 并设置您的 OAuth 提供程序。
配置软件包
-
登录后,您将看到 OAuth 提供程序设置选项,其中您将获取重定向/回调 URL。请保存好,因为它将在稍后配置 OAuth 提供程序时需要。
-
从下拉菜单中选择一个 OAuth 提供程序。例如,WordPress
-
使用您的 OAuth 提供程序详细信息,如 客户端 ID 和 客户端密钥 来配置插件。然后,您可以输入 作用域、授权端点、访问令牌端点、获取用户信息端点、域、域名、租户(根据您的 OAuth 提供程序或使用已提供的默认值)。您可以发送客户端凭据到头或体中,并相应地发送状态参数。
-
点击“保存设置”按钮。
测试配置
在应用程序登录页面上添加单点登录按钮(可选)
安装软件包后,您可以使用以下命令在应用程序登录页面上添加一个 单点登录 按钮
- 安装 Laravel UI 软件包。
composer require laravel/ui
- 使用 VueJs 生成 Auth 路由。
php artisan ui vue --auth
- 安装 Node 模块并运行开发
npm install && npm run dev
- 迁移和更新数据库
php artisan migrate
那么 Laravel 应用的登录页面应该是这样的。
功能
免费版和高级版提供的功能列表如下。
功能描述
-
高级和自定义属性映射
允许您将 OAuth 提供商发送的接收到的自定义属性映射到 OAuth 客户端(Laravel 应用)。
-
在 Laravel 中自动创建用户
在完成单点登录后,从 OAuth 提供商创建用户到 OAuth 客户端(Laravel 应用)。
-
OAuth/OpenID 支持的授权类型
支持多种授权类型,如授权码授权、密码授权、客户端凭证授权、隐式授权、刷新令牌授权以及带有 PKCE 的授权码授权。
-
JWT 验证支持
支持 JWT 验证的 HSA 和 RSA 算法。
-
保护整个网站和自动重定向
每次访问网站时,如果用户会话不存在,则要求用户通过单点登录登录。
单点登录(SSO)
可以通过 {laravel-application-domain}/ssologin.php?option=oauthredirect 或在 Laravel 应用登录页面添加的(如果使用上述命令添加)单点登录按钮来启动单点登录。