看到一篇好文章,搬运过来
原文:https://loliloli.moe/2021/09/20/cfwebssh/
大致上,这篇文章将会介绍三个主要部分,和一个简单的硬核推广
注意:本教程仅适用大部分 Linux 设备,以及安装有 SSH 功能的 Windows 设备,虽然 Cloudflare Teams 服务提供 50 个成员的免费额度,但是需要绑定一种支付方式到 Cloudflare 才能开启 Cloudflare Teams 服务
主要部分为 Cloudflare Teams 添加 Microsoft Azure AD SSO 登录方法在服务器上面安装 Cloudflare Tunnel 并且配置使用 Cloudflare 渲染 WebSSH设置短期证书进行安全的快速登录
硬核推广良心云近期活动推广
参考文档
Cloudflare Docs:Microsoft Azure AD® · Cloudflare for Teams documentationRender an SSH client in a browser · Cloudflare for Teams documentationConfigure short-lived certificates · Cloudflare for Teams documentation
虽上述三篇文档如只需完成目标已经足够了,但是都是英语文档,且存在常见细节补充需求,故旧事重提
为 Cloudflare Teams 添加 Microsoft Azure AD SSO 登录方法
相关链接:Cloudflare for TeamsMicrosoft Azure AD
准备 Cloudflare Teams
注意:Cloudflare Teams 虽然拥有免费套餐,但是必须在 Cloudflare 绑定一个支付方式,否则无法设置 Cloudflare Teams
打开上述 Cloudflare for Teams 链接,点击登录,将会跳转至熟悉的 Cloudflare 管理界面,此时点击一个域名并且而点击 Acess 即可进入
这里如果是第一次使用 Access 则会看到如下页面,点击启动 Access 即可
这时将会跳转到 Cloudflare Teams 页面,此时按照流程完成设置,选择 Settings 并且点击 Authentication
进入页面后点击位于 Login methods 下的 Add new 且如下图选择 Azure AD 即可(演示使用的 Cloudflare Teams 由于已经添加过验证方法因此已经显示有 Azure AD 选项,此时没有显示应是正常的)
选择后可以看到熟悉的填写要求,以及一篇简易的文档
如上图[ol]Name[/ol]复制代码对应登陆方式名称,[ol]Application ID[/ol]复制代码对应 Azure AD 中的[ol]应用程序(客户端) ID[/ol]复制代码,[ol]Application secret[/ol]复制代码对应[ol]客户端密码[/ol]复制代码,[ol]Directory ID[/ol]复制代码对应[ol]目录(租户) ID[/ol]复制代码(这里只是稍作对应介绍,下面将描述如何创建 Azure AD 应用)
创建一个 Azure AD 应用程序
进入 Azure AD 后,如下点击应用注册,并且在界面点击 新注册
进入后界面如下图,写入需要的任意应用名称,且在 重定向 URI 中写入重定向链接(如下)
[ol]
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback
# 此处 <your-team-name> 为你的 Cloudflare Teams 租户名称 [/ol]复制代码[/code]
注意:Cloudflare Teams 的租户名称为最初设置的名称,如遗忘或者需要重新设置,点击 Settings 下的 General 即可查看和设置
即如下例即可(请勿直接填写,按照上方所属需求填写方可有效,否则无效)
填写完毕后,点击注册即可,完成注册后将会看到如下页面,此时需要获取[ol]应用程序(客户端) ID[/ol]复制代码、[ol]目录(租户) ID[/ol]复制代码以及[ol]客户端密码[/ol]复制代码
如下图框选位置为[ol]应用程序(客户端) ID[/ol]复制代码以及[ol]目录(租户) ID[/ol]复制代码
选择菜单栏的 证书和密码 并在对应界面点击 新客户端密码
选择过期时间为 24 个月,并且点击添加(如需设置更长时间,可以自寻方法)
此时可以看到下图框选区域,为[ol]客户端密码[/ol]复制代码,点击复制即可(这里的机密值请妥善保存,且不应泄露,避免额外的意外情况发生,机密值仅在创建时显示,刷新后将被隐藏)
到此步骤,你应该已经获取到上述需求的三个值了,接下来则需要为该应用添加相应 API 且授予权限
选择菜单栏 API 权限
点击相关页面 添加权限 再点击 Microsoft Graph 如下图选择 委托的权限 并在搜索框中分别搜索勾选下述权限
以下为需要寻找并且授予的权限[ol]
openid
profile
offline_access
User.Read
Directory.Read.All
Group.Read.All [/ol]复制代码[/code]
选择完毕后,点击添加权限,确认无误后,点击 代表 You Directory Name 授予管理员同意 (此处 You Directory Name 字面意思,意为你的租户名称)
注意:此时如果你使用的全局管理员账户完成的应用创建,则该选项为可选状态直接点击即可,若使用非管理员账户进行了应用创建,则请登录管理员账户并且在该页面授予权限
设置 Azure AD 验证方法
上述步骤完成后,接下来回到如下页面,直接写入[ol]Name[/ol]复制代码、[ol]Application ID[/ol]复制代码、[ol]Application secret[/ol]复制代码及[ol]Directory ID[/ol]复制代码值
勾选 Support groups(对于组的支持)并且点击 Save 保存
注意:这里对于组的支持为对于 Azure AD 组的支持,此操作将会允许获取 Azure AD 组相关信息,需要对于组的读取权限(上述步骤已经添加)
设置 Azure AD 组信息到 Cloudflare Teams
点击 Azure AD 菜单中组选项,在页面中可以看到组名称及对应对象ID获取 Azure AD 组对象ID即可
回到 Cloudflare Teams 如下图选择 Groups 并且点击 Add a Group
填写名称(按需求填写,可随意填写)选择如下图下拉框底部 Azure Group 选项,并在后面方框中填入上面获取的 Azure 组对象 ID ,确认无误点击 Save 保存即可
在服务器上面安装 Cloudflare Tunnel 并且配置使用 Cloudflare 渲染 WebSSH
这里的工作将会分为两部分,一部分在服务器上完成,另一部分在 Cloudflare Teams 完成
安装 Cloudflare Tunnel 完成相关配置并且设置守护进程