ಟಿವಿಗಳು, ಕನ್ಸೋಲ್ಗಳು ಮತ್ತು ಕಮಾಂಡ್-ಲೈನ್ ಪರಿಕರಗಳು
ಟಿವಿ ಸೈನ್-ಇನ್ ಪುಟವನ್ನು ಸುಲಭವಾಗಿ ತೋರಿಸಲಾರದು, ಮತ್ತು ಕಮಾಂಡ್-ಲೈನ್ ಪರಿಕರ ಪಾಸ್ವರ್ಡ್ ಕೇಳಬಾರದು. ಡಿವೈಸ್ ಫ್ಲೋನಲ್ಲಿ, ಸಾಧನವು ಒಂದು ಚಿಕ್ಕ ಕೋಡ್ ತೋರಿಸುತ್ತದೆ, ಮತ್ತು ವ್ಯಕ್ತಿ ತಾವು ಈಗಾಗಲೇ ಸೈನ್ ಇನ್ ಆಗಿರುವ ತಮ್ಮ ಫೋನ್ ಅಥವಾ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ, ತಮ್ಮ ಎನ್ವಿರಾನ್ಮೆಂಟ್ನ ಲಾಬಿಯಲ್ಲಿ ಅದನ್ನು ಟೈಪ್ ಮಾಡುತ್ತಾರೆ.
ಆ್ಯಪ್ ನೋಂದಾಯಿಸಿ
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ಆಯ್ಕೆ).