RO138236A0 - Hybrid cloud security system - Google Patents
Hybrid cloud security system Download PDFInfo
- Publication number
- RO138236A0 RO138236A0 ROA202300887A RO202300887A RO138236A0 RO 138236 A0 RO138236 A0 RO 138236A0 RO A202300887 A ROA202300887 A RO A202300887A RO 202300887 A RO202300887 A RO 202300887A RO 138236 A0 RO138236 A0 RO 138236A0
- Authority
- RO
- Romania
- Prior art keywords
- list
- user
- planet
- server
- openid
- Prior art date
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
Description
RO 138236 AORO 138236 AO
Sistem Securizare Cloud Hibrid DescriereHybrid Cloud Security System Description
Stadiul tehniciiState of the art
OFICIUL DE STAT PENTRU INVENȚII Șl MĂRCISTATE OFFICE FOR INVENTIONS AND TRADEMARKS
Integrarea aplicațiilor folosite de diverse organizații, dezvoltate intern sau produse software standard implementate, reprezintă o problemă majoră cu pondere mare în costul transformării digitale a organizației. Gestiunea identității utilizatorilor și autorizarea accesului acestora este o problemă de bază, pentru care s-au descoperit diverse soluții. între ele se remarcă protocoalele Oauth, pentru delegarea autorizării accesului către un server de autorizare, și OpenID Connect pentru gestionarea identității peste un protocol Oauth. Aceste soluții descriu procedeele de bază pentru autorizare, detaliile fiind generice și lăsate la latitudinea celor care decid să le folosească.The integration of applications used by various organizations, developed in-house or standard software products implemented, is a major problem with a large weight in the cost of digital transformation of the organization. Managing the identity of users and authorizing their access is a basic problem, for which various solutions have been discovered. among them are the Oauth protocols, for delegating access authorization to an authorization server, and OpenID Connect for identity management over an Oauth protocol. These solutions describe the basic procedures for authorization, with the details being generic and left up to those who decide to use them.
Problema tehnicăTechnical problem
Dezvoltarea infrastructurilor de cloud publice a permis ca serverele de aplicații să fie rulate pe servere publice. Aceste servere pot fi private, ale unui anumit proprietar, dar pot exista si aplicații publice deținute de furnizori de servicii informatice cu aplicabilitate generală. în paralel există aplicațiile moștenite, care rulează pe servere din rețelele locale și nu sunt accesibile din Internet.The development of public cloud infrastructures has allowed application servers to be run on public servers. These servers can be private, belonging to a certain owner, but there can also be public applications owned by IT service providers with general applicability. in parallel there are the legacy applications, which run on servers in local networks and are not accessible from the Internet.
Gestionarea identității utilizatorilor este tratată în majoritatea aplicațiilor software, intern sau prin integrări du alte servicii. Schimbarea metodei de gestionare a identității implică o rescriere majoră a programelor cu care sunt realizate aceste aplicații, care poate chiar să nu fie posibilă dacă nu sunt disponibile sursele sau modificarea nu este permisă de licența de utilizare. Soluțiile de single sign on, cum sunt cele dezvoltate pe baza protocolului OpenID Connect, permit o identitate unică dar nu cuprind soluții pentru integrarea unor sisteme de gestiune a identității preexistente.User identity management is handled in most software applications, internally or through integrations with other services. Changing the identity management method involves a major rewrite of the programs with which these applications are made, which may not even be possible if the sources are not available or the change is not permitted by the user license. Single sign on solutions, such as those developed on the basis of the OpenID Connect protocol, allow a unique identity but do not include solutions for the integration of pre-existing identity management systems.
Descrierea invențieiDescription of the invention
Invenția constă într-un grup de procedee interdependente pentru definirea și organizarea identităților, a aplicațiilor și a drepturilor de acces, pentru verificarea identității și autorizarea accesului și asigurarea corespondenței datelor între aplicații, pentru crearea de utilizatori pe bază de invitație și pentru autorizarea apelurilor programatice de la o aplicație către alta.The invention consists of a group of interdependent processes for defining and organizing identities, applications and access rights, for verifying identity and authorizing access and ensuring data correspondence between applications, for creating users by invitation and for authorizing programmatic calls from one application to another.
Procedeul de verificare a identității și autorizare a accesului este prezentat în figura 1 și descris în continuare. El se bazează pe un server care răspunde la protocolul OpenID Connect într-un mod specific corelat cu restul procedeelor din invenție, care are disponibile o serie de interfețe specifice prezentei invenții. Acest server poate fi un singur program tip server Web rulând pe un calculator accesibil public în Internet, dar poate fi și un grup de calculatoare organizate într-un cluster care rulează în paralel servere de web și un program de balansare automată a încărcării, conectate la o bază de date.The identity verification and access authorization process is shown in figure 1 and described below. It is based on a server that responds to the OpenID Connect protocol in a specific way correlated with the rest of the methods of the invention, which has available a series of interfaces specific to the present invention. This server can be a single Web server program running on a publicly accessible computer on the Internet, but it can also be a group of computers organized in a cluster running Web servers and an automatic load balancer in parallel, connected to a database.
Pagina 1 J 10Page 1 J 10
RO 138236 AO în sistem există unul sau mai multe servere web care rulează o aplicație, numite în continuare planete. O planetă poate fi un singur program sau de asemenea un cluster și un server de baze de date.RO 138236 AO in the system there are one or more web servers running an application, hereinafter called planets. A planet can be a single program or also a cluster and a database server.
Când utilizatorul dorește să acceseze o aplicație aflată pe o planetă (pasul 1 în figura 1), un modul de control acces configurat să filtreze toate cererile HTTP către planetă declanșează un proces de autorizare conform protocolului Oauth cu o autorizare de tip code grant, redirecționând utilizatorul către serverul OpenID (pasul 2 în figura 1), simultan cu crearea unei sesiuni la nivel de planetă și setarea unui HTTP cookieîn răspunsul cu redirecționarea.When the user wants to access an application on a planet (step 1 in Figure 1), an access control module configured to filter all HTTP requests to the planet triggers an Oauth authorization process with a code-grant authorization, redirecting the user to the OpenID server (step 2 in Figure 1), simultaneously creating a planet-wide session and setting an HTTP cookie in the redirect response.
Serverul Openld verifică identitatea utilizatorului prin metodele stabilite la definirea acestuia în sistem și prin dialog cu utilizatorul (pasul 3 din figura 1). Dacă identitatea și prezența utilizatorului sunt confirmate, serverul emite un cod de autorizare și deschide o sesiune utilizator identificată printr-un cod criptografic sigur, stocat într-un HTTP cookie setat în răspunsul cu codul de autorizare Oauth (pasul 4 din figura 1).The Openld server verifies the user's identity through the methods established when defining it in the system and through dialogue with the user (step 3 in figure 1). If the user's identity and presence are confirmed, the server issues an authorization code and opens a user session identified by a secure cryptographic code stored in an HTTP cookie set in the Oauth authorization code response (step 4 in Figure 1).
Utilizatorul accesează apoi planeta prezentând acest cod de autorizare (pasul 5 din figura 1) modulului de control acces de pe planetă. Acesta verifică autenticitatea codului luând legătura cu serverul OpenID (pasul 6 figura 1), unde la rândul lui prezintă un token JWT semnat cu cheia privată a planetei și obține un alt token JWT cu datele asociate utilizatorului, semnat de către serverul OpenID și autentificat de modulul de control acces folosind cheia publică a serverului OpenID.The user then accesses the planet by presenting this authorization code (step 5 in figure 1) to the access control module on the planet. It verifies the authenticity of the code by contacting the OpenID server (step 6 figure 1), where it in turn presents a JWT token signed with the planet's private key and obtains another JWT token with the data associated with the user, signed by the OpenID server and authenticated by the module access control using the public key of the OpenID server.
Modulul de control acces determină identitatea locală corespunzătoare identificatorului utilizatorului. Dacă nu există o identitate locală, verifică dacă exista o invitație de acces la planetă conform procedeului de creare de utilizatori descris mai jos și dacă găsește una face asocierea între identitatea locală și identificatorul de utilizator primit de la OpenID. Dacă nu există nici invitație, creează o nouă identitate locală pe baza datelor referitoare la utilizator primite de la serverul de OpenID. Identitatea locală poate fi preexistentă, dintr-o aplicație moștenită. Aplicația are libertatea deplină de a gestiona identitățile locale, modulul de control acces realizând corespondența identitate locală - identitate globală.The access control module determines the local identity corresponding to the user identifier. If there is no local identity, it checks for a planet access invitation according to the user creation process described below, and if it finds one, it associates the local identity with the user identifier received from OpenID. If there is no invitation, it creates a new local identity based on the user data received from the OpenID server. The local identity may be pre-existing, from a legacy application. The application has full freedom to manage local identities, the access control module realizing the correspondence local identity - global identity.
După determinarea identității locale, modulul de control acces verifică dacă există o corespondență între rolurile din datele referitoare la utilizator primite de la serverul OpenID și drepturile de acces în aplicația web, actualizând dacă este cazul drepturile de acces pentru a corespunde rolurilor alocate global.After determining the local identity, the access control module verifies that there is a correspondence between the roles in the user data received from the OpenID server and the access rights in the web application, updating if necessary the access rights to match the globally assigned roles.
După determinarea identității locale, modulul de control acces setează apoi în aplicația existentă pe planetă utilizatorul conform identității locale deja determinate și setează variabilele de mediu cu valorile primite de la serverul de OpenID.After determining the local identity, the access control module then sets in the existing application on the planet the user according to the already determined local identity and sets the environment variables with the values received from the OpenID server.
Pagina 2 | 10Page 2 | 10
RO 138236 AORO 138236 AO
Procedeul de definire și organizare a aplicațiilor, identităților și drepturilor de acces se bazează pe o serie de concepte și relațiile dintre ele, prezentate în figura 2 și descrise în continuare.The process of defining and organizing applications, identities and access rights is based on a series of concepts and their relationships, shown in figure 2 and described below.
în sistem sunt definiți proprietari (owner) care sunt deținătorii unor identități și ale unor aplicații.owners are defined in the system, who are the owners of identities and applications.
Fiecare proprietar are asociată o listă de planete, care sunt aplicații web rulând pe un server public sau privat, în cloud sau în rețeaua locală. Planeta poate reprezenta un singur program tip server Web care rulează pe un server, dar poate fi și un grup de programe și servere care funcționează integrat pentru a servi pagini Web. De exemplu un cluster care rulează un server de aplicație și o server de baze de date folosit de acestea. Fiecare planetă are asociate:Each owner has an associated list of planets, which are web applications running on a public or private server, in the cloud or on your local network. A planet can represent a single Web server program running on a server, but it can also be a group of programs and servers that work together to serve Web pages. For example a cluster running an application server and a database server used by them. Each planet has associated:
• un URL care este baza pentru cererile ΗΤΓΡ prin care acel program produce pagini web • un clientjd în sensul protocolului Oauth • cheia publică dintr-o pereche de chei criptografice• a URL that is the basis for ΗΤΓΡ requests through which that program produces web pages • a clientjd in the sense of the Oauth protocol • the public key from a pair of cryptographic keys
Fiecare proprietar are asociată o listă de comunități, identificate printr-un cod alfanumeric unic în cadrul proprietarului. Fiecare comunitate conține o listă de utilizatori, identificați atât printr-un identificator unic la nivelul serverului OpenID cât și printr-un nume (cod alfanumeric) unic în cadrul comunității. Identificatorul unic nu este cunoscut utilizatorului însă numele poate fi cunoscut și folosit de acesta pentru a se identifica.Each owner has a list of communities associated with it, identified by a unique alphanumeric code within the owner. Each community contains a list of users, identified both by a unique identifier at the OpenID server level and by a name (alphanumeric code) unique within the community. The unique identifier is not known to the user, but the name can be known and used by the user to identify himself.
La nivel de proprietar, comunitate sau utilizator se vor putea specifica metodele de identificare pentru care poate opta utilizatorul precum și metoda de autentificare cu care utilizatorul certifică la cererea serverului OpenID că este prezent. Metodele de identificare și autentificare nu fac obiectul prezentei invenții, fiind numai necesar să existe. Minimal identificarea se poate face prin numele utilizatorului și autentificarea prin prezentarea unei parole. Serverul de OpenID trebuie să asigure Interfața utilizator pentru identificare și autentificare.At the owner, community or user level, it will be possible to specify the identification methods that the user can opt for as well as the authentication method with which the user certifies at the request of the OpenID server that he is present. Identification and authentication methods are not the subject of the present invention, being only necessary to exist. At a minimum, identification can be done through the user name and authentication through the presentation of a password. The OpenID server must provide the User Interface for identification and authentication.
Procedeul de creare de conturi de utilizator pe bază de invitație începe pe planetă, prin crearea unei identități locale candidat și a unui identificator local al invitației. Acestea se transmit către serverul OpenID într-un token JWT semnat cu cheia privată a planetei, care include codul comunității în care este invitat utilizatorul și pagina web spre care să fie direcțional utilizatorul după acceptarea invitației. Serverul OpenID înregistrează invitația și returnează un URL cu invitația care va fi transmisă de către planetă către utilizatorul de invitat. Acesta se conectează la acest URL care indică spre o pagină specifică de pe serverul OpenID unde utilizatorul va introduce datele necesare creării unui utilizator în comunitatea specificată și va opta pentru un sistem de autentificare și introduce eventuale date necesare (parolă, amprentă, etc). Odată introduse datele, serverul OpenID va redirecționa utilizatorul spre un punct de acces din modulul de control acces, care va valida invitația pentru a nu fiThe process of creating invitation-based user accounts begins on the planet by creating a local candidate identity and a local invite identifier. These are sent to the OpenID server in a JWT token signed with the planet's private key, which includes the code of the community the user is invited to and the web page to direct the user to after accepting the invitation. The OpenID server registers the invitation and returns an invitation URL that will be forwarded by the planet to the inviting user. It connects to this URL that points to a specific page on the OpenID server where the user will enter the data necessary to create a user in the specified community and opt for an authentication system and enter any necessary data (password, fingerprint, etc.). Once the data is entered, the OpenID server will redirect the user to an access point in the access control module, which will validate the invitation to not be
Pagina 3 | 10Page 3 | 10
RO 138236 AO refolosită și va asocia identitatea locală candidat cu utilizatorul, apoi va redirecționa utilizatorul către pagina specificată la crearea invitației.RO 138236 AO reused and will associate the candidate local identity with the user, then redirect the user to the page specified when creating the invitation.
Procedeul de autorizare a apelurilor programatice dintr-o aplicație web către o altă aplicație web constă în crearea unui token JWT care include clientjd al planetei sursă și opțional clientjd al planetei destinație, semnat cu cheia privată a planetei, care va fi inclus în headerul HTTP Authorization al apelului către aplicația web corespondentă (planeta destinație) ca token la purtător. Pe planeta destinație modulul de control acces va verifica tokenul al purtător folosind cheia publică a planetei sursă, obținută pe baza clientjd sursă de la serverul Openld prin punctul de acces dedicat acestui scop. Dacă există și un clientjd destinație în tokenul la purtător trebuie verificat să corespundă cu planeta destinație.The process of authorizing programmatic calls from one web application to another web application consists of creating a JWT token that includes the clientjd of the source planet and optionally the clientjd of the destination planet, signed with the planet's private key, which will be included in the HTTP Authorization header of the call to the corresponding web application (destination planet) as a bearer token. On the destination planet the access control module will verify the bearer token using the public key of the source planet, obtained based on the source clientjd from the Openld server through the access point dedicated for this purpose. If there is also a destination clientjd in the bearer token it must be checked to match the destination planet.
Avantajele invențieiAdvantages of the invention
Grupul de procedee descrise permite integrarea unor aplicații Web existente, care pot avea un sistem de gestiune a identității preexistent. Aplicațiile pot avea diverși proprietari, care decid cine poate le accesa și pot specifica în sistem aceste reguli pe care sistemul să le aplice automat. înregistrarea aplicațiilor se face printr-un o singură pereche de chei criptografice, cu o cheie privată cunoscută exclusiv de deținătorul aplicației.The group of procedures described allows the integration of existing Web applications, which may have a pre-existing identity management system. Applications can have different owners, who decide who can access them, and can specify these rules in the system for the system to apply automatically. application registration is done through a single pair of cryptographic keys, with a private key known exclusively to the application owner.
Procedeele nu necesită ca aplicația web să fie pe un server public ci poate fi un server privat, care nu este accesibil din Internet, permițând realizarea de aplicații cloud hibride, care integrează aplicații web publice cu aplicații private, instalate în rețele locale.The procedures do not require the web application to be on a public server but can be a private server, which is not accessible from the Internet, allowing the realization of hybrid cloud applications, which integrate public web applications with private applications installed in local networks.
Procedeele se bazează pe protocoalele larg adoptate Oauth și OpenID Connect și includ opțiuni specifice pentru aceste protocoale care permit simplificarea a configurării și administrării sistemului, integrarea unor aplicații moștenite care aveau propriile sisteme de gestiune a identității și securizarea simultană a apelurilor programatice directe între aplicații.The processes are based on the widely adopted Oauth and OpenID Connect protocols and include specific options for these protocols that allow for simplifying system configuration and administration, integrating legacy applications that had their own identity management systems, and simultaneously securing direct programmatic calls between applications.
Exemplu de realizareExample of realization
O realizare a procedeelor descrise se poate scrie în Java folosind servere de aplicații J2EE. Pentru funcționalitățile de bază inclusiv cele pentru criptografie și JWT există biblioteci Java disponibile. Pe serverul OpenID se pot scrie în Java funcții de acces la o bază de date cu proprietarii, comunitățile, utilizatorii, rolurile și planetele. Se pot scrie apoi servlets specifici pentru punctele de apel specificate în protocolul OpenID care să răspundă conform procedeelor descrise în invenție, precum și punctele de acces specifice descrie în invenție pentru obținerea cheii publice a serverului OpenID, a cheii publice a unei planete pe baza clientjd, a URL pentru o invitație.An embodiment of the described methods can be written in Java using J2EE application servers. For basic functionality including cryptography and JWT there are Java libraries available. Functions to access a database of owners, communities, users, roles, and planets can be written in Java on the OpenID server. Specific servlets can then be written for the call points specified in the OpenID protocol to respond according to the methods described in the invention, as well as the specific access points described in the invention for obtaining the public key of the OpenID server, the public key of a planet based on the clientjd, a URL for an invite.
Pagina 4 | 10Page 4 | 10
RO 138236 AORO 138236 AO
Un exemplu JSON cu datele obținute din punctul de acces userinfo:An example JSON with the data obtained from the userinfo access point:
userJD: 1, clientJd: 16373833354, username: user, complete_name: Utilizator Test, email: test@crisoft.ro, phone: +40-744-555555, owner: CRISOFT, community: DEV env : { theme: crosweb_dark, language:RO roles: (management, sales] }userJD: 1, clientJd: 16373833354, username: user, complete_name: Test User, email: test@crisoft.ro, phone: +40-744-555555, owner: CRISOFT, community: DEV env : { theme: crosweb_dark, language: RO roles: (management, sales] }
BibliografieBibliography
1. The OAuth 2.0 Authorization Framework - Internet Engineering Task Force - RFC 6749 - https://www.ietf.org/rfc/rfc6750.txt1. The OAuth 2.0 Authorization Framework - Internet Engineering Task Force - RFC 6749 - https://www.ietf.org/rfc/rfc6750.txt
2. OAuth 2.0 Authorization Server Metadata - Internet Engineering Task Force - RFC 8414 - https://www.ietf.org/rfc/rfc8414.txt2. OAuth 2.0 Authorization Server Metadata - Internet Engineering Task Force - RFC 8414 - https://www.ietf.org/rfc/rfc8414.txt
3. OpenID Connect Core 1.0 - OpenID Foundation - https://openid.net/specs/openidconnect-core-1 O.html3. OpenID Connect Core 1.0 - OpenID Foundation - https://openid.net/specs/openidconnect-core-1 O.html
4. JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants - Internet Engineering Task Force - RFC 7523 https://www.ietf.org/rfc/rfc7523.txt4. JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants - Internet Engineering Task Force - RFC 7523 https://www.ietf.org/rfc/rfc7523.txt
5. Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 - Internet Engineering Task Force - RFC 3447 https://www.ietf.org/rfc/rfc3447.txt5. Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1 - Internet Engineering Task Force - RFC 3447 https://www.ietf.org/rfc/rfc3447.txt
6. JSON Web Token (JWT) - Internet Engineering Task Force - RFC 7519 - https://www.ietf.org/rfc/rfc7519.txt6. JSON Web Token (JWT) - Internet Engineering Task Force - RFC 7519 - https://www.ietf.org/rfc/rfc7519.txt
Pagina 5 | 10Page 5 | 10
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ROA202300887A RO138236A0 (en) | 2023-12-29 | 2023-12-29 | Hybrid cloud security system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ROA202300887A RO138236A0 (en) | 2023-12-29 | 2023-12-29 | Hybrid cloud security system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RO138236A0 true RO138236A0 (en) | 2024-05-30 |
Family
ID=91275060
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ROA202300887A RO138236A0 (en) | 2023-12-29 | 2023-12-29 | Hybrid cloud security system |
Country Status (1)
| Country | Link |
|---|---|
| RO (1) | RO138236A0 (en) |
-
2023
- 2023-12-29 RO ROA202300887A patent/RO138236A0/en unknown
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7222036B2 (en) | Model training system and method and storage medium | |
| US9426142B2 (en) | Systems and methods for logging into an application on a second domain from a first domain in a multi-tenant database system environment | |
| US9531697B2 (en) | Configurable adaptive access manager callouts | |
| EP3047626B1 (en) | Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service | |
| US8978100B2 (en) | Policy-based authentication | |
| US7860883B2 (en) | Method and system for distributed retrieval of data objects within multi-protocol profiles in federated environments | |
| US8793759B2 (en) | Authentication collaboration system and ID provider device | |
| CN101626369B (en) | Method, device and system for single sign-on | |
| JP2022518638A (en) | Multi-factor authentication without user footprint | |
| TWI477163B (en) | User-based authentication for realtime communications | |
| US9712513B2 (en) | Identity management over multiple identity providers | |
| CN112910904B (en) | Login method and device of multi-service system | |
| WO2007094369A1 (en) | Distributed authentication system and distributed authentication method | |
| US8874717B2 (en) | Techniques to discover services recursively in a distributed environment | |
| WO2015042349A1 (en) | Multiple resource servers with single, flexible, pluggable oauth server and oauth-protected restful oauth consent management service, and mobile application single sign on oauth service | |
| CN109379336A (en) | A kind of uniform authentication method, distributed system and computer readable storage medium | |
| US10257034B2 (en) | System for deployment of communication terminals in a cloud computing system | |
| US8205247B2 (en) | Method of authenticating a client, identity and service providers, authentication and authentication assertion request signals and corresponding computer programs | |
| US9590990B2 (en) | Assigning user requests of different types or protocols to a user by trust association interceptors | |
| US11095436B2 (en) | Key-based security for cloud services | |
| RO138236A0 (en) | Hybrid cloud security system | |
| Gardenghi et al. | An authentication middleware for squid proxy-cache: A single sign-on approach | |
| WO2012028168A1 (en) | Identity gateway |