Skip to content

Commit 82acc91

Browse files
committed
docs (OAuth2): add images and documents about the interaction of components on behalf of the user
1 parent 1f3c942 commit 82acc91

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

docs/source/DeveloperGuide/OAuth2Authorization/index.rst

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,21 @@ OAuth 2.0 framework
2222
The OAuth 2.0 authorization framework is a protocol that allows a user to grant a third-party web site or application access to the user's protected resources, without necessarily revealing their long-term credentials or even their identity.
2323
There are already many articles to familiarize yourself with this framefork, for example `Auth0 Docs <https://auth0.com/docs/authorization/protocols/protocol-oauth2>`_ or `RFCs <https://oauth.net/>`_
2424

25+
The following diagram shows the main OAuth 2.0 roles in DIRAC.
26+
2527
.. image:: /_static/Systems/FS/OAuth2/OAuth2Roles.png
2628
:alt: OAuth 2.0 roles in DIRAC.
2729

30+
A feature of DIRAC is the ability to perform user tasks asynchronously on behalf of the user, ie using his access token or proxy certificate.
31+
32+
.. image:: /_static/Systems/FS/OAuth2/DIRACComponentsInteractionRoles.png
33+
:alt: OAuth 2.0 roles in context of the DIRAC components interation.
34+
35+
As shown in the figure, DIRAC server components, such as service or agent, may have sufficient privileges to request a user access token (or proxy). Upon receiving it, the component can access the protected resource on behalf of the user.
36+
37+
.. warning:: The OAuth 2.0 scheme does not involve the use of X509 certificates, but since their using is a necessity in the DIRAC, then scheme will be slightly expanded:
38+
the protected resource request may contain the X509 proxy user certificate instead of the user access token.
39+
2840
OAuth 2.0 roles
2941
===============
3042

@@ -44,7 +56,9 @@ OAuth 2.0 defines flows to get an access token, called `grant types <https://dat
4456
- `Authorization Code Flow <https://tools.ietf.org/html/rfc6749#section-1.3.1>`_ to authorize with browser.
4557
- `Client Credentials <https://tools.ietf.org/html/rfc6749#section-4.4>`_ to authorize Web portal and to interact with third party authorization services.
4658
- `Refresh Token <https://tools.ietf.org/html/rfc6749#section-1.5>`_ to implement long sessions for DIRAC clients and to refresh users access tokens.
47-
- `Token Exchange <https://datatracker.ietf.org/doc/html/rfc8693>`_ to get access tokens from third party Identity Providers with scopes needed for a particular case.
59+
- `Token Exchange <https://datatracker.ietf.org/doc/html/rfc8693>`_ to get access tokens from third party Identity Providers with scope needed for a particular case.
60+
61+
.. warning:: DIRAC components can use the host certificate as Client Credentials, which goes beyond the OAuth 2.0 scheme.
4862

4963
*******************
5064
Involved components
110 KB
Loading
-61.2 KB
Loading

0 commit comments

Comments
 (0)