Fórum pro vývojáře
    • Kategorie
    • Nepřečtené
    • Nejnovější
    • Populární
    • World
    • Přihlásit se

    Podpora PKCE ?

    Scheduled Připnuto Uzamknuto Přesunuto OAuth přihlášení přes Seznam
    5 Příspěvky 2 Přispěvatelé 155 Zobrazení
    Načítání více příspěvků
    • Od nejstarších po nejnovější
    • Od nejnovějších po nejstarší
    • S nejvíce hlasy
    Odpovědět
    • Odpovědět jako Téma
    Přihlásit se pro odpověď
    Toto téma bylo odstraněno. Jen uživatelé s oprávněním správy témat ho mohou vidět.
    • Lukáš LangrL Offline
      Lukáš Langr
      naposledy upravil

      Dobrý den,
      dle diskuze https://napoveda.seznam.cz/forum/threads/173207/1 by PKCE mělo být podporováno. Bohužel se mi však nedaří vygenerovat access token za použití code_challange / code_verifier.

      Zde záznam z pokusu:

      GET https://login.szn.cz/api/v1/oauth/auth?response_type=code&client_id=753a59c0f2ba3a4b3164a6c1ded2ba6aaf0fe2785cc48f7f&redirect_uri=https%3A%2F%2Fwww.elitedate.loc%2Foauth%2Flogin%2Fprocess%2Fseznam&scope=identity&code_challenge=U3VZ9Rvcr-JWB_GfLPv-ZohRLI0ErTl42-jwmH1qyQg&code_challenge_method=S256

      POST https://login.szn.cz/api/v1/oauth/token
      Content-Type: application/x-www-form-urlencoded
      Accept: application/json

      client_id=753a59c0f2ba3a4b3164a6c1ded2ba6aaf0fe2785cc48f7f&redirect_uri=https%3A%2F%2Fwww.elitedate.loc%2Foauth%2Flogin%2Fprocess%2Fseznam&grant_type=authorization_code&code=T_WsXhtnJTBNCusnBoXEEsekaO&code_verifier=yUgsksN0ysBlKdS193V73cCeuhh1GKuoWBdfM7KHE4qaa4cd

      400 Bad Request {"error": "invalid_client"}

      Code challange jsem generoval zde https://tonyxu-io.github.io/pkce-generator/ , tak předpokládám, že v tom problém nebude.

      Když vynechám z přihlašovací URL code_challenge=&code_challenge_method=, tak následně s client_secret nemám problém získat access_token. Takže potíž je jen s tím použitím PKCE.

      Podařilo se někomu zprovoznit PKCE? Dělám něco špatně?

      Předem děkuji za pomoc.

      1 odpověď Poslední odpověď Odpovědět Citovat 0
      • Ondřej ŽáraO Offline
        Ondřej Žára
        naposledy upravil

        Dobry den,

        nase implementace PKCE bohuzel neodstranovala rovnitka pri vypoctu hashe code_challenge (viz diskuze u https://napoveda.seznam.cz/forum/threads/173207/1). Nyni by to jiz melo fungovat -- prosim, zkuste to znovu a dejte vedet.

        S pozdravem
        Ondrej Zara

        Lukáš LangrL 1 odpověď Poslední odpověď Odpovědět Citovat 0
        • Lukáš LangrL Offline
          Lukáš Langr @Ondřej Žára
          naposledy upravil

          Mohu potvrdit, že nyní mi již projde kontrola code_challange / code_verifier. Ale i přestože použiji PKCE, tak je stále vyžadováno uvedení parametru client_secret se správnou hodnotou. Pokud tento parametr neuvedu, tak opět obdržím "invalid_client", i přestože mám správně PKCE.

          PKCE jsem plánoval použít v mobilní aplikaci, kde nelze bezpečně uchovávat client_secret. Vím, že PKCE není plnohodnotná náhrada za client_secret, ale spíše nadstavba. Nicméně jsem nabyl dojmu, že pro veřejného klienta je doporučený kompromis PKCE bez client_secret.

          Jaký postup pro Seznam Oauth je doporučený pro mobilního klienta?

          Ondřej ŽáraO 2 odpovědí Poslední odpověď Odpovědět Citovat 0
          • Ondřej ŽáraO Offline
            Ondřej Žára @Lukáš Langr
            naposledy upravil

            Dobrý den,

            správně jste popsal současný stav, kdy je client_secret vyžadován i při použití PKCE. Pokud vám to nečiní problém, zkuste jej zatím posílat (i když je jasné, že v případě mobilní aplikace je jeho "bezpečnost" na zhruba stejné úrovni, jako client_id).

            Zkusíme zvážit, zdali by se při PKCE mohl client_secret neověřovat (osobně mi to dává smysl), nicméně taková změna -- byť implementačně triviální -- asi chvíli potrvá. Dám vědět, pokud se tak stane.

            1 odpověď Poslední odpověď Odpovědět Citovat 0
            • Ondřej ŽáraO Offline
              Ondřej Žára @Lukáš Langr
              naposledy upravil

              @Lukáš-Langr

              Dobrý den,

              posunuli jsme se nyní do stavu, který navrhujete -- pokud použijete PKCE, není nutné posílat client_secret. Budete laskav, pokud to ozkoušíte a ověříte.

              1 odpověď Poslední odpověď Odpovědět Citovat 0
              • First post
                Last post