繁体   English   中英

Identity Server 4 OpenID Connect查找是否应该公开?

[英]Should Identity Server 4 OpenID Connect Discovery be public?

Identity Server 4通过.well-known/openid-configuration URL公开OpenID Connect发现。 现在我还不太清楚为什么会出现在这里或应该由谁访问。 据我了解,本页面的全部工作是提供有关端点的信息。

可以访问我的IS4服务器的应用程序将预先配置端点,因为它们都是内部端点,因此我认为没有必要公开此页面,我认为不泄露此信息更为安全。

因此,我的问题是我应该限制对此页面的访问吗? 如果没有,为什么?

保留该端点的主要好处是自动客户端配置。 AspNet.Security.OpenIdConnect.Samples GitHub页面上MVC示例

// Note: setting the Authority allows the OIDC client middleware to automatically
// retrieve the identity provider's configuration and spare you from setting
// the different endpoints URIs or the token validation parameters explicitly.
Authority = "http://localhost:54540/"

服务器库具有在启动过程中更改任何端点路径的功能,例如用于获取令牌的端点 通过使用自动配置,您的应用程序可以自动获取该更改,而无需手动更新所有客户端应用程序。

仅当您要使用此功能时,才提供此功能。


如果此应用程序仅暴露于您的内部网络(或仅位于您自己的计算机或Docker网络中),则绝对不会有任何危害。

如果此应用程序暴露在公共网络中,则您需要开始问自己是否要让攻击者知道配置终结点提供的信息。

攻击者仅会知道该应用程序是Auth服务器,通向各个端点的路径,您支持的OAuth2流类型以及其他一些小细节。 如果您有公开使用的文档,这将只是该文档的机器可读版本。

确保只对Auth服务器端点进行身份验证,而不是着眼于阻止对配置端点的访问。 发出令牌之前,您应该检查客户端ID和客户端机密是否正确。

来自oauth.com (这是有关自省端点的,但实际上该原理适用于所有端点):

如果自省端点处于打开状态且不受限制,则表示攻击者可以轮询端点钓鱼以获取有效令牌。 为防止这种情况,服务器必须使用端点要求对客户端进行身份验证,或者仅通过其他方式(例如防火墙)使端点对内部服务器可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM