annotate Sphinx/source/plugins/authorization.rst @ 97:20b9ecb43eed

doc
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 27 Mar 2017 17:50:08 +0200
parents 750f7ab733c1
children b56083f38695
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
96
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
1 .. _authorization:
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
2
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
3
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
4 Advanced authorization plugin
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
5 =============================
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
6
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
7 .. contents::
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
8
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
9 This **official plugin by Osimis** extends Orthanc with advanced
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
10 authorization mechanism. For each incoming REST request to some URI,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
11 the plugin will query a Web service to know whether the access is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
12 granted to the user.
96
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
13
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
14 Source code is `freely available under the terms of the AGPLv3 license
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
15 <https://bitbucket.org/osimis/orthanc-authorization>`__.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
16
96
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
17
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
18 Compilation
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
19 -----------
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
20
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
21 .. highlight:: bash
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
22
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
23 The procedure to compile these plugins is similar of that for the
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
24 :ref:`core of Orthanc <binaries>`. The following commands should work
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
25 for every UNIX-like distribution (including GNU/Linux)::
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
26
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
27 $ mkdir Build
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
28 $ cd Build
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
29 $ cmake .. -DSTATIC_BUILD=ON -DCMAKE_BUILD_TYPE=Release
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
30 $ make
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
31
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
32 The compilation will produce a shared library ``OrthancAuthorization``
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
33 that contains the authorization plugin.
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
34
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
35 Usage
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
36 -----
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
37
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
38 .. highlight:: json
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
39
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
40 You of course first have to :ref:`install Orthanc <compiling>`. Once
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
41 Orthanc is installed, you must change the :ref:`configuration file
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
42 <configuration>` to tell Orthanc where it can find the plugin: This is
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
43 done by properly modifying the ``Plugins`` option. You could for
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
44 instance use the following configuration file::
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
45
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
46 {
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
47 "Name" : "MyOrthanc",
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
48 [...]
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
49 "Plugins" : [
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
50 "/home/user/OrthancAuthorization/Build/libOrthancAuthorization.so"
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
51 ],
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
52 "Authorization" : {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
53 "WebService" : "http://localhost:8000/"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
54 }
96
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
55 }
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
56
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
57 Orthanc must of course be restarted after the modification of its
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
58 configuration file.
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
59
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
60
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
61 Web Service
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
62 -----------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
63
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
64 This section describes how a Web service suitable for the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
65 authorization plugin can be designed.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
66
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
67 **Note:** The behavior described in this section is implemented by the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
68 ``AuthorizationWebService`` C++ class in the source code. It is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
69 possible to define a different authorization back-end by deriving
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
70 from interface ``IAuthorizationService``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
71
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
72
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
73 Incoming request
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
74 ^^^^^^^^^^^^^^^^
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
75
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
76 For each HTTP/REST request that Orthanc receives, the plugin will
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
77 issue a set of HTTP ``POST`` requests against the Web service that is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
78 specified in the configuration file (in the basic configuration file
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
79 above, the Web service listening at ``http://localhost:8000/`` is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
80 used). The body of each of those ``POST`` requests is a JSON file
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
81 similar to the following one::
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
82
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
83 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
84 "dicom-uid" : "123ABC",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
85 "level" : "patient",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
86 "method" : "get",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
87 "orthanc-id" : "6eeded74-75005003-c3ae9738-d4a06a4f-6beedeb8"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
88 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
89
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
90 In this example, the user is accessing an URI that is related to some
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
91 DICOM resource, namely a patient whose identifier is ``123ABC``. In
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
92 such a case, the following fields will be set in the JSON body:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
93
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
94 * The ``level`` field specifies which type of resource the user is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
95 accessing, according to the :ref:`DICOM model of the real world
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
96 <model-world>`. This field can be set to ``patient``, ``study``,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
97 ``series``, or ``instance``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
98 * The ``method`` field specifies which HTTP method is used by the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
99 to-be-authorized request. It can be set ``get``, ``post``,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
100 ``delete`` or ``put``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
101 * The ``dicom-uid`` field gives the :ref:`DICOM identifier
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
102 <dicom-identifiers>` of the resource that will be accessed. If the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
103 resource is a patient, this field contains the ``PatientID`` DICOM
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
104 tag. For a study, it contains its ``StudyInstanceUID``. For a
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
105 series, it contains its ``SeriesInstanceUID``. For an instance, it
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
106 contains its ``SOPInstanceUID``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
107 * The ``orthanc-id`` field gives the :ref:`Orthanc identifier
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
108 <orthanc-ids>` of the resource.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
109
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
110 When the user accesses a lower-level resource in the DICOM hierarchy
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
111 (a study, a series or an instance), the authorization plugin will
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
112 issue one separate call to the Web service for each level of the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
113 hierarchy. For instance, here are the 3 successive requests that are
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
114 issued when accessing some series::
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
115
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
116 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
117 "dicom-uid" : "123ABC",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
118 "level" : "patient",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
119 "method" : "get",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
120 "orthanc-id" : "6eeded74-75005003-c3ae9738-d4a06a4f-6beedeb8"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
121 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
122 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
123 "dicom-uid" : "1.3.51.0.1.1.192.168.29.133.1681753.1681732",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
124 "level" : "study",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
125 "method" : "get",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
126 "orthanc-id" : "6e2c0ec2-5d99c8ca-c1c21cee-79a09605-68391d12"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
127 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
128 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
129 "dicom-uid" : "1.3.12.2.1107.5.2.33.37097.2012041612474981424569674.0.0.0",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
130 "level" : "series",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
131 "method" : "get",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
132 "orthanc-id" : "6ca4c9f3-5e895cb3-4d82c6da-09e060fe-9c59f228"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
133 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
134
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
135 It the user is accessing a URI that is not directly related to an
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
136 individual DICOM resource, the JSON body will look as follows::
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
137
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
138 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
139 "level" : "system",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
140 "method" : "get",
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
141 "uri" : "/changes"
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
142 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
143
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
144 In such a situation, the following fields are set:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
145
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
146 * The ``level`` field is always set to ``system``.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
147 * The ``method`` field is the same as above.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
148 * The ``uri`` field provides the URI that was accessed by the user.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
149
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
150 **Important note:** The plugin will transparently parse the URIs of
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
151 the core :ref:`REST API of Orthanc <rest>`, of the :ref:`Web viewer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
152 plugin <webviewer>`, of the :ref:`DICOMweb plugin <dicomweb>`, and of
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
153 the :ref:`whole-slide imaging plugin <wsi>`. Unrecognized URIs (such
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
154 as those introduced by other plugins) will be handled as a ``system``
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
155 call. It is possible to introduce parsing support for more plugins by
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
156 modifying the ``DefaultAuthorizationParser`` C++ class in the source
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
157 code of the plugin.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
158
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
159
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
160 Expected answer
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
161 ^^^^^^^^^^^^^^^
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
162
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
163 The Web service must answer by sending a JSON file that tells whether
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
164 the access is granted or not to the user. Here is a sample answer::
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
165
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
166 {
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
167 "granted": true,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
168 "validity" : 5
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
169 }
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
170
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
171 Here is a description of these two fields:
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
172
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
173 * ``granted`` tells whether access to the resource is granted
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
174 (``true``) or not granted (``false``). In the case the user is
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
175 accessing a DICOM resource, the access to *all* the levels of
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
176 the hierarchy above this resource must be granted (conjunction).
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
177 * ``validity`` tells the authorization plugin for how many seconds the
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
178 result of the Web service must be cached. If set to ``0`` second,
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
179 the cache entry will never expire.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
180
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
181 **Note:** The source code of the plugin contains a `basic example
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
182 <https://bitbucket.org/osimis/orthanc-authorization/src/default/Resources/TestService.js>`__
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
183 of such a Web service written in node.js.
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
184
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
185
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
186 Authentication tokens
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
187 ^^^^^^^^^^^^^^^^^^^^^
96
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
188
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
189 WIP
750f7ab733c1 start documentation of authorization
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
diff changeset
190
97
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
191 1.2.1
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
192
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
193 Cache
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
194
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
195
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
196 Full configuration
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
197 ------------------
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
198
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
199 WIP
Sebastien Jodogne <s.jodogne@gmail.com>
parents: 96
diff changeset
200