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

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

作者头像
用户U2
发布于 2022-06-02 08:01:57
发布于 2022-06-02 08:01:57
79300
代码可运行
举报
运行总次数:0
代码可运行

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

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

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

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

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

1 配置OAuth2

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

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

2 应用如何获取用户身份

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Authorization: Bearer Access-Token
X-Auth-User: UserID

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

3 验证演示

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
在应用网关上启用LDAP双因子认证
在之前的一篇文章"快速给内部网站添加身份认证"中,介绍不用改动业务代码,直接在JANUSEC应用网关上开启身份认证的实现方案。不过,很快就有朋友提出问题来了:“你这只能支持第三方APP的扫描登录呀,我们内网使用的是LDAP认证,能支持么?”、“光LDAP还不行,用的是静态口令,还得加上双因子认证才保险”...
用户U2
2022/06/02
1.2K0
在应用网关上启用LDAP双因子认证
您要的免V**远程运维工具到了
安全运维是日常安全工作的一个重要组成部分,但“工欲善其事,必先利其器”,那么什么样的远程运维工具或平台才是比较好的呢?
用户U2
2022/06/02
5710
您要的免V**远程运维工具到了
从源头打造安全的产品,保障数据安全
无论是进行产品的安全架构设计或评估,还是规划安全技术体系架构的时候,有这样几个需要重点关注的逻辑模块,可以在逻辑上视为安全架构的核心元素。
用户U2
2022/06/02
7800
从源头打造安全的产品,保障数据安全
JANUSEC应用网关1.0发布,提供一站式安全交付能力
好久没有更新公众号文章了,也极少发圈,经常被朋友问起在忙啥?其实,笔者业余时间大多用来完善JANUSEC应用网关这款开源产品了,这不,历经多年打造和实战磨合,我也不藏着掖着了,端出1.0版本,供各位客官品鉴。你可能会疑惑,JANUSEC应用网关到底是个什么产品?解决什么痛点问题?到底有哪些特色?让我们逐一揭晓。
用户U2
2022/06/02
9100
JANUSEC应用网关1.0发布,提供一站式安全交付能力
[认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
1 什么是OIDC? 看一下官方的介绍(http://openid.net/connect/): OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as
blackheart
2018/01/19
4.8K0
[认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
认证鉴权也可以如此简单—使用API网关保护你的API安全
随着企业数字化进程的发展,企业正在大量使用 API 来连接服务和传输数据,API 在带来巨大便利的同时也带来了新的安全问题,被攻击的 API 可能导致重要数据泄漏并对企业业务造成毁灭性影响。因此,API 安全正受到业界和学术界的广泛关注。
克莱尔小熊
2021/12/26
10.9K2
认证鉴权也可以如此简单—使用API网关保护你的API安全
聊聊统一身份认证服务
当企业的应用系统逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,因为它是企业云平台的重要基础设施,能够为平台带来统一的帐号管理、身份认证、用户授权等基础能力,为企业带来诸如跨系统单点登录、第三方授权登录等基础能力,为构建开放平台和业务生态提供了必要条件。
我思故我在
2020/02/14
5.6K0
聊聊统一身份认证服务
【One by One系列】IdentityServer4(一)OAuth2.0与OpenID Connect 1.0
在微服务场景中,身份认证通常是集中处理,这也是有别于单体应用一把梭哈的模式,其中,在微软微服务白皮书中,提供了两种身份认证模式:
DDGarfield
2022/06/23
1.7K0
【One by One系列】IdentityServer4(一)OAuth2.0与OpenID Connect 1.0
《数据安全架构设计与实战》勘误表
自2019年10月底《数据安全架构设计与实战》出版 以来,受到安全圈各位同行的大力支持,目前已印刷2次。其“从源头打造安全的产品,保障数据安全”的理念也不断获得大家认可。本着为读者负责的原则,现将勘误表发布出来:
用户U2
2022/06/02
4170
JAVA三种权限认证框架的搭建方法
Satoken以轻量级为设计理念,通过简化权限管理的复杂性,使得整个框架更易上手,适用于中小型项目。
闻说社
2024/05/23
4380
JAVA三种权限认证框架的搭建方法
oauth2.0 实现spring cloud nosession
上一篇博客使用自定义jwt实现spring cloud nosession,过程稍微比较复杂,依赖的是我们自己控制token生成、校验。 那么这一篇文章将使用spring cloud 和 spring-security-oauth2 做一个无缝集成,实现nosession,和权限控制。 为了快速的实现目标效果,拓扑结构如上图,我们将采用 InMemory的形式实现,相关换成JDBC实现位置,我会在文章中说明,主要看代码的注释。 auth-server 认证实现 @Configuration @Enab
冷冷
2018/02/08
1.2K0
oauth2.0 实现spring cloud nosession
微服务[学成在线] day16:基于Spring Security Oauth2开发认证服务
要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间学习什么课程;如果用户要购买课程也需要知道用户的身份信息。所以,去管理学生的学习过程最基本的要实现用户的身份认证。
LCyee
2020/08/05
4.4K0
微服务[学成在线] day16:基于Spring Security Oauth2开发认证服务
微服务架构下的统一身份认证和授权
本文讨论基于微服务架构下的身份认证和用户授权的技术方案,在阅读之前,最好先熟悉并理解以下几个知识点:
matinal
2020/11/27
4.2K0
微服务架构下的统一身份认证和授权
Jwt服务间认证
新进部门项目的小伙伴经常会问一些关于Jwt权限认证的问题,结合项目架构以及网络资料,分享一些关于我们系统对Jwt的使用情况
3号攻城狮
2018/06/18
4.8K0
Jwt服务间认证
OIDC认证授权的核心知识——高级开发必备
OIDC是在OAuth2的基础上做了一个身份认证层,以便于客户端知晓授权的终端用户(End User),在客户端获取access_token的同时一并提供了一个用户的身份认证信息Id Token。广泛用于微服务、开放平台、SSO、三方登录授权等场景。
码农小胖哥
2022/09/30
5.9K0
OIDC认证授权的核心知识——高级开发必备
构建具有用户身份认证的 Ionic 应用
序言:本文主要介绍了使用 Ionic 和 Cordova 开发混合应用时如何添加用户身份认证。教程简易,对于 Ionic 入门学习有一定帮助。因为文章是去年发表,所以教程内关于 Okta 的一些使用步骤不太准确,但是通过 Okta 的官网也可以找到对应的内容。另外,使用 npm 安装 Ionic starter 模板可能会有安装失败的情况,建议不要在这方面浪费太多时间,可以直接在 Ionic 的 GitHub 仓库 中下载 starter 模板。 原文:How to Sprinkle ReactJS i
叙帝利
2018/05/28
24.6K0
使用dex搭建一个身份认证系统
一个成熟的软件系统一般必须有一个可靠的身份认证与权限验证功能。这一块要自研快速实现还是需要花费挺多精力的,幸好开源领域目前已经有不错的解决方案,一般拿过来按项目的实际需求进行一些简单的定制基本就可以实现业务目标了。最近刚好在这方面进行了一些工作,这里将如何实现身份认证及权限验证分两篇博文大概梳理一下,这篇先讲身份认证。
jeremyxu
2019/08/07
2.9K0
SSO的通用标准OpenID Connect
OpenID Connect简称为OIDC,已成为Internet上单点登录和身份管理的通用标准。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。
程序那些事
2020/12/31
1.7K0
德国宽带提供商1&1因身份认证缺陷被罚955万欧元
7月份,本公众号曾总结了《数据安全大额罚单一览》,而就在昨天,2019年12月9日,德国BfDI(联邦数据保护与信息自由专员办公室)向宽带运营商1&1开出一张955万欧元(折合人民币大约7449万元)的罚单。
用户U2
2022/06/02
3770
德国宽带提供商1&1因身份认证缺陷被罚955万欧元
Spring Security OAuth2是如何校验token的
安全框架有两个重要的概念,即认证(Authentication)和授权(Authorization)。认证即确认主体可以访问当前系统的过程; 授权即确定主体通过认证后,检查在当前系统下所拥有的功能权限的过程。 这里的主体既可以是登录系统的用户,也可以是接入的设备或其它系统。
烟雨平生
2023/03/07
4.7K0
Spring Security OAuth2是如何校验token的
推荐阅读
相关推荐
在应用网关上启用LDAP双因子认证
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验