IP Library › Granted Patent US 12,348,579
Granted Patent B1
US 12,348,579 · App. 18/544,877 · Granted Jul 1, 2025

Access and authentication process for distributed, self-sovereign content sharing

Inventors: Gianluca Filitz (Potsdam, DE); Frank Feinbube (Potsdam, DE)
Assignee: SAP SE
H04L67/06H04L9/30H04L9/3213
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,348,579
App. No.
18/544,877
Granted
Jul 1, 2025
Kind
B1
Abstract

The present disclosure involves systems, software, and computer implemented methods for data sharing. An example method includes receiving, at a first instance of a data sharing server and from a first user device of a first user, a request to grant access to a second user to a first file stored at a first data host connected to the first instance of the data sharing server. An authentication token for a second instance of the data sharing server associated with the second user is issued by the first instance of the data sharing server and to the first user device. The authentication token for the second instance of the data sharing server and a notification that the first user has shared the first file with the second user are received at the second instance of the data sharing server. A notification is sent to a device of the second user.

Claims (81)

1. A computer-implemented method comprising:

receiving, at a first instance of a data sharing server and from a first user device of a first user, a request to grant access to a second user to a first file stored at a first data host connected to the first instance of the data sharing server;

issuing, by the first instance of the data sharing server and to the first user device, an authentication token for a second instance of the data sharing server associated with the second user;

receiving, at the second instance of the data sharing server and from the first user device, the authentication token for the second instance of the data sharing server and a notification that the first user has shared the first file with the second user;

sending, by the second instance of the data sharing server and to a second user device of the second user, the notification that the first user has shared the first file with the second user;

receiving, at the second instance of the data sharing server and from the second user device, a request for an authentication token for the first instance of the data sharing server;

issuing, by the second instance of the data sharing server and to the second user device, an authentication token for the first instance of the data sharing server;

receiving, at the first instance of the data sharing server and from the second user device, the authentication token for the first instance of the data sharing server and a request for contents of the first file;

verifying, at the first instance of the data sharing server, that the first file has been shared with the second user;

retrieving, by the first instance of the data sharing server and from the first data host, the contents of the first file; and

providing the contents of the first file to the second user device.

2. The computer-implemented method of claim 1 , further comprising authenticating the first user at the first instance of the data sharing server before receiving the request from the first user device to grant access to the second user to the first file stored at the first data host.

3. The computer-implemented method of claim 1 , further comprising:

determining, by the first instance of the data sharing server, whether the first instance of the data sharing server trusts the second instance of the data sharing server.

4. The computer-implemented method of claim 3 , further comprising:

in response to determining that the first instance of the data sharing server trusts the second instance of the data sharing server:

identifying a public key of the second instance of the data sharing server previously obtained from the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

5. The computer-implemented method of claim 3 , further comprising, in response to determining that the first instance of the data sharing server does not trust the second instance of the data sharing server:

sending a request, by the first instance of the data sharing server to the second instance of the data sharing server for a public key of the second instance of the data sharing server;

receiving, by the first instance of the data sharing server and from the second instance of the data sharing server, the public key of the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

6. The computer-implemented method of claim 1 , further comprising:

determining, by the second instance of the data sharing server, whether the second instance of the data sharing server trusts the first instance of the data sharing server.

7. The computer-implemented method of claim 6 , further comprising:

in response to determining that the second instance of the data sharing server trusts the first instance of the data sharing server:

identifying a public key of the first instance of the data sharing server previously obtained from the first instance of the data sharing server; and

using, by the second instance of the data sharing server, the public key of the first instance of the data sharing server to generate the authentication token for the first instance of the data sharing server.

8. The computer-implemented method of claim 6 , further comprising, in response to determining that the second instance of the data sharing server does not trust the first instance of the data sharing server:

sending a request, by the second instance of the data sharing server to the first instance of the data sharing server for a public key of the first instance of the data sharing server;

receiving, by the second instance of the data sharing server and from the first instance of the data sharing server, the public key of the first instance of the data sharing server; and

using, by the second instance of the data sharing server, the public key of the first instance of the data sharing server to generate the authentication token for the first instance of the data sharing server.

9. The computer-implemented method of claim 1 , further comprising authenticating the second user at the second instance of the data sharing server before receiving the request from the second user device for the authentication token for the first instance of the data sharing server.

10. A system comprising:

one or more computers; and

a computer-readable medium coupled to the one or more computers having instructions stored thereon which, when executed by the one or more computers, cause the one or more computers to perform operations comprising:

receiving, at a first instance of a data sharing server and from a first user device of a first user, a request to grant access to a second user to a first file stored at a first data host connected to the first instance of the data sharing server;

issuing, by the first instance of the data sharing server and to the first user device, an authentication token for a second instance of the data sharing server associated with the second user;

receiving, at the second instance of the data sharing server and from the first user device, the authentication token for the second instance of the data sharing server and a notification that the first user has shared the first file with the second user;

sending, by the second instance of the data sharing server and to a second user device of the second user, the notification that the first user has shared the first file with the second user;

receiving, at the second instance of the data sharing server and from the second user device, a request for an authentication token for the first instance of the data sharing server;

issuing, by the second instance of the data sharing server and to the second user device, an authentication token for the first instance of the data sharing server;

receiving, at the first instance of the data sharing server and from the second user device, the authentication token for the first instance of the data sharing server and a request for contents of the first file;

verifying, at the first instance of the data sharing server, that the first file has been shared with the second user;

retrieving, by the first instance of the data sharing server and from the first data host, the contents of the first file; and

providing the contents of the first file to the second user device.

11. The system of claim 10 , wherein the operations further comprise authenticating the first user at the first instance of the data sharing server before receiving the request from the first user device to grant access to the second user to the first file stored at the first data host.

12. The system of claim 10 , wherein the operations further comprise:

determining, by the first instance of the data sharing server, whether the first instance of the data sharing server trusts the second instance of the data sharing server.

13. The system of claim 12 , wherein the operations further comprise:

in response to determining that the first instance of the data sharing server trusts the second instance of the data sharing server:

identifying a public key of the second instance of the data sharing server previously obtained from the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

14. The system of claim 12 , wherein the operations further comprise, in response to determining that the first instance of the data sharing server does not trust the second instance of the data sharing server:

sending a request, by the first instance of the data sharing server to the second instance of the data sharing server for a public key of the second instance of the data sharing server;

receiving, by the first instance of the data sharing server and from the second instance of the data sharing server, the public key of the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

15. The system of claim 10 , wherein the operations further comprise:

determining, by the second instance of the data sharing server, whether the second instance of the data sharing server trusts the first instance of the data sharing server.

16. A computer program product encoded on a non-transitory storage medium, the product comprising non-transitory, computer readable instructions for causing one or more processors to perform operations comprising:

receiving, at a first instance of a data sharing server and from a first user device of a first user, a request to grant access to a second user to a first file stored at a first data host connected to the first instance of the data sharing server;

issuing, by the first instance of the data sharing server and to the first user device, an authentication token for a second instance of the data sharing server associated with the second user;

receiving, at the second instance of the data sharing server and from the first user device, the authentication token for the second instance of the data sharing server and a notification that the first user has shared the first file with the second user;

sending, by the second instance of the data sharing server and to a second user device of the second user, the notification that the first user has shared the first file with the second user;

receiving, at the second instance of the data sharing server and from the second user device, a request for an authentication token for the first instance of the data sharing server;

issuing, by the second instance of the data sharing server and to the second user device, an authentication token for the first instance of the data sharing server;

receiving, at the first instance of the data sharing server and from the second user device, the authentication token for the first instance of the data sharing server and a request for contents of the first file;

verifying, at the first instance of the data sharing server, that the first file has been shared with the second user;

retrieving, by the first instance of the data sharing server and from the first data host, the contents of the first file; and

providing the contents of the first file to the second user device.

17. The computer program product of claim 16 , wherein the operations further comprise authenticating the first user at the first instance of the data sharing server before receiving the request from the first user device to grant access to the second user to the first file stored at the first data host.

18. The computer program product of claim 16 , wherein the operations further comprise:

determining, by the first instance of the data sharing server, whether the first instance of the data sharing server trusts the second instance of the data sharing server.

19. The computer program product of claim 18 , wherein the operations further comprise:

in response to determining that the first instance of the data sharing server trusts the second instance of the data sharing server:

identifying a public key of the second instance of the data sharing server previously obtained from the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

20. The computer program product of claim 18 , wherein the operations further comprise, in response to determining that the first instance of the data sharing server does not trust the second instance of the data sharing server:

sending a request, by the first instance of the data sharing server to the second instance of the data sharing server for a public key of the second instance of the data sharing server;

receiving, by the first instance of the data sharing server and from the second instance of the data sharing server, the public key of the second instance of the data sharing server; and

using, by the first instance of the data sharing server, the public key of the second instance of the data sharing server to generate the authentication token for the second instance of the data sharing server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2023
From: FILITZ, GIANLUCA; FEINBUBE, FRANK
To: SAP SE
Reel/Frame 065909/0076 →
References Cited (19)
US 7284203B1 · Meeks et al. · 2007 [cited by applicant]
US 10552796B1 · Delacourt et al. · 2020 [cited by applicant]
US 10812627B2 · Berg et al. · 2020 [cited by applicant]
US 11119649B1 · Sahgal et al. · 2021 [cited by applicant]
US 11416673B1 · Peterson et al. · 2022 [cited by applicant]
US 11689695B1 · Julian et al. · 2023 [cited by applicant]
US 11985201B1 · Mehta · 2024 [cited by examiner]
US 20110239113A1 · Hung et al. · 2011 [cited by applicant]
US 20120002883A1 · Gotoh et al. · 2012 [cited by applicant]
US 20130073685A1 · Isaza et al. · 2013 [cited by applicant]
US 20140280535A1 · Owens · 2014 [cited by examiner]
US 20160373516A1 · Reyes · 2016 [cited by applicant]
US 20170193835A1 · Bonney-Ache et al. · 2017 [cited by applicant]
US 20200250662A1 · Carpenter et al. · 2020 [cited by applicant]
US 20200320042A1 · Fitzer et al. · 2020 [cited by applicant]
US 20240169092A1 · Hu · 2024 [cited by examiner]
U.S. Appl. No. 18/544,864, Filitz et al., Storage Layer Abstraction for Distributed, Self-Sovereign Content Sharing, filed Dec. 19, 2023, 63 pages. [cited by applicant]
U.S. Appl. No. 18/544,871, Filitz et al., Document Templating System for Distributed, Self-Sovereign Content Sharing, filed Dec. 19, 2023, 64 pages. [cited by applicant]
Non-Final Office Action in U.S. Appl. No. 18/544,871, mailed on Feb. 13, 2025, 21 pages. [cited by applicant]