передавать ID чего? ID юзера? ну тогда рано или поздно кастомер узнает какой ID валидный и будет просто напрямую заходить в те приложения в обход портала.. это не есть гуд.ie wrote:я бы посоветовал делать все КАК МОЖНО ПРОЩЕ.
тоесть если это какой то портал для внутреннего пользования внутри компании, то не заморачиваться и передовать ID как URL параметр.
сколько ползователей будет пользовать вебсайт в день?
если меньше 1 000 000 в день то не замарачиваться с кэшем а лазить в базу (или где там вы храните groups<-->users)
при каждом обращении к сереверу.
в КРАЙНЕМ случае потом можно будет оптимизировать.
ASP.NET Core authentication
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: ASP.NET Core authentication
shadow7256 wrote: передавать ID чего? ID юзера? ну тогда рано или поздно кастомер узнает какой ID валидный и будет просто напрямую заходить в те приложения в обход портала.. это не есть гуд.
SessionID. можно добавить к нему Date-Time и зашифровать, тагда даже "russians" не смогут взломать ваш сайт.
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
наверное так проще всего будет. При логине в портал генерим SessionID (тот же GUID). Добавляем к линку на другие приложения. При клике на линк приложение откроется, поищет SessionID. Если нет его то кинет обратно на страницу портала. Если есть, залезет в базу, вытащит пользователя, авторизует и вперед..ie wrote:shadow7256 wrote: передавать ID чего? ID юзера? ну тогда рано или поздно кастомер узнает какой ID валидный и будет просто напрямую заходить в те приложения в обход портала.. это не есть гуд.
SessionID. можно добавить к нему Date-Time и зашифровать, тагда даже "russians" не смогут взломать ваш сайт.
в гробу я видал все эти custom headers и прочую херню...
-
- Уже с Приветом
- Posts: 2414
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: ASP.NET Core authentication
Точно! Нахрен все! Не гугль с амазном какие-нить, вавилоны на голове строить... )))
В вашем последнем: "поищет SessionID" должно уже возвращать юзера - один сервис.
В вашем последнем: "поищет SessionID" должно уже возвращать юзера - один сервис.
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
тут еще вот в чем проблемка может быть.. Портал может использовать Identity authentication (бывшая Forms) или Windows authentication. В первом случае у клиента будет база данных (тот же SQL Server) с юзерами и группами, а во втором случае юзер будет тащиться из Active Directory. Вот именно поэтому и хотелось сделать так, что портал сам достанет юзера (либо из базы либо из Active Directory), создаст какой то объект класса, заполнит поля, сериализует (в тот же token какой нибудь) и уже передаст его дальше в приложения.. а приложения уже "распакуют" этот объект и обработают..Oleg-NY wrote:Точно! Нахрен все! Не гугль с амазном какие-нить, вавилоны на голове строить... )))
В вашем последнем: "поищет SessionID" должно уже возвращать юзера - один сервис.
Допустим одно из приложений написано на ASP.NET MVC, тогда можно было бы в Session_Start вытащить этот токен, распаковать, создать ClaimsPrincipal, добавить claims, выставить этот Principal и все.. клиент "залогинен". Больше ничего делать не надо, остальной код уже будет работать с User (UserPrincipal).. собственно он и щас уже работает..
таким образом приложениям из портала наплевать где живет юзер.. в базе данных или в Active Directory. А так придется порталу генерить SessionID, где то его хранить.. запоминать что с этим SessionID связано и прочее..
Last edited by shadow7256 on 05 Jan 2017 16:29, edited 1 time in total.
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: ASP.NET Core authentication
можно пример как вы это делаете тут запостить.shadow7256 wrote: Допустим одно из приложений написано на ASP.NET MVC, тогда можно было бы в Session_Start вытащить этот токен, распаковать, создать ClaimsPrincipal, добавить claims, выставить этот Principal и все.. клиент "залогинен". Больше ничего делать не надо, остальной код уже будет работать с User (UserPrincipal).. собственно он и щас уже работает..
просто интересно.
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
мы в свое время для одного клиента (я тут писал уже эту тему) забацали SAML authentication для нашего приложения. Для этого используется third party компонент, который собственно и делает всю грязную работу по работе с SAML. В итоге нам в Session_Start уже приходит готовый ClaimsPrincipal, и вот я его обрабатываю вот так:ie wrote:можно пример как вы это делаете тут запостить.shadow7256 wrote: Допустим одно из приложений написано на ASP.NET MVC, тогда можно было бы в Session_Start вытащить этот токен, распаковать, создать ClaimsPrincipal, добавить claims, выставить этот Principal и все.. клиент "залогинен". Больше ничего делать не надо, остальной код уже будет работать с User (UserPrincipal).. собственно он и щас уже работает..
просто интересно.
Code: Select all
var user = ClaimsPrincipal.Current;
if (user != null && user.Identity.AuthenticationType == "Federation")
{
var groups = GetSAMLGroupNames (user);
// и так далее..
}
private static List<string> GetSAMLGroupNames(ClaimsPrincipal principal)
{
var result = new List<string>();
var groupClaims = principal.Claims.Where(c => c.Type.Contains("Group"));
if (groupClaims.Any())
{
result.AddRange(groupClaims.Select(g => g.Value));
}
return result;
}
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
вообщем эту безумную идею отвергли. Единственный способ это сделать это поставить SAML server или ADFS и чтобы все 5 приложений имплементировали либо тот либо другой протокол. Все приложения разные по натуре и структуре и это займет тучу времени. Плюс надо будет делать 5 разных auth cookies, по одному для каждого приложения..Плюс не факт что клиенты будут рады самостоятельно обслуживать SAML или ADFS. Это геморрой ох какой большой...
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: ASP.NET Core authentication
Не пишите с нуля как вам тут насоветовали. Найдите готовое single sign on решение. Если вы сами никогда не писали подобное, 100% гарантия что "дырки" будут. Очень наивно думать что это очень просто написать "на коленке".
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2414
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: ASP.NET Core authentication
Дык у них там целый зоопарк так, что скорее всего придется все ручками, ручками...
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: ASP.NET Core authentication
Ну-ну, тогда потом не жалуетесь
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2414
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: ASP.NET Core authentication
Ладно вам людей пугать-то! )) Тестировать просто надо хорошо, вот и все дела... )) Не боги горшки обжигают!
-
- Уже с Приветом
- Posts: 12017
- Joined: 08 Sep 2006 20:07
- Location: Силиконка
Re: ASP.NET Core authentication
А тесты будут писать те же люди, что и собственно систему спроектируют?Oleg-NY wrote:Ладно вам людей пугать-то! )) Тестировать просто надо хорошо, вот и все дела... )) Не боги горшки обжигают!
ИМХО скорее аудит нужен, а не тесты...
Мир Украине. Свободу России.
-
- Уже с Приветом
- Posts: 1830
- Joined: 04 Mar 2002 10:01
- Location: Tampa
Re: ASP.NET Core authentication
shadow7256 wrote:Как потом правильно переправить юзера на другой домен из Javascript?
Code: Select all
<script>
window.location.href = "http://www.google.com";
</script>
Посмотреть, почитать, понять как работает
https://developers.facebook.com/docs/facebook-login/web" onclick="window.open(this.href);return false;
и забацать свою, сильно упрощенную версию.
Несите чушь бережно, стараясь не расплескать. Чушь хороша, когда она полная.
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
наши клиенты не будут использовать facebook authenticationVovaK98 wrote:А вообще.. тысячи сайтов используют facebook authentication token. Куча примеров и use cases, что стоит поискать.
-
- Уже с Приветом
- Posts: 2414
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: ASP.NET Core authentication
Так вам вроде и не предлагают...
-
- Уже с Приветом
- Posts: 9392
- Joined: 18 Mar 2004 15:11
- Location: New York -> FL
Re: ASP.NET Core authentication
это не очень просто мы это знаем. Мы когда делали SAML authentication для клиента ох мы на...сь с этим делом. Но вот именно single sign on мы не делали.Flash-04 wrote:Не пишите с нуля как вам тут насоветовали. Найдите готовое single sign on решение. Если вы сами никогда не писали подобное, 100% гарантия что "дырки" будут. Очень наивно думать что это очень просто написать "на коленке".
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: ASP.NET Core authentication
какую идею и кто отверг?shadow7256 wrote:вообщем эту безумную идею отвергли. Единственный способ это сделать это поставить SAML server или ADFS и чтобы все 5 приложений имплементировали либо тот либо другой протокол. Все приложения разные по натуре и структуре и это займет тучу времени. Плюс надо будет делать 5 разных auth cookies, по одному для каждого приложения..Плюс не факт что клиенты будут рады самостоятельно обслуживать SAML или ADFS. Это геморрой ох какой большой...
больше деталей можно? просто интересно...
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: ASP.NET Core authentication
я не пугаю, просто я несколько лет работал "ассесором" разных систем включая Web Apps. Насмотрелся, мама дорогая.... Причём были продукты от компаний с хорошей репутацией. А причина в том, что "типичный" программист о безопасности не думает в принципе и воспринимает требования как досадную помеху в работе. Особенно смешно когда что-то относящееся к безопасности начинают "прикручивать" когда сама система уже говотова, а она в принципе не проектировалась чтобы какой-то там доступ разделять.Oleg-NY wrote:Ладно вам людей пугать-то! )) Тестировать просто надо хорошо, вот и все дела... )) Не боги горшки обжигают!
Вот посоветовали "прикрутить" facebook authentication. Человек который это посоветовал знает разницу между authentication и authorization?
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 2414
- Joined: 16 Jul 2004 00:32
- Location: NY, NY
Re: ASP.NET Core authentication
Насколько я понял предлагалось не прикручивать FB auth, а покурить и сделать нечто подобное. Нет?
А насчет authorization, так в этом деле напортачить можно с любой, даже самой хорошей third party системой...
P.S. По поводу программеров, так мы вроде не обсуждаем здесь индусо-устойчивость подхода, а чисто идеи, предполагая, что на готове команда с прямыми руками. Как в том фильме "Василий Иванович меняет профессию": Да ты, батюшка, только скажи, а мы переймем (музыканты).
А насчет authorization, так в этом деле напортачить можно с любой, даже самой хорошей third party системой...
P.S. По поводу программеров, так мы вроде не обсуждаем здесь индусо-устойчивость подхода, а чисто идеи, предполагая, что на готове команда с прямыми руками. Как в том фильме "Василий Иванович меняет профессию": Да ты, батюшка, только скажи, а мы переймем (музыканты).
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: ASP.NET Core authentication
"индусо-устойчивость" ни при чём. Тут в Канаде приходилось работать и с "русско-еврейским" коллективом. То же самое, только в профиль.
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: ASP.NET Core authentication
вот и спецы подтянулисьFlash-04 wrote: Человек который это посоветовал знает разницу между authentication и authorization?
так вы что-нить посоветовали уже? или только распалцовкой нас будете радовать?
-
- Уже с Приветом
- Posts: 63430
- Joined: 03 Nov 2004 05:31
- Location: RU -> Toronto, ON
Re: ASP.NET Core authentication
моя работа не советовать, а находить "дыры" в том что вы тут насоветуете
мне за это деньги платят. (кстати совет был выше)
мне за это деньги платят. (кстати совет был выше)
Not everyone believes what I believe but my beliefs do not require them to.
-
- Уже с Приветом
- Posts: 23804
- Joined: 05 Jul 2003 22:34
- Location: Брест -> St. Louis, MO
Re: ASP.NET Core authentication
Я голосую за готовое решение. Читать доки, разбираться, продумывать как это будет имплементироваться все не фан с точки зрения девелоперов. НО. Кода будет меньше чем самому писать и даже если будет больше частей то скорее всего оно будет надежнее. Сейчас я говорю не как девелопер а как человек который не хочет разгребать чье-то "код".
Девелоперы обычно не хотят это делать. Но если есть готовое решение которое уже давно и не уйдет никуда скоро - надо брать.
Девелоперы обычно не хотят это делать. Но если есть готовое решение которое уже давно и не уйдет никуда скоро - надо брать.
Лучше водки — хуже нет! ©
-
- Уже с Приветом
- Posts: 11019
- Joined: 15 May 2002 02:09
- Location: Boston, MA
Re: ASP.NET Core authentication
позволю себе сделать одно маленькое замечание.
надесь уважаемые доны со мно согласятся, что если мы проектируем вебсайт типа амазон -- у нас одни требование к секюрити
если мы проектирум портал для внутреннего пользования в компании из 20 человек, который всегда будет работать ЗА файрволом
у нас ДРУГИЕ требование к секюрити. yes/no/maybe?
т.к. во втором случае конешно можно нагородить гарадулек, и превратить маленький проект на 2-3 дня
в проект на 2-3 месяца с умопомрачительным майтаненс.
agree?
надесь уважаемые доны со мно согласятся, что если мы проектируем вебсайт типа амазон -- у нас одни требование к секюрити
если мы проектирум портал для внутреннего пользования в компании из 20 человек, который всегда будет работать ЗА файрволом
у нас ДРУГИЕ требование к секюрити. yes/no/maybe?
т.к. во втором случае конешно можно нагородить гарадулек, и превратить маленький проект на 2-3 дня
в проект на 2-3 месяца с умопомрачительным майтаненс.
agree?