1
1
@startuml SequenceDiagram.FHIR-Directory.search
2
+ autonumber 1 1 "<b>[00]"
2
3
skinparam dpi 100
3
4
skinparam WrapWidth 200
4
5
skinparam monochrome true
@@ -20,17 +21,26 @@ cl -> cl: prüfe ob noch gültiges search-accesstoken\nvom FHIR-Directory Auth-S
20
21
alt kein g ültiges search - accesstoken vorhanden
21
22
cl -> hs : POST /_matrix/client/v3/user/{userId}/openid/request_token
22
23
activate hs
23
- hs --> cl : HTTP 200 OK, Result body {"access_token": "Matrix-OpenID-Token ",..., "matrix_server_name": "example.com ",...}
24
+ hs --> cl : HTTP 200 OK, Result body {"access_token": "OFdZNozDIomXLrCWjgejIQBM ",..., "matrix_server_name": "matrix.service-ti.de ",...}
24
25
deactivate hs
25
- cl -> au : GET /tim-authenticate... (Auth Header mit Matrix-OpenID-Token)
26
+ cl -> au : GET /tim-authenticate?mxId=matrix.service-ti.de"\n -H "X- Matrix-OpenID-Token: OFdZNozDIomXLrCWjgejIQBM"
26
27
activate au
27
- au -> au : Prüfe ob matrix_server_name\nin Föderationsliste enthalten
28
- au -> hs : GET /openid/userinfo/\nrequest header, Authorization: Bearer Matrix-OpenID-Token
28
+ au -> au : Prüfe ob matrix.service-ti.de\nTeil der Föderationsliste ist
29
+ au -> au : Ermittele den hinterlegten UserInfo PORT über die Matrix Server URL
30
+ au -> hs : GET matrix.service-ti.de:{PORT}/_matrix/federation/v1/openid/userinfo\access_token=OFdZNozDIomXLrCWjgejIQBM
29
31
activate hs
30
- hs --> au : HTTP 200 OK\n(Result Body MXID des Nutzers)
32
+ hs --> au : HTTP 200 OK\nResult Body {"sub":"@testuser:matrix.service-ti.de"}
33
+ au -> au : Ermittle den Status von "isInsurance" für URL "matrix.service-ti.de"
34
+
35
+ alt [isInsurance = false ]
36
+ au -> au : Erzeuge search-accesstoken: {...\n"aud":"https://fhir-directory.vzd.ti-dienste.de/search"\n...}
37
+ else [isInsurance = true ]
38
+ au -> au : Erzeuge search-accesstoken: {...\n"aud":"https://fhir-directory.vzd.ti-dienste.de/fdv/search"\n...}
39
+ end
40
+
31
41
deactivate hs
32
42
au -> au : erzeuge search-accesstoken für TI-Messenger-Client
33
- au --> cl : HTTP 200 OK, Result body\n{"access_token"="search-accesstoken", "token_type":"bearer ",\n"expires_in":86400}
43
+ au --> cl : HTTP 200 OK, Result body\n{"access_token"="search-accesstoken", "token_type":"Bearer ",\n"expires_in":86400}
34
44
deactivate au
35
45
end
36
46
0 commit comments