前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速给内部网站添加身份认证

快速给内部网站添加身份认证

作者头像
用户U2
发布2022-06-02 16:01:57
6850
发布2022-06-02 16:01:57
举报

一些企业内部管理网站,往往为了快速上线,没有做身份认证,这就给内部数据泄露带来了很大的风险。但是,要想修复这个问题,却不是那么容易,有可能开发这个网站的同事早就转岗或离职了。

为了解决这个问题,《数据安全架构设计与实战》一书提出了在应用网关统一执行身份认证,并在后端限制访问来源,快速解决这些没有身份认证的问题。

在接入网关上执行身份认证

现在,这一理念已在Janusec Application Gateway中落地,支持员工扫码登录原来可任意访问的内部网站了。

目前支持的扫码登录APP包括:企业微信、钉钉、飞书 。

1 配置OAuth2

在Janusec Application Gateway的应用配置界面,勾选启用OAuth2选项。

具体配置,参考:OAuth2身份认证

2 应用如何获取用户身份

Janusec认证通过后,会在HTTP请求的头部添加两行:

代码语言:javascript
复制
Authorization: Bearer Access-Token
X-Auth-User: UserID

应用不需要修改即可使用,也可以通过X-Auth-User获取用户身份(企业微信/钉钉/飞书),或者借助Access-Token(企业微信/飞书)获取进一步的信息。

3 验证演示

以配置的某个PHP应用下,放一个http.php文件,内容为:

代码语言:javascript
复制
<?php
$headers = array();
foreach ($_SERVER as $key => $value) {
    if ('HTTP_' == substr($key, 0, 5)) {
        $headers[str_replace('_', '-', substr($key, 5))] = $value;
    }
}
echo '<pre>';
print_r($headers);
?>

在Janusec Application Gateway的应用管理中,勾选"Enable OAuth2",启用OAuth2 。

访问该http.php页面,浏览器自动跳转到扫码登录页面,扫码通过后,即可查看到该网页的输出:

代码语言:javascript
复制
Array
(
    [HOST] => test.janusec.com
    [USER-AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36
    [ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    [ACCEPT-ENCODING] => gzip, deflate, br
    [ACCEPT-LANGUAGE] => zh-CN,zh;q=0.9
    [AUTHORIZATION] => Bearer hmaEIdtA_EigLd0q6s1grFMuspVTCme8PEU4SkSeWJAv06Rg6u_PWUdU2g
    [COOKIE] => uqcJ_2132_saltkey=r55x3tp5; uqcJ_2132_lastvisit=1582979664; janusec-token=MTU4NTQ1Nzc3NnxEdi1CQkFFQ180SUFBUkFCRUFBQV9_
    [X-AUTH-USER] => U2
    [X-FORWARDED-FOR] => 192.168.100.1
)

可以看到,已添加HTTP头部:

代码语言:javascript
复制
Authorization: Bearer hmaEIdtA_EigLd0q6s1grFMuspVTCme8PEU4SkSeWJAv06Rg6u_PWUdU2g
X-Auth-User: U2

后端的网站,可以不用任何修改,就获得了需要通过身份认证才能访问的效果。

同时,后端网站也可以直接使用HTTP头部传递过来的身份信息。

4 退出OAuth2登录

后端网站只需要添加一个退出链接 /oauth/logout ,即可实现退出效果。

最后,需要说明的是,这种方式配合后端网站的来源访问控制,效果更好,也就是只允许网关过来的请求,这样,切断黑客进入内网后的横向移动通道。

5.附录

Janusec Application Gateway的来历,在此前的文章中已经介绍过了,参见:基于Golang打造一款开源的WAF网关。它提供了统一的应用接入、WAF (Web Application Firewall, Web应用防火墙)、CC攻击防御、统一Web化管理入口、证书私钥保护,Web路由以及可扩展的负载均衡等功能。

这款开源产品的架构设计理念,在作者的《数据安全架构设计与实战》一书中做了介绍。

本文作者U2(郑云文),资深数据安全与隐私保护专家,同时也是《数据安全架构设计与实战》一书以及Janusec Application Gateway开源应用网关的作者,长期从事数据安全与隐私保护工作。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据安全架构与治理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 配置OAuth2
  • 2 应用如何获取用户身份
  • 3 验证演示
  • 4 退出OAuth2登录
  • 5.附录
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档