cdocutils.nodes document q)q}q(U nametypesq}q(X5use case 14 - system authentication and authorizationqNXhistoryqXuc14quUsubstitution_defsq }q Uparse_messagesq ]q Ucurrent_sourceq NU decorationqNUautofootnote_startqKUnameidsq}q(hU3use-case-14-system-authentication-and-authorizationqhUhistoryqhUuc14quUchildrenq]q(cdocutils.nodes target q)q}q(U rawsourceqX .. _UC14:UparentqhUsourceqXj/var/lib/jenkins/jobs/API_Documentation_trunk/workspace/api-documentation/source/design/UseCases/14_uc.txtqUtagnameqUtargetqU attributesq }q!(Uidsq"]Ubackrefsq#]Udupnamesq$]Uclassesq%]Unamesq&]Urefidq'huUlineq(KUdocumentq)hh]ubcdocutils.nodes section q*)q+}q,(hUhhhhUexpect_referenced_by_nameq-}q.hhshUsectionq/h }q0(h$]h%]h#]h"]q1(hheh&]q2(hheuh(Kh)hUexpect_referenced_by_idq3}q4hhsh]q5(cdocutils.nodes title q6)q7}q8(hX5Use Case 14 - System Authentication and Authorizationq9hh+hhhUtitleq:h }q;(h$]h%]h#]h"]h&]uh(Kh)hh]qq?}q@(hh9hh7ubaubcsphinx.addnodes index qA)qB}qC(hUhh+hhhUindexqDh }qE(h"]h#]h$]h%]h&]UentriesqF]qG((UsingleqHX Use Case 14Uindex-0qIUNtqJ(hHXUC14hIUNtqK(hHXsystem authenticationhIUNtqL(hHXsystem authorizationhIUNtqMeUinlineqNuh(Kh)hh]ubh)qO}qP(hUhh+hhhhh }qQ(h"]h#]h$]h%]h&]h'hIuh(Kh)hh]ubcdocutils.nodes definition_list qR)qS}qT(hUhh+hhh-}hUdefinition_listqUh }qV(h$]h%]h#]h"]qWhIah&]uh(Nh)hh3}qXhIhOsh]qYcdocutils.nodes definition_list_item qZ)q[}q\(hX+Revisions View document revision history_. hhShhhUdefinition_list_itemq]h }q^(h$]h%]h#]h"]h&]uh(K h]q_(cdocutils.nodes term q`)qa}qb(hX Revisionsqchh[hhhUtermqdh }qe(h$]h%]h#]h"]h&]uh(K h]qfh=X Revisionsqgqh}qi(hhchhaubaubcdocutils.nodes definition qj)qk}ql(hUh }qm(h$]h%]h#]h"]h&]uhh[h]qncdocutils.nodes paragraph qo)qp}qq(hX View document revision history_.hhkhhhU paragraphqrh }qs(h$]h%]h#]h"]h&]uh(K h]qt(h=XView document revision quqv}qw(hXView document revision hhpubcdocutils.nodes reference qx)qy}qz(hXhistory_Uresolvedq{KhhphU referenceq|h }q}(UnameXhistoryq~UrefuriqXhttps://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/14_uc.txtqh"]h#]h$]h%]h&]uh]qh=Xhistoryqq}q(hUhhyubaubh=X.q}q(hX.hhpubeubahU definitionqubeubaubho)q}q(hXGoalqhh+hhhhrh }q(h$]h%]h#]h"]h&]uh(K h)hh]qh=XGoalqq}q(hhhhubaubcdocutils.nodes block_quote q)q}q(hUhh+hhhU block_quoteqh }q(h$]h%]h#]h"]h&]uh(Nh)hh]qho)q}q(hXA system process authenticates and performs some system operation (e.g. replication). In this example, a Member Node authenticates to enable transfer of content from MN A to MN B.qhhhhhhrh }q(h$]h%]h#]h"]h&]uh(K h]qh=XA system process authenticates and performs some system operation (e.g. replication). In this example, a Member Node authenticates to enable transfer of content from MN A to MN B.qq}q(hhhhubaubaubhR)q}q(hUhh+hhhhUh }q(h$]h%]h#]h"]h&]uh(Nh)hh]q(hZ)q}q(hXSummary System operations are required for many operations including the management of content across Member Nodes and replication between Coordinating Nodes. This use case describes the system level interactions required to perform a system level operation. hhhhhh]h }q(h$]h%]h#]h"]h&]uh(Kh]q(h`)q}q(hXSummaryqhhhhhhdh }q(h$]h%]h#]h"]h&]uh(Kh]qh=XSummaryqq}q(hhhhubaubhj)q}q(hUh }q(h$]h%]h#]h"]h&]uhhh]qho)q}q(hXSystem operations are required for many operations including the management of content across Member Nodes and replication between Coordinating Nodes. This use case describes the system level interactions required to perform a system level operation.qhhhhhhrh }q(h$]h%]h#]h"]h&]uh(Kh]qh=XSystem operations are required for many operations including the management of content across Member Nodes and replication between Coordinating Nodes. This use case describes the system level interactions required to perform a system level operation.qq}q(hhhhubaubahhubeubhZ)q}q(hX-Actors - Coordinating Node - Member Node(s) hhhhhh]h }q(h$]h%]h#]h"]h&]uh(Kh)hh]q(h`)q}q(hXActorsqhhhhhhdh }q(h$]h%]h#]h"]h&]uh(Kh]qh=XActorsqÅq}q(hhhhubaubhj)q}q(hUh }q(h$]h%]h#]h"]h&]uhhh]qcdocutils.nodes bullet_list q)q}q(hUh }q(UbulletqX-h"]h#]h$]h%]h&]uhhh]q(cdocutils.nodes list_item q)q}q(hXCoordinating Node h }q(h$]h%]h#]h"]h&]uhhh]qho)q}q(hXCoordinating Nodeqhhhhhhrh }q(h$]h%]h#]h"]h&]uh(Kh]qh=XCoordinating Nodeqڅq}q(hhhhubaubahU list_itemqubh)q}q(hXMember Node(s) h }q(h$]h%]h#]h"]h&]uhhh]qho)q}q(hXMember Node(s)qhhhhhhrh }q(h$]h%]h#]h"]h&]uh(Kh]qh=XMember Node(s)q煁q}q(hhhhubaubahhubehU bullet_listqubahhubeubhZ)q}q(hX$Preconditions - Operational system hhhhhh]h }q(h$]h%]h#]h"]h&]uh(Kh)hh]q(h`)q}q(hX Preconditionsqhhhhhhdh }q(h$]h%]h#]h"]h&]uh(Kh]qh=X Preconditionsqq}q(hhhhubaubhj)q}q(hUh }q(h$]h%]h#]h"]h&]uhhh]qh)q}q(hUh }q(hX-h"]h#]h$]h%]h&]uhhh]qh)q}r(hXOperational system h }r(h$]h%]h#]h"]h&]uhhh]rho)r}r(hXOperational systemrhhhhhhrh }r(h$]h%]h#]h"]h&]uh(Kh]rh=XOperational systemrr }r (hjhjubaubahhubahhubahhubeubhZ)r }r (hX1Triggers - A system level operation is invoked. hhhhhh]h }r (h$]h%]h#]h"]h&]uh(K"h)hh]r(h`)r}r(hXTriggersrhj hhhhdh }r(h$]h%]h#]h"]h&]uh(K"h]rh=XTriggersrr}r(hjhjubaubhj)r}r(hUh }r(h$]h%]h#]h"]h&]uhj h]rh)r}r(hUh }r(hX-h"]h#]h$]h%]h&]uhjh]rh)r}r (hX&A system level operation is invoked. h }r!(h$]h%]h#]h"]h&]uhjh]r"ho)r#}r$(hX$A system level operation is invoked.r%hjhhhhrh }r&(h$]h%]h#]h"]h&]uh(K!h]r'h=X$A system level operation is invoked.r(r)}r*(hj%hj#ubaubahhubahhubahhubeubhZ)r+}r,(hXaPost Conditions - The operation is completed - The authentication token is optionally disposed hhhhhh]h }r-(h$]h%]h#]h"]h&]uh(K(h)hh]r.(h`)r/}r0(hXPost Conditionsr1hj+hhhhdh }r2(h$]h%]h#]h"]h&]uh(K(h]r3h=XPost Conditionsr4r5}r6(hj1hj/ubaubhj)r7}r8(hUh }r9(h$]h%]h#]h"]h&]uhj+h]r:h)r;}r<(hUh }r=(hX-h"]h#]h$]h%]h&]uhj7h]r>(h)r?}r@(hXThe operation is completed h }rA(h$]h%]h#]h"]h&]uhj;h]rBho)rC}rD(hXThe operation is completedrEhj?hhhhrh }rF(h$]h%]h#]h"]h&]uh(K%h]rGh=XThe operation is completedrHrI}rJ(hjEhjCubaubahhubh)rK}rL(hX1The authentication token is optionally disposed h }rM(h$]h%]h#]h"]h&]uhj;h]rNho)rO}rP(hX/The authentication token is optionally disposedrQhjKhhhhrh }rR(h$]h%]h#]h"]h&]uh(K'h]rSh=X/The authentication token is optionally disposedrTrU}rV(hjQhjOubaubahhubehhubahhubeubeubcdocutils.nodes comment rW)rX}rY(hX{@startuml images/14_uc.png actor "Coordinating Node" as CN actor "Member Node A" as MN_A actor "Member Node B" as MN_B usecase "13. User Authorization" as author usecase "14. System Operation" as SYSOP usecase "9. Replicate MN to MN" as repl CN -- SYSOP MN_A -- SYSOP MN_B -- SYSOP SYSOP ..> author: <> SYSOP ..> authen: <> SYSOP ..> repl: < @endumlhh+hhhUcommentrZh }r[(U xml:spacer\Upreserver]h"]h#]h$]h%]h&]uh(K9h)hh]r^h=X{@startuml images/14_uc.png actor "Coordinating Node" as CN actor "Member Node A" as MN_A actor "Member Node B" as MN_B usecase "13. User Authorization" as author usecase "14. System Operation" as SYSOP usecase "9. Replicate MN to MN" as repl CN -- SYSOP MN_A -- SYSOP MN_B -- SYSOP SYSOP ..> author: <> SYSOP ..> authen: <> SYSOP ..> repl: < @endumlr_r`}ra(hUhjXubaubcdocutils.nodes image rb)rc}rd(hX.. image:: images/14_uc.png hh+hhhUimagereh }rf(UuriX design/UseCases/images/14_uc.pngrgh"]h#]h$]h%]U candidatesrh}riU*jgsh&]uh(K;h)hh]ubho)rj}rk(hX.*Figure 1.* Use case 14, system authenticationrlhh+hhhhrh }rm(h$]h%]h#]h"]h&]uh(K> participant "Replication API" as m_rep_b << Member Node B >> participant "Authentication API" as c_authenticate << Coordinating Node >> participant "Verify API" as c_ver << Coordinating Node >> m_rep_a -> c_authenticate: login(user, pw) note right The user in this case is the DataONE identity given to MN A. end note m_rep_a <-- c_authenticate: token or failure m_rep_a -> m_rep_b: getContent(token, ...) m_rep_b -> c_ver: isAuthorized(token, ...) m_rep_b <-- c_ver: True or False m_rep_a <-- m_rep_b: content or Fail note right Member Node A is now in a modified state and should signal this during next status request from a CN end note m_rep_a --> c_authenticate: logout(token) @endumlhh+hhhjZh }r}(j\j]h"]h#]h$]h%]h&]uh(KVh)hh]r~h=X@startuml images/14_seq.png participant "Replication API" as m_rep_a << Member Node A >> participant "Replication API" as m_rep_b << Member Node B >> participant "Authentication API" as c_authenticate << Coordinating Node >> participant "Verify API" as c_ver << Coordinating Node >> m_rep_a -> c_authenticate: login(user, pw) note right The user in this case is the DataONE identity given to MN A. end note m_rep_a <-- c_authenticate: token or failure m_rep_a -> m_rep_b: getContent(token, ...) m_rep_b -> c_ver: isAuthorized(token, ...) m_rep_b <-- c_ver: True or False m_rep_a <-- m_rep_b: content or Fail note right Member Node A is now in a modified state and should signal this during next status request from a CN end note m_rep_a --> c_authenticate: logout(token) @endumlrr}r(hUhj{ubaubjb)r}r(hX.. image:: images/14_seq.png hh+hhhjeh }r(UuriX!design/UseCases/images/14_seq.pngrh"]h#]h$]h%]jh}rU*jsh&]uh(KXh)hh]ubho)r}r(hX)*Figure 2.* Interactions for use case 14.rhh+hhhhrh }r(h$]h%]h#]h"]h&]uh(KYh)hh]r(jo)r}r(hX *Figure 2.*h }r(h$]h%]h#]h"]h&]uhjh]rh=X Figure 2.rr}r(hUhjubahjwubh=X Interactions for use case 14.rr}r(hX Interactions for use case 14.hjubeubh)r}r(hX.. _history: https://redmine.dataone.org/projects/d1/repository/changes/documents/Projects/cicore/architecture/api-documentation/source/design/UseCases/14_uc.txtU referencedrKhh+hhhhh }r(hhh"]rhah#]h$]h%]h&]rhauh(K[h)hh]ubeubehUU transformerrNU footnote_refsr}rUrefnamesr}rh~]rhyasUsymbol_footnotesr]rUautofootnote_refsr]rUsymbol_footnote_refsr]rU citationsr]rh)hU current_linerNUtransform_messagesr]r(cdocutils.nodes system_message r)r}r(hUh }r(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypeUINFOruh]rho)r}r(hUh }r(h$]h%]h#]h"]h&]uhjh]rh=X*Hyperlink target "uc14" is not referenced.rr}r(hUhjubahhrubahUsystem_messagerubj)r}r(hUh }r(h$]UlevelKh"]h#]Usourcehh%]h&]UlineKUtypejuh]rho)r}r(hUh }r(h$]h%]h#]h"]h&]uhjh]rh=X-Hyperlink target "index-0" is not referenced.rr}r(hUhjubahhrubahjubeUreporterrNUid_startrKU autofootnotesr]rU citation_refsr}rUindirect_targetsr]rUsettingsr(cdocutils.frontend Values ror}r(Ufootnote_backlinksrKUrecord_dependenciesrNU rfc_base_urlrUhttps://tools.ietf.org/html/rU tracebackrUpep_referencesrNUstrip_commentsrNU toc_backlinksrUentryrU language_coderUenrU datestamprNU report_levelrKU _destinationrNU halt_levelrKU strip_classesrNh:NUerror_encoding_error_handlerrUbackslashreplacerUdebugrNUembed_stylesheetrUoutput_encoding_error_handlerrUstrictrU sectnum_xformrKUdump_transformsrNU docinfo_xformrKUwarning_streamrNUpep_file_url_templaterUpep-%04drUexit_status_levelrKUconfigrNUstrict_visitorrNUcloak_email_addressesrUtrim_footnote_reference_spacerUenvrNUdump_pseudo_xmlrNUexpose_internalsrNUsectsubtitle_xformrU source_linkrNUrfc_referencesrNUoutput_encodingrUutf-8rU source_urlrNUinput_encodingrU utf-8-sigrU_disable_configrNU id_prefixrUU tab_widthrKUerror_encodingrUUTF-8rU_sourcerhUgettext_compactrU generatorrNUdump_internalsrNU smart_quotesrU pep_base_urlrU https://www.python.org/dev/peps/r Usyntax_highlightr Ulongr Uinput_encoding_error_handlerr jUauto_id_prefixr UidrUdoctitle_xformrUstrip_elements_with_classesrNU _config_filesr]Ufile_insertion_enabledrU raw_enabledrKU dump_settingsrNubUsymbol_footnote_startrKUidsr}r(hh+hjhIhShh+uUsubstitution_namesr}rhh)h }r(h$]h"]h#]Usourcehh%]h&]uU footnotesr]rUrefidsr}r(hI]rhOah]r hauub.