ടിവികൾ, കൺസോളുകൾ, കമാൻഡ്-ലൈൻ ടൂളുകൾ
ഒരു ടിവിക്ക് സൈൻ ഇൻ പേജ് എളുപ്പത്തിൽ കാണിക്കാനാവില്ല, ഒരു കമാൻഡ്-ലൈൻ ടൂൾ പാസ്വേഡ് ചോദിക്കാനും പാടില്ല. ഡിവൈസ് ഫ്ലോയിൽ, ഉപകരണം ഒരു ചെറിയ കോഡ് കാണിക്കുന്നു, ആൾ അത് തന്റെ ഫോണിലോ കമ്പ്യൂട്ടറിലോ, ഇതിനകം സൈൻ ഇൻ ചെയ്തിരിക്കുന്ന തന്റെ എൻവയോൺമെന്റിന്റെ ലോബിയിൽ ടൈപ്പ് ചെയ്യുന്നു.
ആപ്പ് രജിസ്റ്റർ ചെയ്യുക
Usher Console-ൽ എൻവയോൺമെന്റ് തുറക്കുക, തുടർന്ന് ആപ്ലിക്കേഷനുകൾ → പുതിയ ആപ്ലിക്കേഷൻ → ടിവി അല്ലെങ്കിൽ കമാൻഡ് ലൈൻ. അതിന് ഒരു ക്ലയന്റ് ID ലഭിക്കും, സീക്രട്ട് ഇല്ല: ഒരു ഉപകരണത്തിന് അത് സുരക്ഷിതമായി സൂക്ഷിക്കാനാവില്ല.
ഫ്ലോ
# 1. the device asks for a code
curl -s -X POST https://acme.usherid.com/api/auth/device/code \
-d client_id=YOUR_CLIENT_ID -d scope='openid email offline_access'
# → { "device_code": "…", "user_code": "6L95PBQQ",
# "verification_uri": "https://acme.usherid.com/device",
# "verification_uri_complete": "https://acme.usherid.com/device?user_code=6L95PBQQ",
# "expires_in": 600, "interval": 5 }
# 2. it shows the code (and a QR code of verification_uri_complete), then polls
curl -s -X POST https://acme.usherid.com/api/auth/oauth2/token \
-d grant_type=urn:ietf:params:oauth:grant-type:device_code \
-d device_code=… -d client_id=YOUR_CLIENT_ID
# → { "error": "authorization_pending" } until the person allows it,
# then { "access_token": "…", "id_token": "…", "refresh_token": "…" }- മര്യാദയോടെ പോൾ ചെയ്യുക. പോളുകൾക്കിടയിൽ
intervalസെക്കൻഡ് കാത്തിരിക്കുക. അതിലും വേഗത്തിൽ പോൾ ചെയ്താൽ മറുപടിslow_downആയിരിക്കും. - പറയുമ്പോൾ നിർത്തുക.
access_deniedഎന്നാൽ ആൾ നിരസിച്ചു;expired_tokenഎന്നാൽ പത്ത് മിനിറ്റ് കഴിഞ്ഞു. പുതിയൊരു കോഡ് ചോദിക്കുക. - വിലാസവും കാണിക്കുക. എല്ലാവർക്കും QR കോഡ് സ്കാൻ ചെയ്യാനാവില്ല:
verification_uri-ഉം കോഡും കാണിക്കുക,6L95-PBQQപോലെ ഇടവിട്ട്.
/device-ൽ, ഏത് ആപ്പാണ് ചോദിക്കുന്നതെന്നും എന്തിനാണെന്നും ലോബി ആളെ കാണിക്കുന്നു. അവർ സ്വയം ഇത് ആരംഭിച്ചതാണെങ്കിലും അവരുടെ ഉപകരണം അതേ കോഡ് കാണിക്കുന്നുണ്ടെങ്കിലും മാത്രം മുന്നോട്ട് പോകാൻ അത് പറയുന്നു.
ടോക്കണുകൾ ഉപകരണവുമായി ബന്ധിപ്പിക്കുക (DPoP)
ഒരു ഉപകരണത്തിൽ നിന്ന് പകർത്തിയ ടോക്കണും ഒരു ടോക്കൺ തന്നെയാണ്. DPoP (RFC 9449) ഉപയോഗിക്കുമ്പോൾ, ഉപകരണം ഒരു പ്രൈവറ്റ് കീ സൂക്ഷിക്കുകയും ഓരോ അഭ്യർത്ഥനയ്ക്കൊപ്പവും പുതിയതായി സൈൻ ചെയ്ത ഒരു പ്രൂഫ് അയയ്ക്കുകയും ചെയ്യുന്നു. ആ കീയുമായി ബന്ധിപ്പിച്ച ടോക്കൺ അതില്ലാതെ ഉപയോഗശൂന്യമാണ്.
- ബന്ധിത ടോക്കണുകൾ ചോദിക്കുക: നിങ്ങളുടെ ടോക്കൺ അഭ്യർത്ഥനകൾക്കൊപ്പം ഒരു
DPoPഹെഡർ അയയ്ക്കുക, Usher നൽകുന്നവ നിങ്ങളുടെ കീയുമായി ബന്ധിപ്പിക്കും (token_typeഎന്നത്DPoPആയിരിക്കും). - അവ നിർബന്ധമാക്കുക: ആപ്പ് സൃഷ്ടിക്കുമ്പോൾ DPoP നിർബന്ധമാക്കുക ഓണാക്കുക. പിന്നീട് പ്രൂഫ് ഇല്ലാതെ Usher അതിന് ഒരു ടോക്കണും നൽകില്ല.
- അവ ഉപയോഗിക്കുക:
Authorization: DPoP <token>ഉപയോഗിച്ച്, ആ അഭ്യർത്ഥനയ്ക്കുള്ള ഒരു പ്രൂഫും സഹിതം. - ലൈബ്രറികൾ: DPoP പിന്തുണയുള്ള മിക്ക OAuth ലൈബ്രറികളും ഇതെല്ലാം നിങ്ങൾക്കായി ചെയ്യും (ഉദാഹരണത്തിന്
openid-client-ന്റെDPoPഓപ്ഷൻ).