Как настроить конечную точку.well-known/openid-configuration в Identity Server

Я новичок в OpenID Connect и Identity Server. Я пытаюсь настроить экземпляр тестового сервера, используя пример кода из проекта аутентификации MVC IdentityServer3.Samples. Проблема в том, что я не вижу, где установлена ​​хорошо известная конечная точка конфигурации, и я не уверен, как это сделать. Я много искал, как это сделать, но оказался пустым. Я также следовал за этой статьей от Dylan Beattie (минус ngrok), но, похоже, он игнорирует тот факт, что в примере проекта нет хорошо известной конечной точки. Как настроить конечную точку.well-known /openid-configuration?

1 ответ

Решение

Конечная точка обнаружения реализована в самом IdentityServer3:

WebApiConfig.cs

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

Вот контроллер DiscoveryEndpoint DiscoveryEndpointController.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>();

Вместо того, чтобы вносить поправки в ответ, приведенный выше, тем, кто ищет конфигурацию.well-known/openid, использующую IdentityServer, нужно поискать в сопоставленной папке, которую вы определили в классе Startup.

например:

app.Map ("/ core", coreApp =>

который изменит корневой путь, который вы публикуете для других как [website]/core/.well-known/openid-configuration

Это не было изначально очевидно для меня, поскольку я ошибочно предполагал, что корневой путь будет использоваться для обеспечения согласованности услуг, которые я использовал.

Другие вопросы по тегам