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

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

作者头像
用户U2
发布于 2022-06-02 08:01:57
发布于 2022-06-02 08:01:57
78400
代码可运行
举报
运行总次数: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
您要的免V**远程运维工具到了
安全运维是日常安全工作的一个重要组成部分,但“工欲善其事,必先利其器”,那么什么样的远程运维工具或平台才是比较好的呢?
用户U2
2022/06/02
5620
您要的免V**远程运维工具到了
在应用网关上启用LDAP双因子认证
在之前的一篇文章"快速给内部网站添加身份认证"中,介绍不用改动业务代码,直接在JANUSEC应用网关上开启身份认证的实现方案。不过,很快就有朋友提出问题来了:“你这只能支持第三方APP的扫描登录呀,我们内网使用的是LDAP认证,能支持么?”、“光LDAP还不行,用的是静态口令,还得加上双因子认证才保险”...
用户U2
2022/06/02
1.2K0
在应用网关上启用LDAP双因子认证
从源头打造安全的产品,保障数据安全
无论是进行产品的安全架构设计或评估,还是规划安全技术体系架构的时候,有这样几个需要重点关注的逻辑模块,可以在逻辑上视为安全架构的核心元素。
用户U2
2022/06/02
7680
从源头打造安全的产品,保障数据安全
JANUSEC应用网关1.0发布,提供一站式安全交付能力
好久没有更新公众号文章了,也极少发圈,经常被朋友问起在忙啥?其实,笔者业余时间大多用来完善JANUSEC应用网关这款开源产品了,这不,历经多年打造和实战磨合,我也不藏着掖着了,端出1.0版本,供各位客官品鉴。你可能会疑惑,JANUSEC应用网关到底是个什么产品?解决什么痛点问题?到底有哪些特色?让我们逐一揭晓。
用户U2
2022/06/02
8980
JANUSEC应用网关1.0发布,提供一站式安全交付能力
德国宽带提供商1&1因身份认证缺陷被罚955万欧元
7月份,本公众号曾总结了《数据安全大额罚单一览》,而就在昨天,2019年12月9日,德国BfDI(联邦数据保护与信息自由专员办公室)向宽带运营商1&1开出一张955万欧元(折合人民币大约7449万元)的罚单。
用户U2
2022/06/02
3760
德国宽带提供商1&1因身份认证缺陷被罚955万欧元
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
你知道吗?OAuth2客户端有两种,认证方式有七种。
OAuth2客户端按照它们与授权服务器进行安全认证的能力可以分为机密类型(Confidential)和公共类型(Public)。
码农小胖哥
2022/04/06
2.4K0
你知道吗?OAuth2客户端有两种,认证方式有七种。
OIDC认证授权的核心知识——高级开发必备
OIDC是在OAuth2的基础上做了一个身份认证层,以便于客户端知晓授权的终端用户(End User),在客户端获取access_token的同时一并提供了一个用户的身份认证信息Id Token。广泛用于微服务、开放平台、SSO、三方登录授权等场景。
码农小胖哥
2022/09/30
5.8K0
OIDC认证授权的核心知识——高级开发必备
[认证授权] 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.7K0
[认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)
SSO的通用标准OpenID Connect
OpenID Connect简称为OIDC,已成为Internet上单点登录和身份管理的通用标准。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。
程序那些事
2020/12/31
1.7K0
重磅推荐!开源身份认证神器:KeyCloak!
安装&初始化 下载 http://www.keycloak.org/downloads.html 笔者下载的是“Standalone server distribution” 。 安装&启动 安装Keycloak非常简单,步骤如下: 解压下载下来的安装包 将目录切换到KEYCLOAK_PATH/bin ,其中KEYCLOAK_PATH是您Keycloak的根目录 执行./standalone.sh ,即可启动Keycloak,如需后台运行,则执行./standalone.sh & 。 初始化 启动后,访问
程序猿DD
2023/02/24
7.2K0
重磅推荐!开源身份认证神器:KeyCloak!
认证鉴权也可以如此简单—使用API网关保护你的API安全
随着企业数字化进程的发展,企业正在大量使用 API 来连接服务和传输数据,API 在带来巨大便利的同时也带来了新的安全问题,被攻击的 API 可能导致重要数据泄漏并对企业业务造成毁灭性影响。因此,API 安全正受到业界和学术界的广泛关注。
克莱尔小熊
2021/12/26
10.8K2
认证鉴权也可以如此简单—使用API网关保护你的API安全
使用dex搭建一个身份认证系统
一个成熟的软件系统一般必须有一个可靠的身份认证与权限验证功能。这一块要自研快速实现还是需要花费挺多精力的,幸好开源领域目前已经有不错的解决方案,一般拿过来按项目的实际需求进行一些简单的定制基本就可以实现业务目标了。最近刚好在这方面进行了一些工作,这里将如何实现身份认证及权限验证分两篇博文大概梳理一下,这篇先讲身份认证。
jeremyxu
2019/08/07
2.9K0
Spring Authorization Server 0.2.3发布,增加联合身份认证DEMO
很快啊Spring Authorization Server又发新版本了,现在的版本是0.2.3。本次都有什么改动呢?我们来了解一下。
码农小胖哥
2022/04/06
8020
《数据安全架构设计与实战》勘误表
自2019年10月底《数据安全架构设计与实战》出版 以来,受到安全圈各位同行的大力支持,目前已印刷2次。其“从源头打造安全的产品,保障数据安全”的理念也不断获得大家认可。本着为读者负责的原则,现将勘误表发布出来:
用户U2
2022/06/02
4160
[认证授权] 5.OIDC(OpenId Connect)身份认证授权(扩展部分)
在上一篇[认证授权] 4.OIDC(OpenId Connect)身份认证授权(核心部分)中解释了OIDC的核心部分的功能,即OIDC如何提供id token来用于认证。由于OIDC是一个协议族,如果只是简单的只关注其核心部分其实是不足以搭建一个完整的OIDC服务的。本篇则解释下OIDC中比较常用的几个相关扩展协议,可以说是搭建OIDC服务必备的几个扩展协议(在上一篇中有提到这几个协议规范): Discovery:可选。发现服务,使客户端可以动态的获取OIDC服务相关的元数据描述信息(比如支持那些规范,接口
blackheart
2018/01/19
3.1K0
[认证授权] 5.OIDC(OpenId Connect)身份认证授权(扩展部分)
基于 Spring Cloud 完整的微服务架构实战
基于 Spring Cloud 完整的微服务架构实战 本项目是一个基于 Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目。 @作者:Sheldon 地址:https://github.com/zhangxd1989 技术栈 Spring boot - 微服务的入门级微框架,用来简化 Spring 应用的初始搭建以及开发过程。 Eureka - 云端服务发现,一个基于 REST 的服务,用于定位服务,以实现云端中
程序员鹏磊
2018/02/09
3.1K0
基于 Spring Cloud 完整的微服务架构实战
Spring Cloud Security:Oauth2实现单点登录
单点登录(Single Sign On)指的是当有多个系统需要登录时,用户只需登录一个系统,就可以访问其他需要登录的系统而无需登录。
macrozheng
2019/11/15
3.3K0
微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!
https://github.com/macrozheng/springcloud-learning/tree/master/micro-oauth2
macrozheng
2020/07/14
25.4K1
微服务权限终极解决方案,Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!
聊聊统一身份认证服务
当企业的应用系统逐渐增多后,每个系统单独管理各自的用户数据容易形成信息孤岛,分散的用户管理模式阻碍了企业应用向平台化演进。当企业的业务发展到一定规模,构建统一的标准化账户管理体系将是必不可少的,因为它是企业云平台的重要基础设施,能够为平台带来统一的帐号管理、身份认证、用户授权等基础能力,为企业带来诸如跨系统单点登录、第三方授权登录等基础能力,为构建开放平台和业务生态提供了必要条件。
我思故我在
2020/02/14
5.5K0
聊聊统一身份认证服务
推荐阅读
相关推荐
您要的免V**远程运维工具到了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档