Access Token Refresh ┌─┐ ║"│ └┬┘ ┌┼┐ │ ┌──────────────┐ ┌──┐ ┌───────────────┐ ┌────────┐ ┌────────────────────┐ ┌┴┐ │Desktop Client│ │OS│ │Default Browser│ │ownCloud│ │Kopano Konnect (IdP)│ Alice └───────┬──────┘ └─┬┘ └───────┬───────┘ └────┬───┘ └──────────┬─────────┘ │ │ │ │ │ │ │ │ │ │ 5 minutes later │ │ │ │ │ │ │ │ │ │ │ │ │ │ . . . . . . . . . . . . . . . . ╔══════════════════════╗ . ════════════════════════════════════════════════════════════════════════════════════════╣ Access Token Refresh ╠═════════════════════════════════════════════════════════════════════════════════════════ . . . . ╚══════════════════════╝ . │ │ │ │ │ │ │ │ PROPFIND │ │ │ │ │ https://server/remote.php/dav/files/alice/ │ │ │ │ - H "Authorization: Bearer eyJh…oVJ4" │ │ │ │───────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ 207 Multi-Status │ │ │ │<───────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ PROPFIND │ │ │ │ │ https://server/remote.php/dav/files/alice/ │ │ │ │ - H "Authorization: Bearer eyJh…oVJ4" │ │ │ │───────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ 401 Unauthorized │ │ │ │<───────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ GET │ │ │ │ │ │ https://server/.well-known/openid-configuration │ │ │ │───────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │ │ GET │ │ │ │ │ │ https://idp/.well-known/openid-configuration │ │ │ │ │ │───────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ │200 OK │ │ │ │ │ │JSON: │ │ │ │ │ │ "authorization_endpoint": "https://idp/signin/v1/identifier/_/authorize", │ │ │ │ │ │ "token_endpoint": "https://idp/konnect/v1/token" │ │ │ │ │ │<───────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │200 OK │ │ │ │ │ │JSON: │ │ │ │ │ │ "authorization_endpoint": "https://idp/signin/v1/identifier/_/authorize", │ │ │ │ "token_endpoint": "https://idp/konnect/v1/token" │ │ │ │<───────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ │ │ │ POST │ │ │ │ │ │ https://idp/konnect/v1/token │ │ │ │ │ -u "xdXO…:UBnt…" │ │ │ │ │ │ client_id: xdXO… │ │ │ │ │ │ client_secret: UBnt… │ │ │ │ │ │ scope: openid offline_access email profile │ │ │ │ │ grant_type: refresh_token │ │ │ │ │ refresh_token: eyJh…458c │ │ │────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ 200 OK │ │ │ │ │ │ JSON: │ │ │ │ │ │ { │ │ │ │ │ │ "access_token": "eyJh…52tk", │ │ │ │ │ "expires_in": 600, │ │ │ │ │ "token_type": "Bearer" │ │ │ │ │ } │ │ │ │<────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────│ │ │ │ │ │ │ │ │ PROPFIND │ │ │ │ │ https://server/remote.php/dav/files/alice/ │ │ │ │ - H "Authorization: Bearer eyJh…52tk" │ │ │ │───────────────────────────────────────────────────────────────────────────>│ │ │ │ │ │ │ │ │ │ │ 207 Multi-Status │ │ │ │<───────────────────────────────────────────────────────────────────────────│ │ Alice ┌───────┴──────┐ ┌─┴┐ ┌───────┴───────┐ ┌────┴───┐ ┌──────────┴─────────┐ ┌─┐ │Desktop Client│ │OS│ │Default Browser│ │ownCloud│ │Kopano Konnect (IdP)│ ║"│ └──────────────┘ └──┘ └───────────────┘ └────────┘ └────────────────────┘ └┬┘ ┌┼┐ │ ┌┴┐