跳至主要內容

SSO单点登录

安稳...大约 19 分钟使用指南SSO单点登录接入登录login

前言

我们这里接入的单点登录程序使用的是 "Casdooropen in new window" 别的不说了可以接入几十种,你见过的没见过的都有

详细的可以看下面有一份支持接入的方式表单,不啰嗦了直接开始

支持接入的方式表单

图表来自 "Casdoor Docsopen in new window"

ProviderLogoProviderLogoProviderLogoProviderLogo
AdfsAlipayAmazonApple
Auth0AzureADBaiduBattle.netopen in new window
BilibiliBitbucketBoxCasdoor
Cloud FoundryDailymotionDeezerDigitalOcean
DingTalkDiscordDouyinDropbox
Eve OnlineFacebookFitbitGitea
GiteeGitHubGitLabGoogle
HerokuInfluxCloudInfoflowInstagram
IntercomKakaoLarkLastfm
LineLinkedInMailruMeetup
MicrosoftOnlineNaverNextcloudOkta
OneDriveOuraPatreonPaypal
QQSalesForceShopifySlack
SoundCloudSpotifySteamStrava
StripeTikTokTumblrTwitch
TwitterTypetalkUberVK
WeChatWeComWeiboWepay
XeroYahooYammerYandex
ZoomEmailSMS

通用配置 - 回调参数URL

  1. 回调参数URL:http(s)://YOU_URL/callback,下面举几个例子

总之就是不论你怎么写 结尾加一个 /callback 即可,

这个是对接到提供商新建的应用程序里面使用,现在不懂没关系往下看看到了就懂了


  1. 接入提供商

接入的提供商都是在Casdoor,顶部选项提供商那里接入的,接入好后再去应用里面添加

图为在应用添加已经接入的提供商
图为在应用添加已经接入的提供商

下面我们说一下怎么接入不同方式的登录吧

接入

QQ

打开QQ开发者平台open in new window,审核通过后,创建网页应用,获取您的客户ID和客户端密钥。

  • 需要有备案哦~

  • 若是QQ开发者平台没法认证可以先在 腾讯应用开放平台open in new window 认证后,我们拿腾讯应用开放平台OpenID和UserID去绑定QQ开发者平台的移动应用里面的关联腾讯开放平台,这样腾讯开放平台认证审核通过后QQ开发者平台也就审核通过了

    • QQ开发者平台有感觉页面js有问题总是加载不出来 我只能通过这样的办法通过认证
绑定腾讯应用开放平台
绑定腾讯应用开放平台

注册应用 - 添加回调参数

认证审核 和 应用注册审核都很快的,之要是在工作日內,一般都是在下午处理,下午3-5点左右处理

  • 注册应用时,记得填写我们的回调参数URL哦~

应用注册时需要遵循他们的规范,不然不给通过

不过我们可以先等审核通过了拿到 客户端ID(Client Id)客户端秘钥(Client Secret) 然后再去删掉咯

应用注册好了 我们等着就行一个工作日內处理完

注册应用以及添加
注册应用以及添加回调参数

应用注册好后 审核也通过了 我们接入到Casdoor

填写到接入
填写到Casdoor接入

也接入好了 我们看看登录演示

接入登录演示Demo
接入登录演示Demo

也就整理这些吧,国内国外的都有了




如何使用其他组织登录?

上述也看到了我们也选择了我们新建的组织alist-org,然后用户alist-user绑定的也是我们新建的组织

那么我们登录的时候默认页面如果去使用alist-user帐号去等我们是登录不了的

我们得去https://YOU_URL/login/alist-org这个页面去登录才能找到alist-user这个用户的帐号

若是觉得麻烦,我们直接把alist-user这个用户绑定的组织换成默认就可以使用https://YOU_URL/login登录了



如何绑定第三方应用登录到用户?

我们在提供商接入应用后,在应用也添加好,在用户页面内 组织应用 都填好对应的

然后下拉有一个第三方登录,我们在这里绑定好到时候我们可以使用这些应用来登录我们的alist-user帐号

展开查看如何绑定第三方应用登录到用户
用户绑定第三方登录
用户绑定第三方登录



如何禁止其他人注册?

  1. 找到对应的应用,进去下拉会看到一个启用注册的选项,关闭即可
    • 简单粗暴,这样除了现有的用户以外其他人都无法注册
  2. 找到对应的应用,下来添加了第三方登录的接入,把那些接入应用的可用于注册选项关闭即可
    • 如果直接关闭启用注册的选项 第二个不用管会自动关闭
展开查看如何禁止其他人注册
取消注册
取消注册

单点登录自动注册为AList帐号

  • AList 版本 > v3.22.1 新增功能

在使用单点登录注册为AList帐号前,我们需要先将AList的单点登录进行绑定,绑定方法在AList文档open in new window有详细说明这里就不写啦

  • 支持上述提到的五个单点登录方法

  • 如果使用Casdoor,请勿直接使用默认组织(app-built-in),因为这个组织内的用户都是全局管理员帐号

  • 除了Casdoor其它的只需要填写客户端ID客户端秘钥以及下面新增的单点登录帐号注册为AList帐号的配置

SSO完整填写示例

分别如何填写看下面的详细说明,示意图只是一个填写参考并不适合每个人的用户习惯

完整的填写示例
完整的填写示例

SSO自动注册

如果我们想让SSO单点登录注册为AList帐号我们需要打开这个选项才可以使用

SSO默认路径

也就是说注册的帐号默认使用的路径,相当于AList用户设置里面的基本路径

可以是根目录/,也可以是用户指定的路径/path/test/Demo

SSO默认权限

相当于注册的用户默认开通哪些权限,就如下面所示的

默认为0,不开通任何权限

如果在注册时我们需要开通一些权限我们只需要不同权限的数字相加即可

例如:

  1. 我们需要默认开通用户的WebDav读取WebDav管理那就是256+512=768,我们就在填写选项填写768即可
  2. 如果我们需要注册时默认开通创建目录或上传重命名删除这三个权限 那就是8+16+128=152,我们在后台填写152即可

例子就不多说了,需要那个权限自己相加就可以

.注意事项以及说明

4.1-AList用户数据库已经的帐号

usernamepasswordbase_pathrolepermissionopt_secretgithub_iddisabledsso_id
anyiFzdDfkmU/本地1030
anyi_dc188911RUCtgqCw/本地1030dc18891

如上表格所示,新注册的单点登录用户名称后增加了一串多余的id

这是因为AList用户数据库中已有了相同的用户,所以在用户名后把单点登录ID也添加上去了

如果你新注册的单点登录用户名在AList用户数据库中没有,它就不会在名字后面添加单点登录ID



Casdoor 编译教程

因为 Casdoor 如果使用他们官网托管的是需要付费的也理解,但是 Casdoor是开源免费的 可以自己编译然后再部署

Casdoor官网open in new windowGitHubopen in new windowCasdoor使用文档open in new windowAList接入如何使用Casdoor教程open in new window

编译完毕 - 自己部署

#1.clone GitHub代码
git clone https://github.com/casdoor/casdoor.git

#2.进入前端文件
cd web

#3.安装 package.json 所需要的依赖(有点久半个小时好像)
yarn install

#4.安装好依赖后 编译前端
yarn build

#5.前端编译好,路径回到上一级,然后编译后端
cd ../
go build

#6.把编译好的`casdoo`执行文件带带走,以及还要需要的 /conf 配置文件夹,以及 /web/build 这两个文件夹
casdoor.exe
/conf/*
/web/build/*

#7.然后移动到所需要的地方即可,否则package,json 13W个文件1G大小..太大了不方便移动

上述移动文件夹时候目录结构也要保持哈~(应该需要相对的目录结构才行)

我这里使用的是Windows的编译出来的是casdoor.exe可执行文件,如果是Linux 就是二进制casdoor 文件

  • 使用方法和 AList 手动启动一样 不过不用携带server参数可以直接启动即可

手把手教你编译Casdoor