Я использую определенного поставщика OIDC для обеспечения безопасности в проекте .Net Core 2.0 MVC, однако у меня возникли проблемы с документом Discovery.
Мне предоставили 3 URL-адреса от провайдера (где домен фиктивный):
https://www.oidcprovider.com/connectapi/authorize
в моей конфигурации я ввел следующие значения:
.AddOpenIdConnect(options => {
options.Authority = "https://www.oidcprovider.com/connectapi/authorize/";
options.ClientId = "xxx";
options.ClientSecret = "xxx";
options.ResponseType = OpenIdConnectResponseType.Code;
options.CallbackPath = new PathString("/api/security/callback");
Я получаю следующую ошибку при попытке запустить приложение:
При обработке запроса возникло необработанное исключение. HttpRequestException: код состояния ответа не указывает на успех: 400 (неверный запрос). System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode ()
IOException: IDX10804: невозможно получить документ из: 'https://www.oidcprovider.com/connectapi/authorize/.well-known/openid-configuration ». Microsoft.IdentityModel.Protocols.HttpDocumentRetriever + d__8.MoveNext ()
InvalidOperationException: IDX10803: невозможно получить конфигурацию из: 'https://www.oidcprovider.com/connectapi/authorize/.well-known/openid-configuration ». Microsoft.IdentityModel.Protocols.ConfigurationManager + d__24.MoveNext ()
Требуется ли для этого OIDC Discovery Document?
Я попытался вызвать URL-адрес документа обнаружения непосредственно в моем браузере, вызвав этот URL-адрес: https://www.oidcprovider.com/connectapi/authorize/.well-known/openid-configuration
Однако я получаю эту информацию в формате JSON обратно:
{"error": "invalid_client", "error_description": "Не указан идентификатор клиента"}
Как мне заставить это работать?
Мои 2 вопроса:
1. Является ли документ об обнаружении необязательным или обязательным?
2. Могу ли я указать конечные точки вручную в .NET Core 2.0, если дискотека недоступна?