powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно ограничить доступ к ресурсам.
14 сообщений из 14, страница 1 из 1
Как правильно ограничить доступ к ресурсам.
    #39714630
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет, пишу проект на AspCore WebApi- суть такая, что что Windows-клиент (десктоп WPF), обращается из локальной сети к методу контроллера, который в ответ отправляет ему jwt -токен и потом десктоп клиент передает этот токен мобильному клиенту (Xamarin.Android). В веб приложении по умолчанию проставлена jwt -авторизация:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
    services.AddAuthentication().
                 AddJwtBearer(options =>
                 {
                     options.TokenValidationParameters = new TokenValidationParameters
                     {
                         ValidateIssuer = true,
                         ValidateAudience = true,
                         ValidateLifetime = true,
                         RequireExpirationTime=true,
                         ValidateIssuerSigningKey = true,
                         ValidIssuer = configuration.GetSection("Jwt").GetSection("Issuer").Value,
                         ValidAudience = configuration.GetSection("Jwt").GetSection("Audience").Value,
                         IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration.GetSection("Jwt").GetSection("SecretKey").Value)),
                         ClockSkew = TimeSpan.FromMinutes(0)
                     };
                 });



Как можно настроить доступ к методу контроллера, раздающий токены, чтобы ответ гарантированно посылался только 1-му wpf приложению(), находящиеся в локальной сети (проверка по домену мб). Как костыльный вариант можно конечно посылать в контроллер секретный ключ и в контроллере его сравнивать, но наверно должны быть более верные варианты. Веб приложение будет хоститься на Kestrel- как консольное. Спасибо
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716062
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
не понял, зачем тут десктоп и его задачи?
Третий лишний в общении сервер-клиент на андроид?
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716088
Агнец за бортом
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subпотом десктоп клиент передает этот токен мобильному клиенту

Как это!?
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716510
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Агнец за бортом, десктоп рисует QR, а андроид его считывает камерой.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716540
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subАгнец за бортом, десктоп рисует QR, а андроид его считывает камерой.можно и звуком через динамики передать.
Вопрос то прежний - зачем?
Если вы так скупо описывать будете, то решения не получите.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716613
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
схема такая- есть только 1 wpf приложение, которое может раздавать доступ мобильным приложениям- по другому нельзя. Само мобильное приложение без этого wpf никак не должно подключиться к вебсерверу. То есть сидит человек с мобильными устройствами, к нему приходят другие люди, он выдает каждому мобильное устройство и они считывают QR код с экрана, в котором зашифрован jwt токен авторизации для мобильного приложения для доступа к веб ресурсам. Таким образом система получает информацию о том, что такой - то человек взял такое мобильное устройство.
Идеальный вариант- это генерировать токен авторизации в wpf приложении, однако для этого нужно тащить кучу asp библиотек, поэтому сейчас я использую запрос на веб-сервер, который генерирует и возвращает токен. Так вот я хотел бы максимально защитить это действие контроллера.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716625
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subИдеальный вариант- это генерировать токен авторизации в wpf приложении,
назовём его условно - USB-крипто-ключ-доступа.

vb_subэто генерировать токен авторизации в wpf приложении, однако для этого нужно тащить кучу asp библиотек,
Допустим.
Теперь давай, подробнее про кучу для генерации ключа шифрования.
Какая куча?
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716630
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
токен в asp Core генерирую так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
     [HttpGet]
        [Route("gettoken/{id}")]
        public IActionResult gettkn( string id)
        {
            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Jti,Guid.NewGuid().ToString("N")),
                new Claim("PersonId",id)
            };
            
            var credentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration.GetSection("Jwt").GetSection("SecretKey").Value)),
                SecurityAlgorithms.HmacSha256);

            var token = new JwtSecurityToken
                (
                issuer: configuration.GetSection("Jwt").GetSection("Issuer").Value,
                audience: configuration.GetSection("Jwt").GetSection("Audience").Value,
                claims: claims,
                expires: DateTime.UtcNow.AddDays(1), 
                signingCredentials: credentials
                );

            return Ok(
               new
               {
                   token = new JwtSecurityTokenHandler().WriteToken(token)
               }
             );        
        }



В wpf есть только claims, из System.Security.Claims, да и те, скорее всего не подойдут-соответственно, чтобы сгенерировать JwtSecurityToken нужно задепенденсить пол ASP core проекта.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716638
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Крутите этот сервис на локальной машине с wpf клиентом и ограничьте доступ только с 127.0.0.1.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716642
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subPetro123,
схема такая- есть только 1 wpf приложение, которое может раздавать доступ мобильным приложениям- по другому нельзя. Само мобильное приложение без этого wpf никак не должно подключиться к вебсерверу. То есть сидит человек с мобильными устройствами, к нему приходят другие люди, он выдает каждому мобильное устройство и они считывают QR код с экрана, в котором зашифрован jwt токен авторизации для мобильного приложения для доступа к веб ресурсам. Таким образом система получает информацию о том, что такой - то человек взял такое мобильное устройство.
Идеальный вариант- это генерировать токен авторизации в wpf приложении, однако для этого нужно тащить кучу asp библиотек, поэтому сейчас я использую запрос на веб-сервер, который генерирует и возвращает токен. Так вот я хотел бы максимально защитить это действие контроллера.
А зачем кучу ASP библиотек - не достаточно будет Microsoft.IdentityModel?
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716688
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subскорее всего не подойдут-у нас вроде работает.
Разберитесь и напишите.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716691
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subclaims
1. Разбираетесь почему не работает claims.
2. Второй вариант, в андроиде можно сделать тоже самое.
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716696
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_subТаким образом система получает информацию о том, что такой - то человек взял такое мобильное устройство.эта система, а по взрослому, ИС где стоит? Веб приложение? Зачем ему инфа кто взял мобилу?
Обычная аутентификация не подходит?
Или тут привязка к железу мобилы?
...
Рейтинг: 0 / 0
Как правильно ограничить доступ к ресурсам.
    #39716776
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось сгенерировать jwt- токен с помощью System.IdentityModel.Tokens (для Net-standart проектов).
Вебсерверу нужна инфа, кто взял мобилу- потому что приложение для ограниченного количества мобильных девайсов. С вопросом разобрался- большое спасибо за участие.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно ограничить доступ к ресурсам.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]