微服务实践01--微服务管理18--用户管理02--用户认证01-介绍

简介: 微服务实践01--微服务管理18--用户管理02--用户认证01-介绍

微服务实践目录,可以参见连接。

背景

[上一篇]()文章中整体介绍了用户管理会涉及到的方面,本篇文章主要介绍用户认证相关的方案与技术。回归之前的用词方式,针对认证实体的认证可以分为两类:认证实体软件认证和认证实体绑定硬件认证。

现在很多IoT方面的认证方式都是使用认证实体绑定硬件认证的方法进行认证的。还有很多硬件认证的方式基本上也是以这种方式进行认证的,如通信中的Wifi的Mac地址认证,4GLTE的IMSI认证。4GLTE协议中的终端认证使用通信模块的认证进行终端的认证过程。与IoT的方式都是使用对附属硬件的认证达成对整个认证实体的认证过程。
LTE协议认证过程
认证实体绑定硬件认证的方式还在其他很多方面用到,比如说银行办理网银时发放的硬件KEY。具体的交互方式如下图所示:
iot认证
具体的技术可以参考身份认证技术认证技术。本片文章不关注这种方式的认证,所以就不进行过多的说明。下面我们说明认证实体软件认证相关内容。

认证方向

在上篇文章中已经将用户扩展到认证实体,并说明了所有的认证过程都可以认为是对认证实体的认证过程。在进行深入的考虑,认证一般是存在双方或者三方的。双方是认证实体和认证服务,三方是认证实体、认证服务和业务服务。一般认为认证过程是对客户端的身份认证,但在有些情况下是对服务端的认证。还有一些情况下是需要进行双向认证的。

关于对服务端认证方面可以举一个例子:在一些情况下用户对某个网络服务是信赖的,在使用P2P服务的区块链技术中需要一种对节点认证的方式。对于节点发送的消息的有效性进行判断的过程也可以理解为对服务端的认证过程。对于DNS网络中DNS解析信息传递的过程,其实也可以建立这样的过程。以防止域名污染情况的发生。

对于使用对客户端认证的方式进行认证是一种非常通用的模式。双方认证的情况最常见的例子是HTTPS的双向认证机制。认证最终的目的都是为了鉴别对方的身份,在确认对方身份后既可以进行信任通信。

认证与数据交换方式

数据交换是指用户认证数据怎样从客户端传送到服务端,服务端的验证数据怎样传输给客户端。在这个过程中为了免受中间人攻击,认证过程中的通信管理非常重要。不同层面的解决方案都可以解决这个问题。例如:http通信层面为认证提供了多种认证信息传递的方式Basic, Digest and NTLM,在传输层提供了ssl,tls这些通信加密技术。

认证信息传递过程中尽量不要明文的进行认证信息传递,尽量通过加密算法进行认证信息传递。尽量使用加密通信进行认证过程通信。

认证方法

  1. 统一认证(SSO)

通过统一的认证中心认证用户。通常在企业内部建立一个统一的用户管理与认证中心,由认证中心负责用户的认证。方便企业内部统一管理用户。

  1. 第三方认证(OAuth,OpenID)

第三方保存用户认证方式,以及用户数据。通过互联网上的用户信息达到快速登录,降低复杂度的方法吸引客户使用系统。

  1. OpenAPI

在互联网上免不了和其他的公司有合作有交互。OpenAPI是在互联网上程序间的认证方式。

认证流程

认证信息生命周期:认证->认证信息保持->认证信息过期。认证信息保持会在Session一节中说明
https CA证书,OpenAPI的key和secret都是认证。

认证技术框架

  • 直接认证方式

在使用、管理、存储用户信息的地方,直接进行认证。

  • 中间认证方式

使用用户信息的地方和管理用户信息的地方,是两个地方。

  • 第三方认证方式。

使用第三方的用户数据(通过数据访问接口的方式)获取用户数据。

技术

sso、openapi

Apereo CASSpring Cloud Security,JBoss 开源的 Keycloak  等(.NET IdentityServer4 )。

2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
2017.2.16 开涛shiro教程-第十七章-OAuth2集成(二)客户端

总结

认清认证过程中需要了解:认证方向、认证数据交换、认证方法、认证流程。才可以完整的理解认证过程。本文主要说明认证的过程,下一篇文章会针对认证过程中的技术进行比较和说明。

参考

  • 概述

HttpClient三种不同的认证方案: Basic, Digest and NTLM

认证与授权——单点登录协议盘点:OpenID vs OAuth2 vs SAML
HTTP API 认证授权术

  • 协议

W3C 宣布:WebAuthn 成为正式 Web 标准
OAuth 2.0

  • OAuth2

JWT和Oauth2的区别和联系
10 分钟理解什么是 OAuth 2.0 协议

  • 代码

yapi sso 登录插件
yapi cas 登录插件 By wsfe
oauto2.0登录

4G LTE网络协议漏洞

目录
相关文章
|
8月前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
2282 10
|
运维 持续交付 云计算
深入解析云计算中的微服务架构:原理、优势与实践
深入解析云计算中的微服务架构:原理、优势与实践
869 86
|
监控 持续交付 API
深入理解云计算中的微服务架构:原理、优势与实践
深入理解云计算中的微服务架构:原理、优势与实践
745 83
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
674 12
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
965 17
|
弹性计算 Kubernetes API
构建高效后端服务:微服务架构的深度剖析与实践####
本文深入探讨了微服务架构的核心理念、设计原则及实现策略,旨在为开发者提供一套系统化的方法论,助力其构建灵活、可扩展且易于维护的后端服务体系。通过案例分析与实战经验分享,揭示了微服务在提升开发效率、优化资源利用及增强系统稳定性方面的关键作用。文章首先概述了微服务架构的基本概念,随后详细阐述了其在后端开发中的应用优势与面临的挑战,最后结合具体实例,展示了如何从零开始规划并实施一个基于微服务的后端项目。 ####
|
消息中间件 运维 安全
后端开发中的微服务架构实践与挑战####
在数字化转型的浪潮中,微服务架构凭借其高度的灵活性和可扩展性,成为众多企业重构后端系统的首选方案。本文将深入探讨微服务的核心概念、设计原则、关键技术选型及在实际项目实施过程中面临的挑战与解决方案,旨在为开发者提供一套实用的微服务架构落地指南。我们将从理论框架出发,逐步深入至技术细节,最终通过案例分析,揭示如何在复杂业务场景下有效应用微服务,提升系统的整体性能与稳定性。 ####
337 32
|
运维 监控 Java
后端开发中的微服务架构实践与挑战####
在数字化转型加速的今天,微服务架构凭借其高度的灵活性、可扩展性和可维护性,成为众多企业后端系统构建的首选方案。本文深入探讨了微服务架构的核心概念、实施步骤、关键技术考量以及面临的主要挑战,旨在为开发者提供一份实用的实践指南。通过案例分析,揭示微服务在实际项目中的应用效果,并针对常见问题提出解决策略,帮助读者更好地理解和应对微服务架构带来的复杂性与机遇。 ####
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。