如何在Identity Server中设置.well-known / openid-configuration端点

时间:2017-02-06 15:18:25

标签: identityserver3 openid-connect

我是OpenID Connect和Identity Server的新手,我尝试使用IdentityServer3.Samples MVC身份验证项目中的示例代码设置测试服务器实例。问题是我不知道在那里设置了.well已知的配置端点,我不确定如何设置它。我已经做了很多搜索如何做到这一点,但空洞。我也跟随了Dylan Beattie的this article(减去ngrok),但似乎忽略了示例项目中没有.well-已知端点的事实。如何设置.well-known / openid-configuration端点?

2 个答案:

答案 0 :(得分:1)

发现端点在IdentityServer3中实现:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find

if (options.Endpoints.EnableDiscoveryEndpoint)
            {
                config.Routes.MapHttpRoute(
                    Constants.RouteNames.Oidc.DiscoveryConfiguration,
                    Constants.RoutePaths.Oidc.DiscoveryConfiguration,
new { controller = "DiscoveryEndpoint", action = "GetConfiguration" });

这是DiscoveryEndpoint控制器WebApiConfig.cs

/// <summary>
/// GET
/// </summary>
/// <returns>Discovery document</returns>
     [HttpGet]
     public async Task<IHttpActionResult> GetConfiguration()
     {
         Logger.Info("Start discovery request");

         var baseUrl = Request.GetIdentityServerBaseUrl();
         var allScopes = await _scopes.GetScopesAsync(publicOnly: true);
         var showScopes = new List<Scope>();

答案 1 :(得分:0)

寻找使用IdentityServer的.well-known / openid-configuration的用户,不必修改以上答案,而是需要查看在Startup类中定义的映射文件夹中。

例如:

app.Map(“ / core”,coreApp =>

这会更改您为其他人发布的根目录,例如[website] /core/.well-known/openid-configuration

这最初对我来说并不明显,因为我错误地认为根路径将被假定为所使用服务的一致性。