Open in
OAuth ನೊಂದಿಗೆ ಸಂಪರ್ಕಿಸಿ
API ಕೀಲಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳದೆ MCP ಕ್ಲೈಂಟ್ಗಳು ಮತ್ತು ThunderPhone CLI ಗೆ ಅಧಿಕಾರ ನೀಡಿ.
OAuth ಒಂದು ಅಪ್ಲಿಕೇಶನ್ಗೆ ನೀವು ಅನುಮೋದಿಸುವ ಅನುಮತಿಗಳೊಂದಿಗೆ ಒಂದು ThunderPhone ಸಂಸ್ಥೆಗೆ ಸಂಪರ್ಕಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ. ಡೈರೆಕ್ಟರಿ ಕ್ಲೈಂಟ್ಗಳು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ OAuth ಬಳಸಬೇಕು. ಕೈಯಾರೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ Bearer ಟೋಕನ್ ಅಗತ್ಯವಿರುವ ಕ್ಲೈಂಟ್ಗಳಿಗಾಗಿ ಸಂಸ್ಥೆಯ API ಕೀಲಿಗಳು ಲಭ್ಯವಿರುತ್ತವೆ.
ಸಂಪರ್ಕವನ್ನು ಅನುಮೋದಿಸಿ
ನಿಮ್ಮ MCP ಕ್ಲೈಂಟ್ನಲ್ಲಿ ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸಿ. ThunderPhone ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ, ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರು ಮತ್ತು ವಿನಂತಿಸಿದ ಅನುಮತಿಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಒಂದು ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ, ನಂತರ ಅನುಮೋದಿಸಿ ಆಯ್ಕೆಮಾಡಿ. ನೀವು ಸಂಪರ್ಕವನ್ನು ಪ್ರಾರಂಭಿಸದಿದ್ದರೆ ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಂಬದಿದ್ದರೆ ನಿರಾಕರಿಸಿ ಆಯ್ಕೆಮಾಡಿ. ಅಪ್ಲಿಕೇಶನ್ ಹೆಸರುಗಳನ್ನು ಅವುಗಳ ಡೆವಲಪರ್ಗಳು ಒದಗಿಸುತ್ತಾರೆ ಮತ್ತು ಅವು ಪರಿಶೀಲನೆಯ ಗುರುತಲ್ಲ.
ಓದುವ ಅನುಮತಿಗಳು ಸೂಚಿಸಲಾದ ಡೇಟಾವನ್ನು ಬಹಿರಂಗಪಡಿಸುತ್ತವೆ; calls:read ವಿನಂತಿಸಿದಾಗ ಧ್ವನಿಮುದ್ರಣಗಳು ಮತ್ತು ಲಿಪ್ಯಂತರಗಳೂ ಇದರಲ್ಲಿ ಸೇರಿರುತ್ತವೆ. ಬರೆಯುವ ಅನುಮತಿಗಳು ಸಂಪನ್ಮೂಲಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು ಅಥವಾ ಅಳಿಸಬಹುದು; ಕರೆಗಳು, ಅಭಿಯಾನಗಳು, ಫೋನ್ ಖರೀದಿಗಳು ಮತ್ತು ನಿಯೋಜನೆಗಳು ವೆಚ್ಚವನ್ನು ಉಂಟುಮಾಡಬಹುದು ಅಥವಾ ಉತ್ಪಾದನಾ ಪರಿಸರದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಪಾತ್ರವು ಇನ್ನೂ ಅನ್ವಯಿಸುತ್ತದೆ.
CLI ಸಂಪರ್ಕಕ್ಕಾಗಿ, ನಿಮ್ಮ ಟರ್ಮಿನಲ್ನಲ್ಲಿ ತೋರಿಸಲಾದ ಪರಿಶೀಲನೆ ಲಿಂಕ್ ತೆರೆಯಿರಿ, ಎಂಟು-ಅಕ್ಷರದ ಕೋಡ್ ಅನ್ನು ಹೋಲಿಸಿ, ನಿಮ್ಮ ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಅನುಮೋದಿಸಿ. ಲಿಂಕ್ ಅನ್ನು ತೆರೆಯುವುದರಿಂದ ಮಾತ್ರ ಪ್ರವೇಶ ಸಿಗುವುದಿಲ್ಲ. ಕೋಡ್ಗಳು 15 ನಿಮಿಷಗಳ ನಂತರ ಅವಧಿ ಮೀರುತ್ತವೆ.
ಅಪ್ಲಿಕೇಶನ್ ಸಂಪರ್ಕವನ್ನು ಕಡಿತಗೊಳಿಸಿ
ಡ್ಯಾಶ್ಬೋರ್ಡ್ನಲ್ಲಿ ಸಂಸ್ಥೆ → API ಕೀಲಿಗಳು → ಅಧಿಕೃತ ಅಪ್ಲಿಕೇಶನ್ಗಳು ತೆರೆಯಿರಿ ಮತ್ತು ರದ್ದುಮಾಡಿ ಆಯ್ಕೆಮಾಡಿ. ಇದು ಪ್ರಸ್ತುತ ಸಂಸ್ಥೆಗಾಗಿ ನೀವು ಆಯ್ಕೆಮಾಡಿದ ಅಧಿಕಾರೀಕರಣವನ್ನು, ಅದರ ಪ್ರವೇಶ ಮತ್ತು ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ, ರದ್ದುಮಾಡುತ್ತದೆ. ಅದನ್ನು ಮತ್ತೆ ಅಧಿಕಾರೀಕರಿಸಲು ಬಯಸಿದರೆ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಮರುಸಂಪರ್ಕಿಸಿ.
MCP ಕ್ಲೈಯಂಟ್ಗಳಿಗಾಗಿ ಡಿಸ್ಕವರಿ
ಸರ್ವರ್ URL https://api.thunderphone.com/v1/mcp ಬಳಸಿ. ಮಾನ್ಯ ದೃಢೀಕರಣವಿಲ್ಲದ ವಿನಂತಿಗೆ ಈ ಕೆಳಗಿನುದರೊಂದಿಗೆ 401 ದೊರೆಯುತ್ತದೆ:
WWW-Authenticate: Bearer resource_metadata="https://api.thunderphone.com/.well-known/oauth-protected-resource"ಆ ದಸ್ತಾವೇಜನ್ನು ಪಡೆಯಿರಿ, ನಂತರ https://api.thunderphone.com/.well-known/oauth-authorization-server ನಲ್ಲಿ ಅಧಿಕಾರೀಕರಣ ಸರ್ವರ್ನ ಮೆಟಾಡೇಟಾವನ್ನು ಪಡೆಯಿರಿ. ಸಂಪನ್ಮೂಲ ಮೆಟಾಡೇಟಾವು /.well-known/oauth-protected-resource/v1/mcp ನಲ್ಲಿಯೂ ಲಭ್ಯವಿದೆ. ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬದಲು ಹಿಂತಿರುಗಿದ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳನ್ನು ಬಳಸಿ. ಸಂಪನ್ಮೂಲ ಗುರುತಿಸುವಿಕೆ https://api.thunderphone.com/v1/mcp ಆಗಿದೆ.
ಸರ್ವರ್ S256 PKCE ಯೊಂದಿಗಿನ ಅಧಿಕಾರೀಕರಣ ಕೋಡ್, ರೊಟೇಟ್ ಆಗುವ ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳು, ಸಾರ್ವಜನಿಕ ಡೈನಾಮಿಕ್ ಕ್ಲೈಯಂಟ್ ನೋಂದಣಿ, ಹಿಂತೆಗೆದುಕೊಳ್ಳುವಿಕೆ ಮತ್ತು ಸಾಧನ ಅಧಿಕಾರೀಕರಣ ಗ್ರಾಂಟ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಕ್ಲೈಯಂಟ್ ಸೀಕ್ರೆಟ್ಗಳು ಅಥವಾ ಇಂಪ್ಲಿಸಿಟ್ ಗ್ರಾಂಟ್ಗಳಿಲ್ಲ. OpenID ಡಿಸ್ಕವರಿಯು /.well-known/openid-configuration ನಲ್ಲಿಯೂ ಲಭ್ಯವಿದೆ; ಇದರಲ್ಲಿ ಅದೇ ಅಧಿಕಾರೀಕರಣ-ಸರ್ವರ್ ಕ್ಷೇತ್ರಗಳ ಜೊತೆಗೆ subject_types_supported: ["public"] ಮತ್ತು ಯೂಸರ್ಇನ್ಫೊ ಎಂಡ್ಪಾಯಿಂಟ್ ಇರುತ್ತವೆ. ID ಟೋಕನ್ಗಳು ಮತ್ತು ಕ್ಲೈಯಂಟ್ ID ಮೆಟಾಡೇಟಾ ದಸ್ತಾವೇಜುಗಳು (CIMD) ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.
ಸಾರ್ವಜನಿಕ ಕ್ಲೈಯಂಟ್ ನೋಂದಾಯಿಸಿ
POST /v1/oauth/register ಗೆ JSON ಕಳುಹಿಸಿ:
{
"client_name": "My MCP client",
"redirect_uris": ["http://127.0.0.1:8765/callback"],
"token_endpoint_auth_method": "none",
"grant_types": ["authorization_code", "refresh_token"],
"response_types": ["code"]
}ಹಿಂತಿರುಗಿದ client_id ಉಳಿಸಿ. ರೀಡೈರೆಕ್ಟ್ಗಳು HTTPS ಬಳಸಬೇಕು, ಅಥವಾ 127.0.0.1 ಅಥವಾ localhost ನಲ್ಲಿ HTTP ಬಳಸಬೇಕು. ಪೋರ್ಟ್ ಮತ್ತು ಪಾತ್ ಸೇರಿದಂತೆ ನಿಖರವಾದ ಕಾಲ್ಬ್ಯಾಕ್ URI ಅನ್ನು ನೋಂದಾಯಿಸಿ. ಫ್ರಾಗ್ಮೆಂಟ್ಗಳು ಮತ್ತು ಎಂಬೆಡೆಡ್ ರುಜುವಾತುಗಳನ್ನು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ. ಐಚ್ಛಿಕ client_uri ಮತ್ತು logo_uri HTTPS ಬಳಸಬೇಕು; ನೋಂದಣಿಯ ವೇಳೆ ThunderPhone ಅವುಗಳನ್ನು ಪಡೆಯುವುದಿಲ್ಲ. ನೋಂದಣಿಗೆ ದರ ಮಿತಿಯಿದೆ. ನೋಂದಾಯಿತ ಕ್ಲೈಯಂಟ್ಗಳ ಅವಧಿ ಮುಗಿಯುವುದಿಲ್ಲ ಮತ್ತು ಸಂಪರ್ಕವನ್ನು ಹಿಂತೆಗೆದುಕೊಂಡಾಗಲೂ ಅವು ನೋಂದಾಯಿತವಾಗಿಯೇ ಇರುತ್ತವೆ. HTTPS ಕಾಲ್ಬ್ಯಾಕ್ಗಳಲ್ಲಿ https://chatgpt.com/connector/oauth/<id> ಮತ್ತು https://chatgpt.com/connector_platform_oauth_redirect ಸೇರಿವೆ. ಪ್ರತಿಯೊಂದು ಸಂಪರ್ಕವೂ ತನ್ನದೇ ಕ್ಲೈಯಂಟ್ ಅನ್ನು ನೋಂದಾಯಿಸಬಹುದು.
ಅಧಿಕಾರೀಕರಣ ಕೋಡ್
ಪತ್ತೆಯಾದ ಅಧಿಕಾರೀಕರಣ ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು client_id, ನಿಖರವಾಗಿ ನೋಂದಾಯಿತ redirect_uri, response_type=code, ಯಾದೃಚ್ಛಿಕ state, scope, code_challenge, code_challenge_method=S256, ಮತ್ತು resource=https://api.thunderphone.com/v1/mcp ನೊಂದಿಗೆ ತೆರೆಯಿರಿ. ಹೊಸದಾದ ಹೆಚ್ಚಿನ ಎಂಟ್ರೊಪಿ ಹೊಂದಿರುವ PKCE ವೆರಿಫೈಯರ್ನ ಪ್ಯಾಡಿಂಗ್ರಹಿತ base64url SHA-256 ಡೈಜೆಸ್ಟ್ ಆಗಿ ಚಾಲೆಂಜ್ ಅನ್ನು ಲೆಕ್ಕಹಾಕಿ. ಕೋಡ್ ವಿನಿಮಯ ಮಾಡುವ ಮೊದಲು ಹಿಂತಿರುಗಿದ state ಮತ್ತು iss ಅನ್ನು ಪರಿಶೀಲಿಸಿ. ನಿರಾಕರಣೆ ಮತ್ತು ಪ್ರೊಟೋಕಾಲ್ ದೋಷಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಪ್ರತಿಯೊಂದು ಅಧಿಕಾರೀಕರಣ ಪ್ರತಿಕ್ರಿಯೆಯು ಪತ್ತೆಯಾದ issuer ಗೆ ನಿಖರವಾಗಿ ಹೊಂದುವ iss ನೊಂದಿಗೆ ನೀಡುವವರನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಅಮಾನ್ಯ ಕ್ಲೈಯಂಟ್ ಅಥವಾ ಕಾಲ್ಬ್ಯಾಕ್ನ ದೋಷಗಳನ್ನು ಆ ಕಾಲ್ಬ್ಯಾಕ್ಗೆ ರೀಡೈರೆಕ್ಟ್ ಮಾಡದೆ ಸ್ಥಳೀಯವಾಗಿ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ.
ಫಾರ್ಮ್ ಎನ್ಕೋಡಿಂಗ್ ಬಳಸಿ POST /v1/oauth/token ನಲ್ಲಿ ವಿನಿಮಯ ಮಾಡಿ (JSON ಅನ್ನೂ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ):
grant_type=authorization_code
client_id=<your client id>
code=<single-use authorization code>
redirect_uri=<exact registered redirect URI>
code_verifier=<original PKCE verifier>
resource=https://api.thunderphone.com/v1/mcpಐಚ್ಛಿಕ resource ಪ್ಯಾರಾಮೀಟರ್ ಅನ್ನು ಅಧಿಕಾರೀಕರಣ ಮತ್ತು ಟೋಕನ್ ವಿನಂತಿಗಳೆರಡರಲ್ಲೂ ಸ್ವೀಕರಿಸಲಾಗುತ್ತದೆ (ರಿಫ್ರೆಶ್ ಮತ್ತು ಸಾಧನ ವಿನಿಮಯಗಳನ್ನು ಒಳಗೊಂಡಂತೆ). ಬಿಟ್ಟುಬಿಟ್ಟಾಗ, ಇದು ಪತ್ತೆಯಾದ MCP ಸಂಪನ್ಮೂಲಕ್ಕೆ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿರುತ್ತದೆ. ನೀಡಿದಾಗ, ಅದು ಆ ಸಂಪನ್ಮೂಲಕ್ಕೆ ನಿಖರವಾಗಿ ಹೊಂದಬೇಕು; ಇತರ ಮೌಲ್ಯಗಳು invalid_target ಹಿಂತಿರುಗಿಸುತ್ತವೆ. ಆಕ್ಸೆಸ್ ಟೋಕನ್ಗಳು ಆ ಆಡಿಯನ್ಸ್ ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ ಮತ್ತು ಕಾಣೆಯಾದ ಅಥವಾ ವಿಭಿನ್ನ ಆಡಿಯನ್ಸ್ ಇರುವ ಟೋಕನ್ಗಳನ್ನು MCP 401 ಮತ್ತು ಡಿಸ್ಕವರಿ ಚಾಲೆಂಜ್ನೊಂದಿಗೆ ತಿರಸ್ಕರಿಸುತ್ತದೆ.
ಅಧಿಕಾರೀಕರಣ ವಿನಂತಿಗಳು ಮತ್ತು ಕೋಡ್ಗಳು 10 ನಿಮಿಷಗಳ ನಂತರ ಅವಧಿ ಮುಗಿಯುತ್ತವೆ. ಪ್ರತಿಯೊಂದು ಟೋಕನ್ ಪ್ರತಿಕ್ರಿಯೆಯು access_token, token_type (Bearer), expires_in (ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ 3600 ಸೆಕೆಂಡುಗಳು), refresh_token, scope, organization_id, ಮತ್ತು organization_name ಅನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಆಕ್ಸೆಸ್ ಟೋಕನ್ಗಳನ್ನು Authorization: Bearer ಹೆಡರ್ ಮೂಲಕ ಮಾತ್ರ ಕಳುಹಿಸಿ. ಟೋಕನ್ಗಳನ್ನು URLಗಳು, ಲಾಗ್ಗಳು, ಸೋರ್ಸ್ ಕಂಟ್ರೋಲ್ ಅಥವಾ ಚಾಟ್ನಲ್ಲಿ ಎಂದಿಗೂ ಇರಿಸಬೇಡಿ.
ರಿಫ್ರೆಶ್ ಮತ್ತು ಹಿಂತೆಗೆದುಕೊಳ್ಳಿ
ಟೋಕನ್ ಎಂಡ್ಪಾಯಿಂಟ್ನಲ್ಲಿ grant_type=refresh_token, client_id, refresh_token, ಮತ್ತು resource ನೊಂದಿಗೆ ರಿಫ್ರೆಶ್ ಮಾಡಿ. ಹೊಸ ರಿಫ್ರೆಶ್ ಟೋಕನ್ ಅನ್ನು ಅಟಾಮಿಕ್ ಆಗಿ ಉಳಿಸಿ ಮತ್ತು ಹಳೆಯದನ್ನು ಬಳಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಯಶಸ್ವಿ ರಿಫ್ರೆಶ್ ಇಲ್ಲದೆ 30 ದಿನಗಳ ನಂತರ ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳ ಅವಧಿ ಮುಗಿಯುತ್ತದೆ. ಐಚ್ಛಿಕ scope ಮಂಜೂರಾದ ಅನುಮತಿಗಳನ್ನು ಸೀಮಿತಗೊಳಿಸಬಹುದು. offline_access ಅನ್ನು ಯಾವಾಗಲೂ ಸೇರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರಿಫ್ರೆಶ್ ಟೋಕನ್ಗಳನ್ನು ಯಾವಾಗಲೂ ನೀಡಲಾಗುತ್ತದೆ. scope ಇಲ್ಲದ ಆರಂಭಿಕ ವಿನಂತಿಯು offline_access ಅನ್ನು ಮಾತ್ರ ಮಂಜೂರು ಮಾಡುತ್ತದೆ, ಆದ್ದರಿಂದ ಕ್ಲೈಯಂಟ್ಗಳು ತಮಗೆ ಬೇಕಾದ ಅನುಮತಿಗಳನ್ನು ವಿನಂತಿಸಬೇಕು.
ಕೋಡ್ ಮರುಬಳಕೆ ಮತ್ತು ರೊಟೇಟ್ ಆದ ರಿಫ್ರೆಶ್-ಟೋಕನ್ ಮರುಬಳಕೆಯು ಸಂಪೂರ್ಣ ಅಧಿಕಾರೀಕರಣವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಕ್ಲೈಯಂಟ್ನೊಳಗಿನ ರಿಫ್ರೆಶ್ಗಳನ್ನು ಕ್ರಮಬದ್ಧಗೊಳಿಸಿ; ಯಶಸ್ವಿಯಾಗಿ ವಿನಿಮಯಗೊಂಡ ರುಜುವಾತನ್ನು ಮರುಪ್ಲೇ ಮಾಡುವುದು ಸುರಕ್ಷಿತ ಮರುಪ್ರಯತ್ನ ತಂತ್ರವಲ್ಲ.
ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲು, POST /v1/oauth/revoke ಗೆ token ಮತ್ತು client_id ಕಳುಹಿಸಿ. ಯಾವುದಾದರೂ ಟೋಕನ್ ಅನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳುವುದರಿಂದ, ಅದರಿಂದ ನೀಡಲಾದ ಎಲ್ಲ ಟೋಕನ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಅದರ ಅಧಿಕಾರೀಕರಣ ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗುತ್ತದೆ. ಅಜ್ಞಾತ ಟೋಕನ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೇ ಎಂಬುದನ್ನು ಬಹಿರಂಗಪಡಿಸದೆ ಯಶಸ್ಸನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಸೆಷನ್ಗಳು ತಮ್ಮದೇ ಅಧಿಕಾರೀಕರಣಗಳನ್ನು GET /v1/oauth/grants ನಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಬಹುದು ಮತ್ತು X-ThunderPhone-Org ಸಂಸ್ಥೆಯನ್ನು ಆಯ್ಕೆಮಾಡುವಂತೆ, ಒಂದನ್ನು DELETE /v1/oauth/grants/<id> ನಲ್ಲಿ ಹಿಂತೆಗೆದುಕೊಳ್ಳಬಹುದು.
ಸಾಧನ ಅಧಿಕಾರೀಕರಣ
ಸಾಧನ ಅಧಿಕಾರೀಕರಣವು ಪೂರ್ವ-ನೋಂದಾಯಿತ ಕ್ಲೈಯಂಟ್ಗಳಿಗೆ ಸೀಮಿತವಾಗಿದೆ; ಡೈನಾಮಿಕ್ ಆಗಿ ನೋಂದಾಯಿತ ಕ್ಲೈಯಂಟ್ಗಳು unauthorized_client ಸ್ವೀಕರಿಸುತ್ತವೆ. ಪೂರ್ವ-ನೋಂದಾಯಿತ ಸಾರ್ವಜನಿಕ ಕ್ಲೈಯಂಟ್ thunderphone-cli ಸಾಧನ ಅಧಿಕಾರೀಕರಣ ಮತ್ತು ರಿಫ್ರೆಶ್ ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. POST /v1/oauth/device/code ಗೆ client_id=thunderphone-cli ಮತ್ತು scope ಕಳುಹಿಸಿ. ಬಳಕೆದಾರರಿಗೆ user_code ಮತ್ತು verification_uri ಪ್ರದರ್ಶಿಸಿ, ಅಥವಾ verification_uri_complete ತೆರೆಯಿರಿ.
ಕನಿಷ್ಠ ಹಿಂತಿರುಗಿದ interval (5 ಸೆಕೆಂಡುಗಳು) ನಿರೀಕ್ಷಿಸಿ, grant_type=urn:ietf:params:oauth:grant-type:device_code, client_id, ಮತ್ತು device_code ನೊಂದಿಗೆ ಟೋಕನ್ ಎಂಡ್ಪಾಯಿಂಟ್ ಅನ್ನು ಪೋಲ್ ಮಾಡಿ. authorization_pending ನಲ್ಲಿ ಮುಂದುವರಿಸಿ. slow_down ನಲ್ಲಿ, ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ ಹಿಂತಿರುಗಿದ ಹೊಸ interval ಅನ್ನು (5 ಸೆಕೆಂಡುಗಳಿಂದ ಹೆಚ್ಚಿಸಲಾಗಿದೆ) ಪ್ರತಿ ನಂತರದ ವಿನಂತಿಗೆ ಬಳಸಿ. access_denied, expired_token, ಅಥವಾ ಬೇರೆ ಯಾವುದೇ ದೋಷದಲ್ಲಿ ನಿಲ್ಲಿಸಿ. ಸಾಧನ ಕೋಡ್ ಅನ್ನು ಎಂದಿಗೂ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುಮೋದಿಸಬೇಡಿ.
ಪೂರ್ವ-ನೋಂದಾಯಿತ thunderphone-mcp ಕ್ಲೈಯಂಟ್ ಯಾವುದೇ ಪೋರ್ಟ್ನಲ್ಲಿ http://127.0.0.1/callback ಮತ್ತು http://localhost/callback ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ಸ್ಕೀಮ್, ಹೋಸ್ಟ್, ಪಾತ್ ಮತ್ತು ಕ್ವೆರಿ ಹೊಂದಬೇಕು; ಟೋಕನ್ ವಿನಿಮಯವು ಅಧಿಕಾರೀಕರಣದಿಂದ ಬಂದ ನಿಖರವಾದ ರೀಡೈರೆಕ್ಟ್ URI ಅನ್ನು (ಪೋರ್ಟ್ ಸೇರಿದಂತೆ) ಬಳಸಬೇಕು. ಡೈನಾಮಿಕ್ ಆಗಿ ನೋಂದಾಯಿತ ಕ್ಲೈಯಂಟ್ಗಳಿಗೆ ಪೋರ್ಟ್ ಸೇರಿದಂತೆ ನಿಖರವಾದ ರೀಡೈರೆಕ್ಟ್-URI ಹೊಂದಾಣಿಕೆ ಅಗತ್ಯವಿದೆ. ಬೇರೆ ಪಾತ್ ಬೇಕಾದರೆ ಬೇರೆ ಕಾಲ್ಬ್ಯಾಕ್ ಅನ್ನು ಡೈನಾಮಿಕ್ ಆಗಿ ನೋಂದಾಯಿಸಿ.
ಖಾತೆ ಗುರುತು ಮತ್ತು ಕಾರ್ಯಸ್ಥಳ ಡೊಮೇನ್ ಪರಿಶೀಲನೆಗಳು
ನಿಮ್ಮ ಕ್ಲೈಯಂಟ್ಗೆ ಅಗತ್ಯವಿರುವ ಕಾರ್ಯಾಚರಣೆ ಸ್ಕೋಪ್ಗಳ ಜೊತೆಗೆ openid email ಎರಡನ್ನೂ ವಿನಂತಿಸಿ. Bearer ಹೆಡರ್ನಲ್ಲಿ ಆಕ್ಸೆಸ್ ಟೋಕನ್ನೊಂದಿಗೆ ಪತ್ತೆಯಾದ userinfo_endpoint (GET /v1/oauth/userinfo) ಅನ್ನು ಕರೆ ಮಾಡಿ. ಯಶಸ್ವಿ ಪ್ರತಿಕ್ರಿಯೆಯು ಈ ಕೆಳಗಿನುದನ್ನು ಹೊಂದಿರುತ್ತದೆ:
{
"sub": "123",
"email": "person@example.com",
"email_verified": true,
"name": "Example User",
"org_id": 456
}sub ಸ್ಥಿರ ಬಳಕೆದಾರ ಗುರುತಿಸುವಿಕೆಯಾಗಿದೆ; org_id ಸಮ್ಮತಿಯ ವೇಳೆ ಆಯ್ಕೆಮಾಡಲಾದ ಸಂಸ್ಥೆಯಾಗಿದೆ. ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ ಎರಡೂ ಗುರುತು ಸ್ಕೋಪ್ಗಳು ಅಗತ್ಯವಿರುತ್ತವೆ ಮತ್ತು ಯಾವುದಾದರೂ ಕಾಣೆಯಾಗಿದ್ದರೆ 403 ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಖಾತೆಗೆ ಪರಿಶೀಲಿತ ಇಮೇಲ್ ಪ್ರೊಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ, ಪರಿಶೀಲಿಸದ ಇಮೇಲ್ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿದೆ ಎಂದು ಪ್ರತಿಪಾದಿಸುವ ಬದಲು ಇದು error=access_denied ನೊಂದಿಗೆ 403 ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಅಮಾನ್ಯ, ಅವಧಿ ಮುಗಿದ, ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾದ, ಅಥವಾ ತಪ್ಪು-ಆಡಿಯನ್ಸ್ ಟೋಕನ್ಗಳು 401 ಹಿಂತಿರುಗಿಸುತ್ತವೆ. ಮಾನವ ಸೆಷನ್ ಟೋಕನ್ಗಳು ಮತ್ತು ಸಂಸ್ಥೆಯ API ಕೀಗಳು ಯೂಸರ್ಇನ್ಫೊವನ್ನು ಕರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. ಯಾವುದೇ ID ಟೋಕನ್ ನೀಡಲಾಗುವುದಿಲ್ಲ.
ಲಭ್ಯವಿರುವ ಅನುಮತಿಗಳು
| ವರ್ಗ | ಸ್ಕೋಪ್ಗಳು |
|---|---|
| ಏಜೆಂಟ್ಗಳು ಮತ್ತು ಏಜೆಂಟ್ ಆಮದುಗಳು | agents:read, agents:write |
| ಕರೆಗಳು | calls:read, calls:write |
| ಫೋನ್ ಸಂಖ್ಯೆಗಳು ಮತ್ತು VoIP | numbers:read, numbers:write |
| ಜ್ಞಾನ | knowledge:read, knowledge:write |
| ಅಭಿಯಾನಗಳು | campaigns:read, campaigns:write |
| ಇಂಟಿಗ್ರೇಷನ್ಗಳು, ವೆಬ್ಹುಕ್ ಎಂಡ್ಪಾಯಿಂಟ್ಗಳು, MCP ಸರ್ವರ್ಗಳು | integrations:read, integrations:write |
| ಧ್ವನಿಗಳು | voices:read |
| ಪರೀಕ್ಷಾ ಸನ್ನಿವೇಶಗಳು, ಪರೀಕ್ಷಾ ರನ್ಗಳು, ಮೌಲ್ಯೀಕರಣ | testing:read, testing:write |
| ಬಿಲ್ಲಿಂಗ್ | billing:read |
| ಖಾತೆ ಗುರುತು ಮತ್ತು ಪರಿಶೀಲಿತ ಇಮೇಲ್ | openid, email (userinfo ಗಾಗಿ ಎರಡೂ ಅಗತ್ಯವಿದೆ) |
| ಸ್ಥಿರ ಸಂಪರ್ಕ | offline_access (ಯಾವಾಗಲೂ ಸೇರಿಸಲಾಗುತ್ತದೆ) |
GET, HEAD ಮತ್ತು OPTIONS ಓದುವ ಸ್ಕೋಪ್ಗಳನ್ನು ಬಳಸುತ್ತವೆ; ಇತರ ವಿಧಾನಗಳು ಬರೆಯುವ ಸ್ಕೋಪ್ಗಳನ್ನು ಬಳಸುತ್ತವೆ. OAuth ಮೂಲಕ ಧ್ವನಿ ಮತ್ತು ಬಿಲ್ಲಿಂಗ್ ಮಾರ್ಪಾಡುಗಳು ಲಭ್ಯವಿಲ್ಲ; POST /v1/voices/preview ಧ್ವನಿಯ ಕಾನ್ಫಿಗರೇಶನ್ ಬದಲಾಯಿಸದೆ ಅದನ್ನು ಪೂರ್ವವೀಕ್ಷಿಸುವುದರಿಂದ voices:read ಅನ್ನು ಬಳಸುತ್ತದೆ. MCP ಉಪಕರಣಗಳು ಅವುಗಳ ಆಧಾರಿತ REST ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಕೋಪ್ ಅನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತವೆ. ಅಧಿಕಾರ ನೀಡುವ ಬಳಕೆದಾರರು ಎರಡೂ ಸಂಸ್ಥೆಗಳಿಗೆ ಸೇರಿದವರಾಗಿದ್ದರೂ ಅಂತರ-ಸಂಸ್ಥೆ ವರ್ಗಾವಣೆಗಳನ್ನು ನಿರಾಕರಿಸಲಾಗುತ್ತದೆ. API-ಕೀ ನಿರ್ವಹಣೆ ಮತ್ತು ಮಾನವ ಖಾತೆ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಇತರ API ವರ್ಗಗಳು OAuth ಮೂಲಕ ಲಭ್ಯವಿಲ್ಲ. REST ಕಾರ್ಯಾಚರಣೆಯಲ್ಲಿ ಕಾಣೆಯಾದ ಅನುಮತಿಯು WWW-Authenticate: Bearer error="insufficient_scope", scope="..." ಜೊತೆಗೆ 403 ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಅಮಾನ್ಯ ಅಥವಾ ಅವಧಿ ಮೀರಿದ ಪ್ರವೇಶ ಟೋಕನ್ಗಳು 401 ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ.
MCP ಉಪಕರಣ ದೃಢೀಕರಣ ಸಂಕೇತಗಳು
tools/list ನಲ್ಲಿರುವ ಪ್ರತಿಯೊಂದು ಉಪಕರಣವು ಆ ಉಪಕರಣದ REST ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಕೋಪ್ನೊಂದಿಗೆ securitySchemes: [{"type": "oauth2", "scopes": ["agents:read"]}] ಅನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ. ಸಾರ್ವಜನಿಕ ದಸ್ತಾವೇಜೀಕರಣ ಉಪಕರಣಗಳು ಖಾಲಿ ಸ್ಕೋಪ್ ಪಟ್ಟಿಯನ್ನು ಬಳಸುತ್ತವೆ ಮತ್ತು ಇನ್ನೂ ದೃಢೀಕೃತ ಸಂಪರ್ಕವನ್ನು ಅಗತ್ಯಪಡಿಸುತ್ತವೆ.
ಉಪಕರಣದ ಸ್ಕೋಪ್ ಇಲ್ಲದ ಮಾನ್ಯ ಟೋಕನ್ಗೆ HTTP 200 ದೊರೆಯುತ್ತದೆ; ಅದರಲ್ಲಿ isError: true ಹೊಂದಿರುವ JSON-RPC result, content ನಲ್ಲಿ ವಿವರಣಾತ್ಮಕ ಪಠ್ಯ, ಮತ್ತು _meta["mcp/www_authenticate"] ಇರುತ್ತವೆ. ಎರಡನೆಯದು resource_metadata, error="insufficient_scope", error_description, ಮತ್ತು ಅಗತ್ಯವಿರುವ scope ಹೊಂದಿರುವ Bearer ಸವಾಲನ್ನು ಒಳಗೊಂಡ ಅರೇ ಆಗಿದೆ. ಉಪಕರಣವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ. ವಿಸ್ತರಿತ ಸಮ್ಮತಿಯನ್ನು ವಿನಂತಿಸಲು ಈ ಸವಾಲನ್ನು ಬಳಸಿ. ಕಾಣೆಯಾದ ಅಥವಾ ಅಮಾನ್ಯ ದೃಢೀಕರಣವು WWW-Authenticate ಜೊತೆಗೆ HTTP 401 ಅನ್ನು ಹಿಂತಿರುಗಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ; REST ಸ್ಕೋಪ್ ವಿಫಲತೆಗಳು 403 ಅನ್ನು ಹಿಂತಿರುಗಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ.
ರುಜುವಾತುಗಳ ಸಂರಕ್ಷಣೆ
API ಸ್ಟೇಜಿಂಗ್ ಮತ್ತು ಪ್ರೊಡಕ್ಷನ್ನಲ್ಲಿ ಪ್ರತಿ ಗಂಟೆಗೆ python manage.py oauth_cleanup ಅನ್ನು ಚಲಾಯಿಸುತ್ತದೆ. ಇದು ಅವಧಿ ಮೀರಿದ ಅಧಿಕಾರ ವಿನಂತಿಗಳು ಮತ್ತು ಸಾಧನ ಕೋಡ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ. ಅವಧಿ ಮೀರಿದ ಪ್ರವೇಶ ಟೋಕನ್ಗಳು, ಅಧಿಕಾರ ಕೋಡ್ಗಳು ಮತ್ತು ರಿಫ್ರೆಶ್-ಟೋಕನ್ ಹ್ಯಾಶ್ಗಳನ್ನು ಅವುಗಳ ಅನುಮತಿದಾನವನ್ನು ಹಿಂತೆಗೆದುಕೊಂಡ ನಂತರ ಅಥವಾ ಸಂಪೂರ್ಣ ಕುಟುಂಬವು ನಿಷ್ಕ್ರಿಯವಾದ ನಂತರ ಮಾತ್ರ ಕತ್ತರಿಸಲಾಗುತ್ತದೆ. ಕುಟುಂಬದಲ್ಲಿ ಬಳಸಬಹುದಾದ ರಿಫ್ರೆಶ್ ಟೋಕನ್, ಅಧಿಕಾರ ಕೋಡ್, ಅನುಮೋದಿತ ಸಾಧನ ಕೋಡ್ ಅಥವಾ ಪ್ರವೇಶ ಟೋಕನ್ ಇರುವಾಗ ಬಳಸಿದ ಹ್ಯಾಶ್ಗಳನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ; ಆದ್ದರಿಂದ ಸ್ವಚ್ಛಗೊಳಿಸುವಿಕೆಯು ಮರುಬಳಕೆ ಪತ್ತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.