发现端点

发现端点可用于检索有关IdentityServer的元数据 - 它返回诸如颁发者名称,密钥材料,支持的范围等信息。

发现端点可通过/.well-known/openid-configuration相对于基地址获得,例如:

https://demo.identityserver.io/.well-known/openid-configuration

IdentityModel 

您可以使用IdentityModel库以编程方式访问发现端点

var discoveryClient = new DiscoveryClient("https://demo.identityserver.io");
var doc = await discoveryClient.GetAsync();

var tokenEndpoint = doc.TokenEndpoint;
var keys = doc.KeySet.Keys;

出于安全原因,DiscoveryClient具有可配置的验证策略,默认情况下会检查以下规则:

  • HTTPS必须用于发现端点和所有协议端点
  • 发行者名称应与下载文档时指定的权限相匹配(实际上在发现规范中必须是)
  • 协议端点应该在权限之下 - 而不是在不同的服务器或URL上(这对于多租户OP来说可能特别有趣)
  • 必须指定密钥集

如果由于某种原因(例如开发环境)您需要放松设置,您可以使用以下代码:

var client = new DiscoveryClient("http://dev.identityserver.internal");
client.Policy.RequireHttps = false;

var disco = await client.GetAsync();

顺便说一句 - 你总是可以通过HTTP连接到localhost和127.0.0.1(但这也是可配置的)。

nidie.com.cn - 用心与你沟通