Използвам конкретен доставчик на OIDC за моята сигурност в .Net Core 2.0 MVC Project, но имам проблеми с Discovery Document.
Получих 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, когато няма наличен диско документ?