IdentityServer4, IResourceStore.GetAllResources()

Sig*_*hol 2 identityserver4

我正在考虑构建一个实现 IdentityServerIResourceStore接口的类。我的目标是提供自定义存储库中定义的服务IdentityResourceApiResource集合。

理想情况下,我将收到对这些资源的请求,并使用与查询相关的子集进行响应。简而言之:你只得到你所要求的。

这个GetAllResources()方法让我怀疑:IdentityServer 是否真的要求我从我的存储库中提取我的整个身份和 API 资源集并使其可用?在这一点上,我不知道这些集合会增长多大,或者从存储库中提取它们的成本。

简单地以空或空的资源列表响应会产生什么后果?

-S

Sco*_*ady 5

GetAllEnabledResourcesAsyncIResourceStoreExtensions类中的方法中使用,而后者又由DiscoveryEndpoint. 因此,如果您不实现此方法,Discovery 端点将无法显示任何范围或声明。

不实现我的意思是返回一些空列表或其他东西,而不是抛出一个NotImplementedException或返回空......那会破坏一切。