informatique:oauth
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| informatique:oauth [30/08/2025 12:24] – [PHP] cyrille | informatique:oauth [09/09/2025 11:30] (Version actuelle) – [Recherche d'une "bonne" méthode] cyrille | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| * [[https:// | * [[https:// | ||
| + | |||
| + | RFC: | ||
| + | * [[rfc> | ||
| + | * [[rfc> | ||
| + | * [[rfc> | ||
| + | * [[rfc> | ||
| + | * [[rfc> | ||
| Ligne 42: | Ligne 49: | ||
| Diagram source from [[https:// | Diagram source from [[https:// | ||
| + | |||
| + | === Comment API vérifie le Access Token ? === | ||
| + | |||
| + | Token Introspection | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Question " | ||
| + | |||
| + | === Et le client_secret ? === | ||
| + | |||
| + | PKCE is **not a replacement for client secret**, it's not a client application authentication method. It's an additional verification mechanism to protect authorization code to from being stolen from user agent (browser). See [[rfc> | ||
| ===== Providers ===== | ===== Providers ===== | ||
| Ligne 72: | Ligne 91: | ||
| For Individual Developers: API products available to individual developers have a **default Company page associated with them** and you must select that default Company page to proceed. | For Individual Developers: API products available to individual developers have a **default Company page associated with them** and you must select that default Company page to proceed. | ||
| - | Discovery url : https:// | ||
| Documentation : | Documentation : | ||
| + | * Discovery url : https:// | ||
| + | * Token Introspection : https:// | ||
| * https:// | * https:// | ||
| * [[https:// | * [[https:// | ||
| - | + | | |
| - | | + | |
| - | * | + | |
| =====API===== | =====API===== | ||
| Ligne 91: | Ligne 108: | ||
| ==== PHP ==== | ==== PHP ==== | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| * PHP OAuth API on phpclasses.org: | * PHP OAuth API on phpclasses.org: | ||
| - | * Laravel : [[https:// | ||
| ===== Mobile & API ===== | ===== Mobile & API ===== | ||
| Ligne 99: | Ligne 119: | ||
| On trouve des exemples avec Laravel Socialite pour le site et un package OAuth dans l'App mobile. Mais le site ne vérifie pas la validité du token fourni par l'App Mobile, qui l'a obtenue depuis le fournisseur tiers ... | On trouve des exemples avec Laravel Socialite pour le site et un package OAuth dans l'App mobile. Mais le site ne vérifie pas la validité du token fourni par l'App Mobile, qui l'a obtenue depuis le fournisseur tiers ... | ||
| + | |||
| + | Aussi il n'est pas sécurisé de stocker le '' | ||
| + | |||
| + | * [[https:// | ||
| + | * https:// | ||
| + | |||
| + | ==== Recherche d'une " | ||
| + | |||
| + | Exigences: | ||
| + | * Ne pas avoir le '' | ||
| + | * S' | ||
| + | |||
| + | <mermaid 80%> | ||
| + | sequenceDiagram | ||
| + | |||
| + | participant User | ||
| + | participant Mobile | ||
| + | participant Browser | ||
| + | participant Api | ||
| + | participant Auth | ||
| + | autonumber | ||
| + | |||
| + | activate User | ||
| + | User ->> Mobile: Click one provider button | ||
| + | activate Mobile | ||
| + | deactivate User | ||
| + | Mobile ->> Api: request auth provider url< | ||
| + | activate Api | ||
| + | Api ->> Api: create STATE + SESSION COOKIE | ||
| + | Api -->> Mobile: return AUTH_PROVIDER_URL< | ||
| + | deactivate Api | ||
| + | |||
| + | Note over Mobile, | ||
| + | |||
| + | Mobile ->> Browser: open AUTH_PROVIDER_URL | ||
| + | activate Browser | ||
| + | activate Auth | ||
| + | Browser ->> Auth: request AUTH_PROVIDER_URL | ||
| + | Auth -->> Browser: return auth ui | ||
| + | deactivate Auth | ||
| + | deactivate Mobile | ||
| + | activate User | ||
| + | Browser -->> User: read access scopes & login ui | ||
| + | User ->> Browser: click Accept or Denied | ||
| + | activate Auth | ||
| + | Browser ->> Auth: post auth form | ||
| + | deactivate User | ||
| + | deactivate Browser | ||
| + | activate Api | ||
| + | |||
| + | critical Auth Protocol | ||
| + | Auth ->> Api: "Auth callback with ' | ||
| + | Api ->> Auth: " | ||
| + | Auth -->> Api: " | ||
| + | end | ||
| + | |||
| + | Note right of Mobile: http(s) deep link is verified with< | ||
| + | |||
| + | deactivate Auth | ||
| + | Api -->> Browser: return redirect DEEP_LINK | ||
| + | deactivate Api | ||
| + | activate Mobile | ||
| + | Browser -->> Mobile: return redirect DEEP_LINK | ||
| + | |||
| + | activate Api | ||
| + | Mobile ->> Api: request Api Token< | ||
| + | Api -->> Mobile: return API_TOKEN | ||
| + | deactivate Api | ||
| + | deactivate Mobile | ||
| + | |||
| + | Note over User,Api: Authentified user can request the Api | ||
| + | |||
| + | activate User | ||
| + | User ->> Mobile: "do something" | ||
| + | activate Mobile | ||
| + | activate Api | ||
| + | Mobile ->> Api: " | ||
| + | Api -->> Mobile: " | ||
| + | Mobile -->> User: display what ever | ||
| + | deactivate Api | ||
| + | deactivate Mobile | ||
| + | deactivate User | ||
| + | |||
| + | </ | ||
| + | |||
informatique/oauth.1756549440.txt.gz · Dernière modification : de cyrille
