|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
handmadeFromRuIdol_111Еще раз опишу, что меня беспокоит как ДБА: Несколько программ обращаются к API и затем обезличиваясь под ОДНИМ логином лезут в БД. Это в принципе не есть хорошо (простые примеры привел выше). А уж о решение проблем с производительностью вообще можно свет тушить. Какая программа уронила сервер надо долго и нудно ковыряться в логах теперь не только БД, но еще API. Супер! эм вот я обращаюсь к сервиса доставки чтоб они мне дали адреса куда можно и цену. по вашему они мне что делают свое соединение? Хвост вам все правильно говорит. проблемы с перфомансом - как это решается за счет разных учеток? если программа уронила сайт для этого есть к примеру ролбар или грейлог, если в файловых логах стремно искать, что соберет максимально все и предоставить в удобном виде. если ваши программы лезут через одно общее апи то никто не отменял их авторизацию и реализацию прав, чтоб понять кто и откуда что сделал и что может впринципе сделать. Перекладывать эт на уровень учеток к бд это не есть хорошая практика в вебе, для изернета я б еще понял на основе учеток AD. Мне кажется с сложностями устранения проблем с производительностью вы сталкиваетесь не часто. У меня нет пары часов разбираться и какая это программа из 20ти положила сервер вызвав ХП с такими дикими параметрами. А вот имея разные учетки это определяется за секунду и далее по программе. А вот почему "отменили" имперсонацию и решили перевести реализацию прав (обращаю Ваше внимание: для программ, не для юзеров) на уровень выше (API) мне вообще не понятно. Смысл? Выше я уже писал, что логически это только ухудшает безопасность. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 00:26 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111Shocker.Pro, И у каждой программы есть AD account, который и используется для подключения к API. Меня как ДБА не устраивает, что затем API подключается к БД под одним общим логином. Ну, надо немного поменять АПИ, что бы в поле Приложение (допустим) соединения писала себя и своего клиента АПИ/ПрогаКлиент1, АПИ/ПрогаКлиент2 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 00:37 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
ViPRosIdol_111Shocker.Pro, И у каждой программы есть AD account, который и используется для подключения к API. Меня как ДБА не устраивает, что затем API подключается к БД под одним общим логином. Ну, надо немного поменять АПИ, что бы в поле Приложение (допустим) соединения писала себя и своего клиента АПИ/ПрогаКлиент1, АПИ/ПрогаКлиент2 В такие нюансы я уже не влазил. Можно и имперсонацию сделать (правда кода больше), но все прикрываются тем что МелкоСофт сказал - не желательно использовать имперсонацию. Типа best practise. Почему это лучшая практика я нигде не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 01:31 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111У меня нет пары часов разбираться и какая это программа из 20ти положила сервер вызвав ХП с такими дикими параметрами. А вот имея разные учетки это определяется за секунду и далее по программе. т.е. вы хотите, API (на апп сервере) подключалась к базе используя AD аккаунт пользователя программы, использующего этот API? Такого нигде не видел, так не делается. Права пользователя действительно разделяются на уровне API, именно там решается, кто к каким фунциям имеет доступ. У API есть логи, нет никаких проблем залезть в них и посмотреть кто с какими дикими параметрами вызывал API. То, что "надо лезть в 2 разных лога" это не аргумент. Нет никакой необходимости дублировать безопасность сначала на уровне API, а потом еще и в БД. Это должно быть в одном месте ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 03:38 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Еще раз - для вот этогоIdol_111какая это программа из 20ти положила сервер вызвав ХП с такими дикими параметрами. А вот имея разные учетки это определяется за секунду и далее по программе.AD не требуется, достаточно, чтобы были разные логины. В случае разных логинов не требуется и ViPRosнадо немного поменять АПИ, что бы в поле Приложение (допустим) соединения писала себя и своего клиента АПИ/ПрогаКлиент1, АПИ/ПрогаКлиент2 Idol_111что затем API подключается к БД под одним общим логином.Ну так пусть эти API подключаются под разными SQL-логинами, тут-то в чем проблема? При этом сами приложения имеют учетки в AD и для всего остального (что вам там требуется, файловые права раздавать?) пользуются ими. Да, придется завести в SQL-сервере дополнительно 20 логинов, вы вы по времени уже больше копий на форуме сломали, чем это действие сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 04:40 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111hVostt, ну записывать меня в чистые админы я бы не стал :), я умудрился еще на фортране пописать. 1)2)3) Вы очевидно путаете админстрирование для конечного пользователя и для программы. Все, что Вы описали - это для конечного пользователя, и вне сомнения это должно быть сделано на уровне программы, тут спору нет. Еще раз опишу, что меня беспокоит как ДБА: Несколько программ обращаются к API и затем обезличиваясь под ОДНИМ логином лезут в БД. Это в принципе не есть хорошо (простые примеры привел выше). А уж о решение проблем с производительностью вообще можно свет тушить. Какая программа уронила сервер надо долго и нудно ковыряться в логах теперь не только БД, но еще API. Супер! Я ничего не путаю. Никто не отменял права для учётки, под которой ходит приложение в БД. Но оно одно на всё приложение, а не для каждого пользователя персонально. Потому что это маразм для сервера приложений. Ваши заявления про производительность, это вообще какой-то лютый бред, уж извините. Переубеждать вас в чём-то не буду, потому что это не вопрос веры, а вопрос знаний и опыта, у вас с этим наблюдаются некоторые проблемы, это не страшно. Как говорится, придёт с опытом. Или не придёт, но это зависит только от вас, уж точно не от меня или от другого участника дискуссии. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 04:50 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
hVosttНо оно одно на всё приложение, а не для каждого пользователя персональноДа вроде ТС и говорит, что у него одна учетка на приложение, просто приложений 20 штук. 04:50Ты ЕЩЕ не спишь, УЖЕ не спишь или перебрался на восток? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 05:00 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Shocker.ProДа вроде ТС и говорит, что у него одна учетка на приложение, просто приложений 20 штук. Ну можно разных учёток выдать каждому приложению. Можно даже сопоставить для каждого пользователя отдельную строку соединения, мало того, что ходить будет с разными привилегиями в БД, так ещё и в разные БД по желанию Shocker.ProТы ЕЩЕ не спишь, УЖЕ не спишь или перебрался на восток? Уже, иногда очень рано просыпаюсь, потом сижу читаю что-нибудь, или пишу здесь %) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 05:17 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
hVosttНу можно разных учёток выдать каждому приложению. Можно даже сопоставить для каждого пользователя отдельную строку соединения, мало того, что ходить будет с разными привилегиями в БД, так ещё и в разные БД по желанию Вот я и говорю. Но ТС очень хочет привязаться в этом месте к AD и пока непонятно, почему такое жесткое требование. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 05:30 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Shocker.ProНу так пусть эти API подключаются под разными SQL-логинами, тут-то в чем проблема? я так понимаю API одно на всех, отсюда вся и драма, а менять строку подключения для каждого коннекта - это будет новое слово в разработке приложений ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:17 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Lessypя так понимаю API одно на всехТо есть четырехзвенка что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:23 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Shocker.ProТо есть четырехзвенка что ли? почему, самая обычная трехзвенка, API что на апп сервере естественно подключается по одному логину вне зависимости от того, какое приложение к нему подключилось ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:37 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Lessypпочему, самая обычная трехзвенка, API что на апп сервере естественно подключается по одному логину вне зависимости от того, какое приложение к нему подключилосьShocker.ProЯ может быть где-то недопонял, поэтому переспрошу.А, вот теперь догнал. Под приложением подразумевается толстый клиент, а не серверное приложение. А под АПИ подразумевается как раз серверное приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:45 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Shocker.ProhVosttНу можно разных учёток выдать каждому приложению. Можно даже сопоставить для каждого пользователя отдельную строку соединения, мало того, что ходить будет с разными привилегиями в БД, так ещё и в разные БД по желанию Вот я и говорю. Но ТС очень хочет привязаться в этом месте к AD и пока непонятно, почему такое жесткое требование. Насколько я понял, требования нет, как такового. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:48 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Shocker.ProА, вот теперь догнал. Под приложением подразумевается толстый клиент, а не серверное приложение. А под АПИ подразумевается как раз серверное приложение. Т.е. это типа сквозной интерфейс к БД, через API. Что лишено какого-либо смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 06:50 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
У меня возникло какое-то чувство неловкости :). То ли я разучился внятно объяснять, то ли народ перестал вдумчиво читать. Вроде уже все было разжевано выше. Только без обид. Это я философски. В принципе позицию девелоперов я понял. Остался загадкой для меня лишь один вопрос. Почему МелкоСофт считает использование имперсонирования плохой практикой? Вроде всегда считал с точностью до наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:12 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111Почему МелкоСофт считает использование имперсонирования плохой практикой?это не он. Это логика: 1. Веб приложение это грубо - сайт. 2. Сайт ходит в бд под публичным обезличенным пользователем. Правда не врубился? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:19 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111У меня возникло какое-то чувство неловкости :) .. Остался загадкой для меня лишь один вопрос. Почему МелкоСофт считает использование имперсонирования плохой практикой? Мне тоже немного неловко, но вроде-бы Calabonga дал ответ на этот вопрос в первом-же посте этого топика ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:21 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111меня нет пары часов разбираться и какая это программа из 20ти положила сервер вызвав ХП2 варианта решения: В момент логина прога в контекст базы пишет имяПриложения 2. В строке логина добавить ApplicationName=myApp Будешь видеть в списке коннектов кто сидит в приложении. Но вообще, хорошему админу это не требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:24 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Petro123Idol_111Почему МелкоСофт считает использование имперсонирования плохой практикой?это не он. Это логика: 1. Веб приложение это грубо - сайт. 2. Сайт ходит в бд под публичным обезличенным пользователем. Правда не врубился? Я ж не против, но нахрена ВСЕ сайты ходят в бд под ОДНИМ обезличенным пользователем. В чем прикол? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:26 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
LessypIdol_111У меня возникло какое-то чувство неловкости :) .. Остался загадкой для меня лишь один вопрос. Почему МелкоСофт считает использование имперсонирования плохой практикой? Мне тоже немного неловко, но вроде-бы Calabonga дал ответ на этот вопрос в первом-же посте этого топика Calabonga и правда молодец, сразу и в точку. Но я решил еще покопать может у кого еще какое мнение. Вот только в моем случае кросплатформенность нам нафиг не упала. У нас все .net. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:28 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111но нахрена ВСЕ сайтывыше просил описать хотя бы ОДИН ваш сайт). ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:32 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111но нахрена ВСЕ сайты ходят в бд под ОДНИМ обезличеннымне верю. Каждое веб приложение со своими настройками, и коннектом. Слово API уберите из темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:35 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Idol_111Я ж не против, но нахрена ВСЕ сайты ходят в бд под ОДНИМ обезличенным пользователем. В чем прикол?Кто говорит, что все? Если у вас один сервер АПИ, это и есть единственное приложение (сайт) с точки зрения субд. Потребители этого АПИ ходят через АПИ, СУБД про них ничего не знает и знать не должна . Разделение прав на уровне АПИ должно быть. Если АПИ+ДБА хотят, они могут сделать разделение прав на своем уровне, но это не должно иметь отношения к клиентам этого АПИ (будь то толстые, тонкие клиенты или другие серверные приложения). Вы пытаетесь пробросить аутентификацию и авторизацию сквозь уровень - это неверный подход с граблями. На кои грабли вы сейчас и наступили. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:44 |
|
ASP.NET Core doesn't implement impersonation
|
|||
---|---|---|---|
#18+
Аффтар! Вы же админ! Нельзя про все на свете говорить API. Это вообще термин не ваш)))). Разберитесь что у вас порты, вебПриложения, АппСервера, субд. Термин API это к разрабам и архитекторам. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2018, 07:47 |
|
|
start [/forum/topic.php?fid=18&msg=39675370&tid=1355173]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
85ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 191ms |
0 / 0 |