当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net core系列 53 IdentityServer4 (IS4)介绍

asp.net core系列 53 IdentityServer4 (IS4)介绍

2019年04月12日  | 移动技术网IT编程  | 我要评论

非法献花,真爱诺言剧情介绍,百步网

一.概述

  在物理层之间相互通信必须保护资源,需要实现身份验证和授权,通常针对同一个用户存储。对于资源安全设计包括二个部分,一个是认证,一个是api访问。

 

  1 认证

    认证是指:应用程序需要知道当前用户的身份时,需要进行身份验证,确定用户是否有效。最常见的身份验证协议是saml2p,ws-federation、openid connect。saml2p是最受欢迎和最广泛部署的。openid connect是三者中的最新产品,被认为有最大潜力。。

 

  2 api访问

    对api访问是:用户对资源的访问,以api的形式来访问资源,涉及到资源授权。

 

  3 oauth2 介绍

    oauth2是一种协议,全称(open authorization),是为用户资源的授权提供了一个安全的、开放而又简易的标准。互联网很多服务如open api都提供了oauth认证服务。为桌面程序、手机端或web应用提供了一种简单的,标准的方式去访问需要用户授权的api服务。oauth2协议特定:

              (1)简单:不管是oauth服务提供者还是应用开发者,都很易于理解与使用。

              (2)安全:没有涉及到用户密钥等信息,更安全更灵活。

              (3)开放:任何服务提供商都可以实现oauth,任何软件开发商都可以使用oauth。

 

  4 oidc介绍

    oidc是指openid connect,是基于oauth 2.0规范的可互操作的身份验证协议。是用 api 进行身份交互的框架。它使用简单的rest / json消息流来实现。oidc实现了用户验证跨越物理层,无需管理密码文件(密钥)。

    openid是authentication,即认证。对用户的身份进行认证,判断其身份是否有效。

    oauth是authorization,即授权。 对用户允许访问哪些资源的授权。 授权要在认证之后进行,只有确定用户身份才能授权。

    openid connect是“认证”和“授权”的结合。是对oauth 2.0之上的扩展。这样对于两个基本的安全问题,即身份验证和api访问,被合并为一个协议,通常只需一次往返安全令牌服务。

 

  5 identityserver4 介绍

    identityserver4 是适用于asp.net core,集成了openid connect和oauth 2.0的框架。在现实开发中,项目涉及到多种物理层架构,它们是多进程的方式部署到不同的服务器上。比如web、移动、桌面、服务等物理层架构。也有可能是第三方的程序。 这些物理层之间的通信需要涉及到授权和身份认证。最常见的互动包括:

    (1) 浏览器与web应用程序通信。

    (2) web应用程序与web api进行通信(可能都是自己的,也有可能是第三方提供)。

    (3) 服务器的应用程序与web api通信(比如windows服务与web api)。

    (4) web api与web api进行通信(可能都是自己的,也有可能是第三方提供)。

 

    在没有使用安全令牌服务时,多物理层之间通信,看起来像下面这样:

    加了identityserver4重构应用程序后,使用了安全令牌服务,产生的体系结构和协议如下所示:

 

   6 identityserver功能包括:

    (1)保护你的资源(资源可以理解包括权限,比如是否有增、删、改、查的权限)

    (2)使用本地帐户存储或外部身份提供程序对用户进行身份验证

    (3)提供会话管理和单点登录

    (4)管理和验证客户端

    (5)向客户发放身份和访问令牌

    (5)验证令牌

  

  7 名词术语

    用户是指:通过注册成功后, 登录来访问资源的人。比如:会员,系统管理员等。

    客户端是指:向identityserver请求令牌的程序,用于验证用户(请求身份令牌)或访问资源(请求访问令牌)。如web应用程序,本机移动或桌面应用程序,spa,服务器进程等。

    资源:使用identityserver保护资源,比如用户的身份数据或api。身份数据是关于用户的信息也称claim声明, 例如姓名或电子邮件地址。api表示客户端要调用的功能如web api。

    身份令牌:是指身份验证过程,确实用户是否有效。即authentication认证。

    访问令牌:是指允许访问api资源。即authorization授权。

 

  8 nuget包安装

    安装版本网址:https://www.nuget.org/packages/identityserver4/3.0.0-preview3.4

    安装:install-package identityserver4 -version 

 

  9 关于identityserver4的一些开源示例

    

     下面是关于identityserver的源码和示例,其中identityserver4.samples中有大量示例,学习从这里开始。

    https://github.com/identityserver/

 

  10  学习identityserver步骤

    (1) 将identityserver添加到asp.net core应用程序

    (2) 配置identityserver

    (3) 为各种客户发放令牌

    (4) 保护web应用程序和api

    (5) 添加对基于entityframework的配置的支持

    (6) 添加对asp.net身份的支持

    (7) 添加adminui社区版以管理用户和配置

  

  参考文献

     identityserver4官方文档介绍 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网