通用架构是所谓的联合网关。在此方法中,IdentityServer充当一个或多个外部身份提供商的网关。

该架构具有以下优点:

  • 您的应用程序只需要了解一个令牌服务(网关),并且屏蔽了有关连接到外部提供程序的所有详细信息。这也意味着您可以添加或更改这些外部提供程序,而无需更新您的应用程序。
  • 您控制网关(而不是某些外部服务提供商) - 这意味着您可以对其进行任何更改,并保护您的应用程序免受外部提供程序可能对其自己的服务所做的更改。
  • 大多数外部提供商仅支持一组固定的声明和声明类型 - 中间有一个网关允许对提供商的响应进行后处理,以转换/添加/修改特定于域的身份信息。
  • 某些提供商不支持访问令牌(例如社交提供商) - 因为网关知道您的API,它可以根据外部身份发出访问令牌。
  • 某些提供商根据您连接的应用程序数量收费。网关充当外部提供程序的单个应用程序。在内部,您可以根据需要连接任意数量的应用程序。
  • 一些提供商使用专有协议或对标准协议进行专有修改 - 通过网关,您只需要处理一个地方。
  • 通过一个地方强制进行每次身份验证(内部或外部),可以为身份映射提供极大的灵活性,为所有应用程序提供稳定的身份并处理新的需求

换句话说 - 拥有联合网关可以让您对身份基础结构进行大量控制。由于您的用户身份是您最重要的资产之一,我们建议您控制网关。

27.1 实现

我们的快速入门UI使用了以下一些功能。另请参阅外部身份验证快速入门和有关外部提供程序的文档。

  • 您可以通过向IdentityServer应用程序添加身份验证处理程序来添加对外部身份提供程序的支持。
  • 你可以通过调用程序查询这些外部供应商IAuthenticationSchemeProvider。这允许基于已注册的外部提供程序动态呈现您的登录页面。
  • 我们的客户端配置模型允许基于每个客户端限制可用的提供者(使用该IdentityProviderRestrictions属性)。
  • 您还可以使用EnableLocalLogin客户端上的属性告诉您的UI是否应该呈现用户名/密码输入。
  • 我们的快速启动UI漏斗通过一个回调所有外部认证调用(见ExternalLoginCallbackAccountController类)。这允许单点进行后处理。

github地址

第27章 联合网关 - Identity Server 4 中文文档(v1.0.0)的更多相关文章

  1. 第26章 联合注销 - Identity Server 4 中文文档(v1.0.0)

    联合注销是指用户使用外部身份提供程序登录IdentityServer,然后用户通过IdentityServer未知的工作流程注销该外部身份提供程序的情况.当用户注销时,对IdentityServer进 ...

  2. 第38章 刷新令牌 - Identity Server 4 中文文档(v1.0.0)

    第38章 刷新令牌 由于访问令牌的生命周期有限,因此刷新令牌允许在没有用户交互的情况下请求新的访问令牌. 以下流程支持刷新令牌:授权代码,混合和资源所有者密码凭据流.需要明确授权客户端通过设置Allo ...

  3. 第36章 扩展授权 - Identity Server 4 中文文档(v1.0.0)

    OAuth 2.0为令牌端点定义了标准授权类型,例如password,authorization_code和refresh_token.扩展授权是一种添加对非标准令牌颁发方案(如令牌转换,委派或自定义 ...

  4. 第61章 IdentityServer Options - Identity Server 4 中文文档(v1.0.0)

    IssuerUri 设置将在发现文档和已颁发的JWT令牌中显示的颁发者名称.建议不要设置此属性,该属性从客户端使用的主机名中推断颁发者名称. PublicOrigin 此服务器实例的来源,例如http ...

  5. 第62章 EntityFramework支持 - Identity Server 4 中文文档(v1.0.0)

    为IdentityServer中的配置和操作数据扩展点提供了基于EntityFramework的实现.EntityFramework的使用允许任何EF支持的数据库与此库一起使用. 这个库的仓库位于这里 ...

  6. 第58章 Profile Service - Identity Server 4 中文文档(v1.0.0)

    IdentityServer通常在创建令牌或处理对userinfo或内省端点的请求时需要有关用户的身份信息.默认情况下,IdentityServer仅具有身份验证cookie中的声明,以便为此身份数据 ...

  7. 第55章 API资源 - Identity Server 4 中文文档(v1.0.0)

    此类建模API资源. Enabled 指示此资源是否已启用且可以请求.默认为true. Name API的唯一名称.此值用于内省身份验证,并将添加到传出访问令牌的受众. DisplayName 该值可 ...

  8. 第54章 身份资源 - Identity Server 4 中文文档(v1.0.0)

    此类为身份资源建模. Enabled 指示此资源是否已启用且可以请求.默认为true. Name 标识资源的唯一名称.这是客户端将用于授权请求中的scope参数的值. DisplayName 该值将用 ...

  9. 第42章 发现(discovery) - Identity Server 4 中文文档(v1.0.0)

    可以在*https://baseaddress/.well-known/openid-configuration*找到发现文档.它包含有关IdentityServer的端点,密钥材料和功能的信息. 默 ...

随机推荐

  1. Java_异常处理

    这篇我们聊聊java中的异常.首先我们要知道什么是异常? Exception: exception翻译过来就是“意外”的意思.事实上,异常的本质就是程序的错误,包括程序逻辑错误和系统错误.错误在编写程 ...

  2. Cheat Engine 6.8 设置中文

    下载翻译文件包 https://cheatengine.org/downloads.php 下载后解压到 "Cheat Engine 6.8.3\languages" 下面 修改 ...

  3. 1、了解计算机与操作系统发展阶段 2、选择一个具体的操作系统,结合计算机与操作系统的发展阶段,详细了解其渊源、发展过程、趋势,整理成简洁美观的图文博客发布。 Windows Mac os x Unix Linux Android 等。

    1.了解计算机与操作系统发展阶段 操作系统并不是与计算机硬件一起诞生的,它是在人们使用计算机的过程中,为了满足两大需求:提高资源利用率.增强计算机系统性能,伴随着计算机技术本身及其应用的日益发展,而逐 ...

  4. python os.walk()方法--遍历当前目录的方法

    前记:有个奇妙的想法并想使用代码实现,发现了一个坑,百度了好久也没发现的"填坑"的文章~~~~~~~~~ 那就由我来填 os.walk()支持相对路径 例如 os.walk(&qu ...

  5. OJ002

    register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.注意是尽可能,不是绝对. 因为,如果定义了很多register变量,可能会超过CPU的寄 ...

  6. PTA第四次作业

    题目 7-1 计算职工工资 1.设计思路 (1)第一步:观察题意了解各个参数与所需函数在题目中的意义: 第二步:设计算法编写函数,让函数的功能实现题目中所需的功能: 第三步:运行程序检测是否错误. ( ...

  7. idea Empty git --version output:解决

    在使用idea下的git时候发现报错 但看了一下我的git-bas位置确实没有错啊,也可以启动 后来google了才下发现原来idea的这个地方不用引用的git-bash.exe的路径,而是git.e ...

  8. [Swift]LeetCode743. 网络延迟时间 | Network Delay Time

    There are N network nodes, labelled 1 to N. Given times, a list of travel times as directededges tim ...

  9. [Swift]LeetCode911. 在线选举 | Online Election

    In an election, the i-th vote was cast for persons[i] at time times[i]. Now, we would like to implem ...

  10. kubernetes---kubectl 管理集群资源

    由于我现在的集群是把虚拟机的master文件直接拷贝过来的,所以之前的node节点是不存在的,只有k8s-ubuntu-1是新加入的,所以我要把上面之前创建的资源删除 删除deployment--&g ...