Есть два часто используемых метода:
1. При создании файла создаётся запись в определённую таблицу базы и на эту запись навешиваются пермишены. Юзеры переходят по ссылке, мидлваря проверяет права и, если они есть, отдаёт файл в ответ.
2. Сохранить файл в определённую папку, например, по id юзера и при попытке скачать проверять имя папки. Но это бредовый способ. Но используется. Но лучше не надо.