零信任:接入Authing进行身份认证

news/2024/11/2 17:25:07/

在之前的的文章中我们提到我们自己开发了一个Apisix的认证插件来实现认证,但是实际过程当中,我们同样也希望支持使用Keycloak,Authing,okta这类统一身份认证。本文主要是说明我们如何使用Authing这个身份认证供应商来实现登录认证的。

交互流程

在这里插入图片描述

如图所示,途中包括了网关认证过程中涉及到的所有组件。

  • 客户在办公网/公有云/数据中心当中运行一个连接器,连接器本身作为网关的客户端,不监听任何端口。
  • Apisix网关是我们基于Apisix构建的一个七层网关,作为连接器的服务端,接收连接器的连接请求,同时也作为用户访问的流量入口,负责接收所有外部访问的流量,同时也运行着一个对接控制面的模块,专门与数据面进行rpc/http交互
  • 身份认证组件,也就是我们的auth组件,统一了身份认证功能,屏蔽其他认证组件像Authing,Keycloak的细节。无论使用何种认证方式,对于Apisix网关而言都是一致的,也就是很经典的没有什么是加一层中间件解决不了的思想

具体交互流程如下:

  • 用户通过浏览器访问Apisix网关
  • Apisix发现用户没有登录,会返回一个重定向请求,重定向到身份认证组件的一个接口
  • 身份认证组件获取这个应用的信息,主要是使用了哪种身份认证的方式
    • 如果使用的是我们自建的身份认证,那么会重定向到自建身份认证的登录地址
    • 如果使用的是第三方的身份认证,那么会重定向到第三方身份认证的登录地址
    • 通过这种方式,我们可以对apisix提供一个统一的登录地址,Apisix并不需要关注这个应用使用的是哪种登录方式
  • 用户的浏览器自动跳转到重定向地址,然后进行登录
  • 如果是比扬云自建的身份认证,登录之后会返回一次性code和state给浏览器,浏览器携带code和state跳转到用户希望访问的资源链接,Apisix收到请求之后,首先会根据code和state去查询token信息,并设置cookie,保证下次能查询到token信息
  • 如果是第三方身份认证信息,由于网站不是我们自己开发的,我们无法控制浏览器行为,因此在登录成功之后,会跳转到我们认证服务的一个接口,在接口处理当中继续走类似比扬云身份认证的登录逻辑,后续跟正常使用比扬云身份认证的流程是一致的

通过这种方式,我们就能够实现扩展性比较好的身份认证功能,如果后续需要新增其他身份认证,只需要在身份认证服务当中进行对接,不需要Apisix网关的任何修改,而这也符合我们对网关的要求——网关稳定了就一直保持着就行,不需要频繁更改。

详细操作

第一步:创建连接器

登录我们的控制台选择零信任网关下拉,点击连接器管理,点击新增按钮,填入名称和配置即可
在这里插入图片描述

连接器创建成功之后会生成一个唯一的授权码,这个授权码在第二步当中会用到。

第二步:运行连接器

在连接器下载菜单栏下选择对应平台的连接器程序,本次我使用的是一个linux amd64平台的连接器,然后执行
./connector_linux_amd64 -auth=第一步生成的授权码
运行成功之后刷新连接器信息就能看到连接器是否在线

第三步:新增Authing身份认证

在身份认证供应商菜单下,点击新增按钮,在弹出来的页面当中输入名称,厂商选择Authing,然后输入您在Authing平台当中创建的应用的APPID,AppSecret和认证地址,这里的信息和Authing控制台里面显示的都是一致的,只需要找到然后复制粘贴过来即可。
在这里插入图片描述

第四步:创建应用

在应用管理菜单栏下,点击新增,在完善弹出的页面。其中连接器选择下拉选择第一步当中创建的连接器,认证方式下拉选择Authing,其他的根据实际情况决定,比如我的应用IP是192.168.1.10,端口是80,协议是http
在这里插入图片描述

第五步:访问测试

配置成功之后就可以进行测试,通过在浏览器打开应用列表里面的接入地址。首次打开会跳转到Authing的登录页面,登录成功之后会跳转到你的内网应用的页面。

总结

在之前的文章中我们也提到了做身份认证并不是我们当前擅长的事,我们更愿意将身份认证的功能留给第三方,比如Authing,Keycloak,Authing的集成是一个新的探索,我们也在积极寻找合作机会,如果您对我们的产品感兴趣的话,可以登录我们的控制台进行免费使用。


http://www.ppmy.cn/news/691139.html

相关文章

Redis设计与实现笔记之SDS

1 数据结构与对象 1.1 简单动态字符串 SDS简单动态字符串(simple dynamic string,SDS)是Redis中字符串的底层数据结构。 struct sdshdr {// 记录 buf 数组中已使用字节的数量// 等于 SDS 所保存字符串的长度int len;// 记录 buf 数组中未使…

android设置移动联通电信wap接入点

原文:android设置移动联通电信wap接入点 源代码下载地址:http://www.zuidaima.com/share/1550463755242496.htm android设置移动联通电信wap接入点 java项目截图

2020移动apn接入点哪个快_手机WiFi网速度太慢?教你一招网速翻倍好用,比5G还快...

手机WiFi网速慢似蜗牛速度,出现这样的情况时,不要怀疑是你的WiFi有问题,其实只是你的手机不会设置,导致在连接WiFi使用手机时网速非常缓慢。下面就教大家一招快速提升网速,让你的手机瞬间流畅。 方法一:iPh…

联通5g接入点设置参数_手机网速慢可以这样设置,网速瞬间飙升,还不知道真是可惜了...

不管是在家或者出门,相信大家都会遇倒网速突然变慢的问题,可能有些小伙伴会以为是5G出来了,所以4G给限速了,其实不是的,在过去一年,4G用户就提升了近一倍,但是基站并没有提升这么多呀&#xff0…

2020移动apn接入点哪个快_为什么都是4G网你的就没别人快?跟我这样设置,网速直线提升...

想必很多朋友都遇到过,在同一个地方手而且都是4G网,手机网速却没有别人的快?这个问题最直观的表现就是,两个人坐在一起开黑玩游戏,有个人网速流畅,但是另一个却卡的掉线。那么这个究竟是什么导致的呢&#…

移动接入安全

移动接入概述 1.需求背景 1.1、移动办公/远程办公已成常态 移动/远程办公拓展了组织网络边界 让组织更充分的利用互联网 让组织的信息化建设发挥更大价值 1.2、移动接入成为企业信息安全的短板 开放远程接入,让企业构建的安全边界失去作用 互联网更为复杂的…

Android 移动网络接入点名称(APN)

系统环境:Android 5.1,MTK平台 位置:设置-更多-移动网络-接入点名称(APN) Activity名称:com.android.settings/com.android.settings.Settings$ApnSettingsActivity 物联网第三方业务平台通用APN为CMMTM&am…

电信接入点服务器修改,修改apn加快电信4g网速(电信最佳apn接入点)

您好 电信4G网络的带宽可以达到150M,一般使用电信4G网络时接入点可以选择ctlet,详情请登陆电信网上营业厅查看。 您好!您先进入手机的接入点设置--新建apn接入点--名称乱填,apn:cmtds--保存 保存之后,选择自己刚刚设置的接入点,然后您就会发现您自己的手机4G网络的速度很…