oauth 2 0 authorization using blockchain based tokens
play

OAuth 2.0 authorization using blockchain-based tokens Nikos - PowerPoint PPT Presentation

OAuth 2.0 authorization using blockchain-based tokens Nikos Fotiou, Iakovos Pittaras, Vasilios A. Siris, Spyros Voulgaris, George C. Polyzos Resource sharing Authorization Client Resource owner Resource storage Resource access Resource


  1. OAuth 2.0 authorization using blockchain-based tokens Nikos Fotiou, Iakovos Pittaras, Vasilios A. Siris, Spyros Voulgaris, George C. Polyzos

  2. Resource sharing Authorization Client Resource owner Resource storage Resource access Resource server

  3. OAuth 2.0-based authorization Client Resource owner Authorization request Authorization grant

  4. OAuth 2.0-based authorization Client Resource owner Authorization request Authorization grant Authorization server Authorization grant Access token

  5. OAuth 2.0-based authorization Client Resource owner Authorization request Authorization grant Authorization server Authorization grant Access token Resource server Resource request, token Resource

  6. Our work Client Resource owner Authorization request Authorization grant Authorization server Authorization grant Access token Resource server Resource request, token Resource

  7. The Ethereum blockchain • Data “recorded” in the ledger are immutable • Decentrilized “smart contract” can be executed by untrusted nodes in a deterministic way

  8. ERC-721 ERC-721 tokens • Token Id • Owner Id • Metadata

  9. ERC-721 ERC-721 tokens ERC-721 token management • Token Id contract • Owner Id • ownerOf() • Metadata • transferFrom() • tokenURI() • approve() • getApproved()

  10. JWT { Client “iss”: Authorization Server “aud”: Resource URI “sub”: Client Key “exp”: Expiration Time “jti” : Token identifier } Authorization server Access token

  11. JWT + ERC-721 { Client “iss”: Authorization Server “aud”: Resource URI “sub”: Client Key “exp”: Expiration Time “jti” : Token identifier } Authorization server ERC-721 token Access token Token Id : jti Owner Id : Client key Metadata: JWT

  12. Accessing legacy resource servers Client Resource server Resource request, token Verify Client key ownership Resource • It facilitates logging and auditing services • Clients can at any time retrieve their access token from the blockchain

  13. Accessing resource servers with BC read access Client Resource server Resource request, token ownerOf(), tokenURI() Verify Client key ownership Resource

  14. Revocation Authorization server Client Resource server transferFrom() Resource request, token ownerOf(), tokenURI() • Revocation is asynchronous • Authorization server does not have to be online

  15. Delegation Client A Approve(Client B) Client B Resource server Resource request, token getApproved(), tokenURI() Verify Client key ownership Resource • Delegation is not transitive • Revocation is not affected

  16. Fair exchange Client Authorization server ERC-721 token Access token Token identifier Owner : Authorization server Metadata: JWT Payment transferFrom()

  17. Discussion • Existing OAuth 2.0 code-base can be re-used • In some cases our approach is transparent to OAuth endpoints • In no payments are involved then private, or testing chains can be used. • If the client does not interact with the blockchain, then ownerOf() may return any type of identifier. • (Public) blockchains have privacy issues, introduce delays (~13sec per transaction) and monetary costs (~$0.10 to create a token, $0.02 to revoke or delegate)

  18. Thank you fotiou@aueb.gr https://mm.aueb.gr/blockchains

Recommend


More recommend