Re[8]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 03.09.21 11:51
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


AN>>Зато удобнее будет делать авторизацию. Не зря же ведь микрософт IS 5 взял


НС>Ты же в курсе что он платный, и сильно платный?

Да, хотя еще не до конца понял, как будет с NET6.0 — у кого доход больше млн. тот платит?
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Shmj Ниоткуда  
Дата: 03.09.21 11:52
Оценка:
Здравствуйте, AlexNek, Вы писали:

S>>Брр... Что мешает на клиенте сделать подпись приватным ключом и не передавать его на сервер?

AN>Клиент и приватный ключ как то для меня не совмещается вместе.

Там два варианта:

1. Вычислять хеш пароля на клиенте и передавать не пароль а хеш по HTTPS-каналу.
2. Клиент генерит себе закрытый ключ, а на сервер отправляет только открытый.

S>>А что через это окошко данные на сервер не передаются?

AN>Но не через rest api

И что? Какое это имеет значение?
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 03.09.21 21:28
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>С трудом понимаю что все таки ты хочешь.

AN>Вся проблема в том, что на сервере нет прямого доступа к базе

И что ты хочешь? Где хранить пользователей, если БД нет?

AN>Проблема с этим вариантом видимое переключение


Тем не менее безопасен только он.

AN>, ... хотя можно во фрэйме вызывать.


Тоже не очень хорошая практика. В строке браузера должен отображаться урл страницы логина с статусом сертификата, чтобы пользователь видел что он пароль туда, куда надо вводит, а не в какую то обманку.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 03.09.21 21:28
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>Ты же в курсе что он платный, и сильно платный?

AN>Да, хотя еще не до конца понял, как будет с NET6.0 — у кого доход больше млн. тот платит?

При чем тут доход? Это зависит только от количества клиентов и требуемого дополнительного функционала — https://duendesoftware.com/products/identityserver#pricing
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[10]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 04.09.21 08:42
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


НС>>>С трудом понимаю что все таки ты хочешь.

AN>>Вся проблема в том, что на сервере нет прямого доступа к базе

НС>И что ты хочешь? Где хранить пользователей, если БД нет?


Почему нет? Нет только прямого доступа к таблицам чего хочет DbContext, ну и EF соотвественно также нет.
Re[10]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 04.09.21 08:48
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


НС>>>Ты же в курсе что он платный, и сильно платный?

AN>>Да, хотя еще не до конца понял, как будет с NET6.0 — у кого доход больше млн. тот платит?

НС>При чем тут доход? Это зависит только от количества клиентов и требуемого дополнительного функционала — https://duendesoftware.com/products/identityserver#pricing

тут вроде немного по другому
https://devblogs.microsoft.com/aspnet/asp-net-core-6-and-authentication-servers/

хотя входит в противоречие с этим
https://duendesoftware.com/license/identityserver.pdf
Возможно имеется в виду исключительно "прямое" использование IS
Re[11]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 04.09.21 11:30
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Почему нет? Нет только прямого доступа к таблицам чего хочет DbContext, ну и EF соотвественно также нет.


А что есть?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[12]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 04.09.21 14:43
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


AN>>Почему нет? Нет только прямого доступа к таблицам чего хочет DbContext, ну и EF соотвественно также нет.


НС>А что есть?

А что это имеет какой то смысл в конексте вопроса? Допустим, некий интерфейс с набором функций FindUserBy... и прочих.
Всё что позволяет написать вместо
services.AddDefaultIdentity<ApplicationUser>()
                .AddEntityFrameworkStores<ApplicationDbContext>();


Это
services.AddDefaultIdentity<ApplicationUser>()
                .AddCustomStores();
Re[13]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 05.09.21 18:10
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>А что есть?

AN>А что это имеет какой то смысл в конексте вопроса?

Я до сих пор не могу понять в чем твой вопрос.

AN>Допустим, некий интерфейс с набором функций FindUserBy... и прочих.

AN>Всё что позволяет написать вместо
AN>
AN>services.AddDefaultIdentity<ApplicationUser>()
AN>                .AddEntityFrameworkStores<ApplicationDbContext>();
AN>


AN>Это

AN>
AN>services.AddDefaultIdentity<ApplicationUser>()
AN>                .AddCustomStores();
AN>


Так в чем проблема то? Заменить дефолтную реализацию на EF не так уж и сложно. Не особо сложно и весь Aspnet.Idenity оттуда выкинуть. Только по прежнему непонятно зачем тебе это нужно и что ты при помощи такого шага хочешь решить.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[14]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 09:33
Оценка:
НС>Здравствуйте, AlexNek, Вы писали:

НС>>>А что есть?

AN>>А что это имеет какой то смысл в конексте вопроса?

НС>Я до сих пор не могу понять в чем твой вопрос.


Ну можно пойти по шагам. Какой из шагов непонятен?
A1. Создаем Blazor WebAssembly Hosted Applications
https://timheuer.com/blog/deploy-blazor-webassembly-applications-on-azure-using-github-actions-wasm/
Запускаем, создаем базу всё работает.
A2. Смотрим, что с базой данных. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext.
A3. Что имеется? Скажем так, что идентичная база данных раположеная на том же сервере. Но что это за база, какого типа и какие там есть таблицы сервер не знает. У него есть только интерфейс через который он может работать с базой.

Вариант Б
Б1. Создаем Blazor Server с Individual User Account
https://docs.microsoft.com/en-us/powerapps/developer/data-platform/webapi/quick-start-blazor-server-app
Б2. Смотрим, что с базой данных. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext.
Б3. Для Identity имеется Custom Store. Пишем свой Custom Store и обращаемся куда угодно за данными

Вариант С
С1. Создаем проект с IdentityServer4 как сервер и также свой проект как клиент использую ASP.NET Core
С2. Смотрим, что с базой данных на сервере. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext. Модель базы такая же, но данные несколько отличаются.
С3. Для IS4 также есть Custom Store и дополнительные данные. Все также можно заменить на "свои" вызовы.
Re[15]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 06.09.21 10:48
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Ну можно пойти по шагам. Какой из шагов непонятен?


Мне непонятно что ты хочешь получить и зачем, а не твои шаги.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[16]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 11:04
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


AN>>Ну можно пойти по шагам. Какой из шагов непонятен?


НС>Мне непонятно что ты хочешь получить и зачем, а не твои шаги.

То бишь, по шагам никаких вопросов нет, всё понятно?

Хочу получить рабочий вариант A1 с п.3 вместо п.2
Re[17]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 06.09.21 11:26
Оценка:
Здравствуйте, AlexNek, Вы писали:

AN>Хочу получить рабочий вариант A1 с п.3 вместо п.2


Ты специально так формулируешь, чтобы тебя сложно было понять? Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД? Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[18]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 11:57
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


AN>>Хочу получить рабочий "вариант A" с п.3 вместо п.2


НС>Ты специально так формулируешь, чтобы тебя сложно было понять?

Сорри, но я не могу даже вообразить какие еще сложности могут быть с пониманием
Что непонятного в описанных ранее шагах?

НС>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД?

Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б". Кроме того, визуальное переключение окон неприемлимо.

НС>Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей?

Ну почему опять — нет базы???
Да есть же база, только доступ к ней — не через локальный DBContext. Это всё отличие.

У меня есть только красный овал, всё что в зеленой рамке недоступно.
Во всех примерах, по умолчанию "зеленая рамка" должна быть доступна.
Re[19]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 06.09.21 12:51
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД?

AN>Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б".

Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты. Какие такие несовместимые данные, почему оним вдруг создаются?

AN> Кроме того, визуальное переключение окон неприемлимо.


Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.
Если на безопасность пофик — зачем тебе тогда вообще OAuth2 и IS? Сделай простейшую схему с API Key.
И, в любом случае, это совсем другая история, не имеющая вообще никакого отношения к потребности IS в собственной БД.

НС>>Откуда IS должен брать при отсутствии БД информацию для валидации клиентов и пользователей?

AN>Ну почему опять — нет базы???
AN>Да есть же база, только доступ к ней — не через локальный DBContext

А какой есть?

AN>Image: 2021-09-06_13-48-32.png


Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[20]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 13:30
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


НС>>>Еще раз — почему не устраивает необходимость продеплоить для IS его собственную БД?

AN>>Ну так это "Вариант С". Там создаются другие данные несовместимые с "вариантом Б".

НС>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты.

Почему какие то? Это ссылка на то что было уже описано. Могу еще раз скопировать

Вариант С
С1. Создаем проект с IdentityServer4 как сервер и также свой проект как клиент использую ASP.NET Core
С2. Смотрим, что с базой данных на сервере. Это MsSQL, она расположена на сервере и к ней происходит "прямой доступ" через DBContext. Модель базы такая же, но данные несколько отличаются.
С3. Для IS4 также есть Custom Store и дополнительные данные. Все также можно заменить на "свои" вызовы.


AN>> Кроме того, визуальное переключение окон неприемлимо.


НС>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.

Ну так это и есть варант А, что сделал микрософт. Только он выглядит "приличнее".

A1. Создаем Blazor WebAssembly Hosted Applications
https://timheuer.com/blog/deploy-blazor-webassembly-applications-on-azure-using-github-actions-wasm/



НС>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо.

Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.
Похоже мы слишком по разному мыслим. Если уж и картинка не помогает.
Но попробую.

НС>Какие такие несовместимые данные, почему оним вдруг создаются?

Хэш пароля пользователя минимум другой.

НС>А какой есть?

Никакого нет ДБ контекста, есть только интерфейс доступа. Код что ли нужен?
Re[21]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 06.09.21 13:45
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты.

AN>Почему какие то?

Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения.

НС>>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.

AN>Ну так это и есть варант А, что сделал микрософт.

И?

НС>>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо.

AN>Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.

Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.

AN>Похоже мы слишком по разному мыслим.


https://rsdn.org/Info/howtoask.xml

НС>>Какие такие несовместимые данные, почему оним вдруг создаются?

AN>Хэш пароля пользователя минимум другой.

Где другой хеш пароля? Кто создает другой хеш пароля? Как его IS проверит, если к нему доступа нет?

НС>>А какой есть?

AN>Никакого нет ДБ контекста

Пипец просто.

AN>, есть только интерфейс доступа.


Какой такой интерфейс доступа? БД все таки есть и коннект внутри процесса доступен, просто к ней нет DBContext? Или у процесса вообще доступа к БД нет?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[22]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 14:33
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, AlexNek, Вы писали:


НС>>>Ну пипец. Я задаю вопрос, а в ответ опять какие то варианты.

AN>>Почему какие то?

НС>Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения.

Это не решения,а обяснения того что уже сделано и попробовано.

НС>>>Это небезопасно. Еще раз — единственный безопасный способ аутентификации в OAuth2 в случае неконтроллируемого делоймента — Auth Code Flow with PKCE.

AN>>Ну так это и есть варант А, что сделал микрософт.
НС>И?
И я его хочу использовать

НС>>>Выкинь из головы все свои подробности реализации и ответь на заданные вопросы прямо.

AN>>Сорри, но имею понятию в каких категориях Вы мыслите что бы ответить адекватно.

НС>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.

Ну отчего специфический? вроде совершенно общеизвестный

AN>>Похоже мы слишком по разному мыслим.


НС>
https://rsdn.org/Info/howtoask.xml
Может быть это требуется?

Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали (1..6);



НС>>>Какие такие несовместимые данные, почему оним вдруг создаются?

AN>>Хэш пароля пользователя минимум другой.

НС>Где другой хеш пароля? Кто создает другой хеш пароля?

Базы данных пользователей созданных с помощью Микрософт и с помошью IS будут отличаться. MS и IS создают разные хэши.
НС>Как его IS проверит, если к нему доступа нет?

Это прямой доступ к базе, для которого и требуется dbContext. Тут прямой доступ к реляционной таблице Users, которая описана в dbContext
IdentityUser user = dbContext.Users.FirstOrDefault(u => u.Id.Equals(userId));

Это используется по умолчанию. (Возможно не абсолютно так)


А это как я обращаюсь на самом нижнем уровне к пользователям. Мне совершенно по барабану как данные пользователя хранятся и где.
IdentityUser user = dbInterface.GetUserById(userId);

Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext


Может так станет понятней?
Re[23]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: Ночной Смотрящий Россия  
Дата: 06.09.21 14:44
Оценка:
Здравствуйте, AlexNek, Вы писали:

НС>>Потому что ты не отвечаешь на вопросы по исходной задаче, а вместо этого пытаешься впихнуть свои решения.

AN>Это не решения,а обяснения того что уже сделано и попробовано.



НС>>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.

AN>Ну отчего специфический?

От того что никто не знает, что и как там у тебя все устроено, и информацию из тебя приходится доставать клещами.

НС>>https://rsdn.org/Info/howtoask.xml

AN>Может быть это требуется?
AN>

AN>Когда задаете вопрос, укажите с самого начала, что вы все это уже сделали (1..6);


Нет, требуется:

Описывайте симптомы проблемы, а не свои предположения
Задавайте ясные и четкие вопросы


НС>>Где другой хеш пароля? Кто создает другой хеш пароля?

AN>Базы данных пользователей созданных с помощью Микрософт

Ты в Microsoft звонил и они тебе прислали базу твоих пользователей? Что за "Базы данных пользователей созданных с помощью Микрософт"?

НС>>Как его IS проверит, если к нему доступа нет?

AN>Это прямой доступ к базе, для которого и требуется dbContext.

Нет, для прямого доступа не требуется DBContext.

AN>Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext


Такая возможность есть, и не одна. Чтобы ответить подробнее — надо нормально задать вопрос.

AN>Может так станет понятней?


Пока не особо.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[24]: Blazor WebAssembly Hosted Applications без прямого доступа в базу
От: AlexNek  
Дата: 06.09.21 15:36
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>>Зато мы все тут имеем понятие про твой специфический контекст, ага. Ну, как знаешь.

AN>>Ну отчего специфический?

НС>От того что никто не знает, что и как там у тебя все устроено, и информацию из тебя приходится доставать клещами.

Так это абсолютно стандартные знания. Ничего особенного. Хотя да, Blazor — это несколько молодая тема.

AN>>Может быть это требуется?

НС>Нет, требуется:
НС>

НС>Описывайте симптомы проблемы, а не свои предположения
НС>Задавайте ясные и четкие вопросы

Ну именно так и начиналось. Вот что есть, а вот что надо.

НС>>>Где другой хеш пароля? Кто создает другой хеш пароля?

AN>>Базы данных пользователей созданных с помощью Микрософт

НС>Ты в Microsoft звонил и они тебе прислали базу твоих пользователей? Что за "Базы данных пользователей созданных с помощью Микрософт"?

Тут уж мне пора хвататься за голову, как можно дойти то такой мысли?
Создаём проект, допустим тот же Blazor WebAssembly Hosted Applications, запускаем его, создаем базу, регистрируем пользователей — вот и база с пользователями и паролями.
Или хотелось что бы было написано типа: База данных пользователей созданная с помощью программы на основе стандартного темплате от американской софтваре фирмы Микрософт, сделанной в визуал студии 2019?

НС>>>Как его IS проверит, если к нему доступа нет?

AN>>Это прямой доступ к базе, для которого и требуется dbContext.

НС>Нет, для прямого доступа не требуется DBContext.

Ну теперь уже мне интересно, а что требуется SQL? Или что? Или прямой доступ нужно было обязательно в скобки взять?

AN>>Но что бы это сделать нужно иметь интерфейс ICustomStore и возможность задать его использование вместо dbContext


НС>Такая возможность есть, и не одна. Чтобы ответить подробнее — надо нормально задать вопрос.

У меня на работе был коллега, который также не понимал моих объяснений, пока я не понял какими категориями он мыслит и не стал отвечать такими же категориями.
Но я пока никак не могу врубится в какой вселенной вы живете, и что означают для вас "нормальные вопросы".
Ну например, я не знаю другой официальной возможности подменить доступ к данным пользователя, кроме как через ICustomStore, хотя бы для IS.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.