【问题标题】:openid connect authentication protocol in extranet network外网中的openid连接认证协议
【发布时间】:2018-09-17 22:31:18
【问题描述】:

我有一个场景,我必须在外联网中使用 openID 连接。当应用程序初始化时,它会从 .well-known/openid-configuration 下载元数据文档,并为此发出 HTTP Get 请求。在没有互联网连接的外联网中,如何获取 openid 连接元数据文档? openID connect 可以在没有互联网连接的情况下工作吗?

谢谢!

【问题讨论】:

    标签: openid openid-connect dotnetopenauth


    【解决方案1】:

    您不需要互联网即可使用 OpenID Connect。当我使用互联网一词时,我指的是连接一般网站或万维网的网络。协议的唯一要求是能够使用 HTTP(和 TLS)在不同角色(例如:客户端、授权服务器、资源服务器和最终用户)之间进行通信。

    您可以在内联网中使用 OpenID Connect。该网络可以与互联网分离。并且可以通过VPN连接多个内网。拥有 VPN 可以将您与互联网分开,但允许使用 HTTP 通信。

    所以是的,可以在没有互联网的情况下使用 OpenID Connect,但它需要如上所述的网络配置。

    【讨论】:

    • 是的,这是一个有趣的答案。当我与其他应用程序开发人员讨论 Internet、Intranet 和 Extranet 时,总是存在一些误解。一些开发人员说 Internet 是 Intranet 和 Extranet 的一部分,但它们是不同的,对吧?如何在 Extranet 中启用 HTTP 通信?这是网络工程师做的事情吗,作为一名应用程序开发人员,我想对此有更多的了解,如果您可以分享任何在线参考资料,它将帮助我更好地理解。
    • 这篇文章 (tutorialspoint.com/computer_fundamentals/…) 描述并给出了与我的回答类似的基本概述。 Intranet 可以使用所需的协议进行通信。 HTTP 就是其中之一,许多组织都维护着 Intranet。这是由网络工程师完成的。此外,当您使用 VPN 时,您的网络之间的通信受到保护,但仍然可以使用 Internet 传输数据包。
    【解决方案2】:

    如果客户端应用无法与外界通信(但想要登录应用的用户可以),那么您可以:

    • 硬编码应用中 openid-configuration 文档中的配置值;
    • jwks_uri 引用的加密密钥执行相同操作;
    • 使用不需要您从应用调用令牌端点的response type(例如id_token);
    • (解密并)使用上述加密密钥验证您从应用本地用户重定向收到的 ID 令牌。

    如果 OpenID 提供者频繁或不定期地轮换加密密钥,您可能会遇到问题,因为您需要一种带外机制来保持这些更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2010-11-24
      相关资源
      最近更新 更多