Въпроса ми е насочен към Курвазие и може би Стилгар (нали още ми е приятел) и който и да е друг, който е работил с .net и OIDC.
Имам .net core 3.1 web api. В него използвам Swagger. Всичките ни автентикации и авторизации стават през Identity Server 4. Казаха ми да търся дали има начин да заключа апитоми/swagger/index.html и никой да не го отваря да гледа схемата без да съм ги логнал в IS4.
Swagger не предоставя възможност да залостиш индексната страница с някаква автентикация и затова прибегнах до следният код
protected override void Configure(IApplicationBuilder app)
{
app.UseStaticFiles()
.UseRouting()
.UseAuthorization()
.UseEndpoints(endpoints =>
{
var pipeline = endpoints.CreateApplicationBuilder().Build();
var oidcAuthorize = new AuthorizeAttribute { AuthenticationSchemes = OpenIdConnectDefaults.AuthenticationScheme };
endpoints.Map("/swagger/index.html", pipeline).RequireAuthorization(oidcAuthorize);
});
}
Съответно си имам и добавени AddAuthentication, AddCookie и AddOpenIdConnect към IServiceCollection.
Та какво се случва : Рекуествам апитоми/swagger/index.html и съм препратен към логина на IS4. Логвам се успешно. Редиректнът съм към апитоми/signin-oidc, което е дефолтният път в OpenIdConnectOptions.CallbackPath и AddOpenIdConnect трябва вече да е сложиш хендлър за този път и съответно да ме върне към изначалната страница (/апитоми/swagger/index.html). Обече не иска, забива си на 404.
П.С. Всички коментари, които не са директно по въпросът ще бъдат изтривани директно от мен. Без брадвички и без сечива.
Не съм ползвал OpenID Connect никога. На бърз гугъл виждам, че UI-а поддържа само до OAuth за swashbuckle и nswag.
Това е добър проблем за трупане на github репутация. Но си признавам, трябва да почета повече по въпроса. В момента не мога да ти помогна. Но като се чудя какво да правя бих подълбал в тази насока. Има запитвания още от 2018-та година.
Да ринах доста. При единият проблема му се случва на продъкшън в ажура. Друг пък го отсвирват в IS4 гитхъба с валиден тикет и му казват ми това е MSFT OIDC имплементация, не е наш проблем и затварят тикета. Ей ти ги cons на отвореният софтуер.
Не разбирам OpenID. Ако имаш време, това е добра възможност за гитхъб репутация. Шпакловах до 9:30 Бих го проучил ако още е available след два-три месеца, но в момента просто трябва да свърша ремонта.