如何在Zoho Catalyst中强制HTML页面需认证访问,仅限Zoho Workplace账户?
强制Zoho Workplace账户访问Catalyst托管Web客户端的认证方案
1. 配置Cloud Scale Authentication限制身份来源
- 进入Catalyst控制台,打开Cloud Scale > Authentication面板:
- 在「身份提供商」设置中,仅保留Zoho作为唯一认证渠道,禁用邮箱密码登录、第三方OAuth等其他选项。
- 找到「用户注册」设置,关闭允许用户自行注册开关,彻底禁用新账户创建功能。
- 若需限定特定Workplace租户,可在Zoho身份提供商配置中添加域名验证规则,指定你的企业Workplace域名(如
yourcompany.com)。
2. 拦截静态资源请求,强制认证检查
由于Catalyst托管的静态HTML默认公开访问,需通过Serverless函数作为入口拦截请求:
- 编写Catalyst函数(以Node.js为例),实现认证校验逻辑:
const catalyst = require('zcatalyst-sdk-node'); module.exports = async (req, res) => { const app = catalyst.initialize(req); try { // 获取当前认证用户 const user = await app.auth.getCurrentUser(); // 验证是否属于指定Workplace域名 const allowedDomain = 'your-workplace-domain.com'; const userDomain = user.email.split('@')[1]; if (userDomain !== allowedDomain) { await app.auth.signOut(); return res.status(403).send('仅允许企业内部Zoho Workplace账户访问'); } // 认证通过,返回客户端HTML文件 res.sendFile('/public/client.html', { root: __dirname }); } catch (err) { // 未认证时重定向到Zoho登录页 const loginUrl = await app.auth.getLoginURL({ provider: 'zoho' }); res.redirect(loginUrl); } }; - 在Catalyst路由配置中,将原静态HTML的访问路径(如
/)指向该函数,替代直接访问静态文件。
3. 设置静态资源访问权限
- 进入Catalyst的静态托管设置:
- 将客户端相关的核心静态文件(HTML、业务JS、CSS)的访问权限设为仅认证用户可见。
- 若存在公共资源(如logo、基础样式),可单独设置为公开访问,不影响认证逻辑。
4. 适配Zoho Workplace认证规则
- 确保你的Zoho Workplace租户已启用必要的安全策略(如MFA、域验证),Cloud Scale会自动继承这些认证条件,无需额外配置。
- 若需更精细的权限控制,可在认证通过后,通过Catalyst SDK获取用户的Workplace角色信息,进一步限制特定角色的访问。
内容的提问来源于stack exchange,提问作者Alexander Reed
相关产品推荐
相关产品推荐

