Size: a a a

BY Microsoft .NET User Group

2018 August 09

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
в 2.0 все выглядит очень прилично
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
policy based auth
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
resource based auth
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
вчера нашли говнокод в фреймворке с которым можно просидеть пару часов
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
если кто-то будет юзать такой middleware у себя
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
app.UseForwardedHeaders(forwardedHeadersOptions);
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
var forwardedHeadersOptions = new ForwardedHeadersOptions
           {
               ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
           };
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
не забудьде добавить пару строчек
forwardedHeadersOptions.KnownNetworks.Clear();
           forwardedHeadersOptions.KnownProxies.Clear();
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
это для сценария где вы закрыты reverse proxy
источник

A

Anatoly in BY Microsoft .NET User Group
Dzmitry Martavoi
не скажу за 1.1 (помоему там фреймворк в целом кусок говна)
ну а мы с автогенерацией жили на 4.6 ещё. потом переехали на 1.1, потом на 2.0. все эти атрибуты на экшнах - это интересно и клёво, если есть чёткий маппинг на то, что описано в апи. swagger на тот момент тоже был не текущей версии и всё было с этим плохо, поэтому мы и "не придумали".

по факту же ничто не мешает это использовать, если у нас в сваггере есть описания для этого.
источник

A

Anatoly in BY Microsoft .NET User Group
Dzmitry Martavoi
app.UseForwardedHeaders(forwardedHeadersOptions);
cool. а то намучились в своё время.
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
ну просто resource based auth. в сваггере не опишешь
источник

A

Anatoly in BY Microsoft .NET User Group
Dzmitry Martavoi
ну просто resource based auth. в сваггере не опишешь
у них там oauth2, да. но в целом, через x-... можно описать всё что угодно :)
источник

A

Anatoly in BY Microsoft .NET User Group
3я версия OpenAPI (бывший сваггер) в общем и целом сильно лучше. например, стало можно по-человечески описывать ендпойнты с блобами.
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
не, я имею ввиду такой тип авторизации где в зависимости от конкретного ресурса тебе нужно авторизовать конкретный identity

типичный пример это при наличии какого-нибудь

/api/companies/{id}

не позволять получить информацию о компании юзеру другой компании

User
{
CompanyId: "1"
}

/api/companies/1 - 200 OK
/api/companies/2 - 403 Forbidden
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
такую авторизацию сложно формально описать каким то мета dls
источник

A

Anatoly in BY Microsoft .NET User Group
Dzmitry Martavoi
не, я имею ввиду такой тип авторизации где в зависимости от конкретного ресурса тебе нужно авторизовать конкретный identity

типичный пример это при наличии какого-нибудь

/api/companies/{id}

не позволять получить информацию о компании юзеру другой компании

User
{
CompanyId: "1"
}

/api/companies/1 - 200 OK
/api/companies/2 - 403 Forbidden
да, я понял. непонятно, что мешает написать в сваггере
x-requireCompanyRoles: User
источник

DM

Dzmitry Martavoi in BY Microsoft .NET User Group
ну надо гдето потом такой заголовок обработать
источник

A

Anatoly in BY Microsoft .NET User Group
или там.
requiredClaims: company:user
источник

A

Anatoly in BY Microsoft .NET User Group
ну, нагенерить соответсвующий атрибут к экшуну. возможно, даже штатный
источник