Advanced Authentication Patterns — OAuth 2.0, JWT, Key Rotation

ធ្វើជាម្ចាស់លើយន្តការផ្ទៀងផ្ទាត់ដ៏ស្មុគស្មាញសម្រាប់ការបញ្ចូល Smart Money API ក្នុងបរិស្ថានសហគ្រាស។ រៀនពីលំហូរ OAuth 2.0, លំនាំ JWT token, ការផ្លាស់ប្តូរ key ដោយសុវត្ថិភាព, និងការអនុវត្តការផ្ទៀងផ្ទាត់ពហុកត្តិ។

បោះពុម្ពផ្សាយនៅថ្ងៃទី 21 ខែមីនា ឆ្នាំ 2026 18 នាទីអាន កម្រិតខ្ពស់

ទិដ្ឋភាពទូទៅនៃការផ្ទៀងផ្ទាត់

Smart Money API គាំទ្រវិធីសាកសួរផ្ទៀងផ្ទាត់ច្រើនប្រភេទដែលត្រូវបានរចនាឡើងដើម្បីអនុញ្ញាតឱ្យមានភាពខុសគ្នានៃស្ថាបត្យកម្មកម្មវិធី, តម្រូវការសុវត្ថិភាព, និងគោលនយោបាយរបស់អង្គការ។ ការយល់ដឹងអំពីលំនាំទាំងនេះធានាថាការបញ្ចូលរបស់អ្នកមានសុវត្ថិភាព និងមានប្រសិទ្ធភាព។

ការផ្ទៀងផ្ទាត់នៅក្នុង Smart Money API ដំណើរការតាមរយៈស្រទាប់ចម្បងចំនួនបី៖

  • API Keys — ការផ្ទៀងផ្ទាត់ bearer token សាមញ្ញសម្រាប់ការអភិវឌ្ឍន៍ និងការបញ្ចូលដោយផ្ទាល់
  • JWT Tokens — សញ្ញាសម្គាល់ដែលគ្មានស្ថានភាព ដែលបានចុះហត្ថលេខាដោយគណិតសាស្ត្រសម្រាប់ប្រព័ន្ធចែកចាយ និងសេវាកម្មតូចៗ
  • OAuth 2.0 — គោលការណ៍អនុញ្ញាតដែលបានផ្ទេរសិទ្ធិសម្រាប់ការបញ្ចូលភាគីទីបី និងកម្មវិធី SaaS

គោលការណ៍សុវត្ថិភាព៖ កុំដាក់ឲ្យឃើញពាក្យសម្ងាត់ផ្ទៀងផ្ទាត់នៅក្នុងកូដខាងអតិថិជន, កំណត់ហេតុ, ការគ្រប់គ្រងកំណែ, ឬសារកំហុស។ អនុវត្តការផ្លាស់ប្តូរពាក្យសម្ងាត់តាមកាលវិភាគ និងភ្លាមៗនៅពេលមានការរំលោភ។

វិធីសាកសួរនីមួយៗមានអត្ថប្រយោជន៍ខុសៗគ្នា។ API keys ដំណើរការបានល្អបំផុតសម្រាប់ការទំនាក់ទំនងពីក្រោយឆាកទៅក្រោយឆាកដែលការផ្ទុកពាក្យសម្ងាត់ត្រូវបានគ្រប់គ្រង។ JWT tokens មានប្រសិទ្ធភាពខ្ពស់នៅក្នុងស្ថាបត្យកម្មចែកចាយដែលគ្មានស្ថានភាពរួម។ OAuth 2.0 ផ្តល់សិទ្ធិចូលដោយអ្នកប្រើសម្រាប់កម្មវិធីភាគីទីបី។

ការផ្ទៀងផ្ទាត់ API Key

API keys គឺជាយន្តការផ្ទៀងផ្ទាត់សាមញ្ញបំផុត—ពួកវាជាខ្សែអក្សរចៃដន្យដែលត្រូវបានបង្កើតសម្រាប់គណនីរបស់អ្នកដែលកំណត់អត្តសញ្ញាណកម្មវិធីរបស់អ្នកទៅកាន់ Smart Money API។ រាល់សំណើត្រូវតែរួមបញ្ចូល API key របស់អ្នកជាទូទៅថាជា header ឬប៉ារ៉ាម៉ែត្រសំណួរ។

API Key ដោយប្រើ Header

វិធីសាកសួរដែលបានណែនាំគឺការបញ្ជូន API key របស់អ្នកនៅក្នុង header Authorization ដោយប្រើគ្រោងការណ៍ Bearer៖

ឧទាហរណ៍ curl
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"

API Key ដោយប្រើប៉ារ៉ាម៉ែត្រសំណួរ

សម្រាប់ការតភ្ជាប់ WebSocket ឬនៅពេលដែល headers មិនអាចត្រូវបានកែប្រែ, បញ្ជូន API key ជាប៉ារ៉ាម៉ែត្រសំណួរ៖

ការតភ្ជាប់ WebSocket
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// បង្កើតស្ទ្រីម WebSocket ដែលបានផ្ទៀងផ្ទាត់

លក្ខណៈពិសេសនៃ API Key

លក្ខណៈសម្បត្តិ ការពិពណ៌នា
ទម្រង់ ខ្សែអក្សរ hex ចំនួន 128 តួដែលមានបុព្វបទ sk_test_ ឬ sk_live_
វិសាលភាព ទទួលយកសិទ្ធិទាំងអស់របស់គណនីដែលបានបង្កើតវា
ការផុតកំណត់ មិនផុតកំណត់ដោយស្វ័យប្រវត្តិ; ត្រូវតែផ្លាស់ប្តូរដោយដៃ
ការផ្លាស់ប្តូរ បង្កើត key ថ្មី, ផ្លាស់ទីចរាចរ, បន្ទាប់មកបិទ key ចាស់
ដែនកំណត់អត្រា ចែករំលែកទូទាំងសំណើទាំងអស់ដែលប្រើ key ដូចគ្នា

ការអនុវត្តសុវត្ថិភាព API Key

  • អថេរបរិស្ថាន — ផ្ទុក keys នៅក្នុងឯកសារ .env (មិនត្រូវបានដាក់ក្នុងការគ្រប់គ្រងកំណែ) ហើយផ្ទុកនៅពេលដំណើរការ
  • ប្រព័ន្ធឃ្លាំង — ប្រើ HashiCorp Vault, AWS Secrets Manager, ឬ Azure Key Vault ក្នុងការប្រើប្រាស់ជាក់ស្តែង
  • កូនសោដាច់ដោយឡែក — រក្សាកូនសោសាកល្បង និងកូនសោពិតប្រាកដដាច់ដោយឡែក។ ផ្លាស់ប្តូរកូនសោសាកល្បងឱ្យបានញឹកញាប់
  • វិសាលភាពអប្បបរមា — បង្កើតកូនសោដាច់ដោយឡែកសម្រាប់ការរួមបញ្ចូលគ្នាផ្សេងៗគ្នានៅពេលអាចធ្វើបាន
  • ការកត់ត្រាត្រួតពិនិត្យ — កត់ត្រាព្រឹត្តិការណ៍ទាំងអស់ដែលពាក់ព័ន្ធនឹងការបង្កើត និងការប្រើប្រាស់ API key
ទទួលបាន API key របស់អ្នកក្នុងរយៈពេល ៣០ វិនាទី

ត្រៀមខ្លួនដើម្បីសាងសង់? យក API key ដោយឥតគិតថ្លៃ (៥០ ការហៅ/ថ្ងៃ, គ្មានកាត) ហើយចាប់ផ្តើមទាញយកទិន្នន័យផ្ទាល់ពី whale, funding និង on-chain ។

ទទួលបាន API key របស់អ្នក →

លំនាំ Bearer Token

Bearer tokens ពង្រីកគំនិត API key សាមញ្ញដោយបន្ថែមបរិបទ, ពេលវេលាផុតកំណត់, និងយន្តការធ្វើឱ្យស្រស់។ ពួកវាល្អសម្រាប់កម្មវិធីដែលត្រូវការការគ្រប់គ្រងព័ត៌មានផ្ទៀងផ្ទាត់ដោយកម្មវិធី។

ការទទួលបាន Bearer Tokens

ផ្លាស់ប្តូរ API key និងអាថ៌កំបាំងរបស់អ្នកសម្រាប់ bearer token ដែលមានសុពលភាពរយៈពេល ២៤ ម៉ោង៖

GET /auth/token
curl -X POST "https://api.smartmoneyapi.com/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_1234567890",
"api_secret": "secret_abc123xyz"
}'

ទម្រង់ការឆ្លើយតប Token

ចំណុចបញ្ចប់ត្រឡប់មកវិញ bearer token ជាមួយនឹងទិន្នន័យមេតាដា៖

ការឆ្លើយតប
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}

ការប្រើប្រាស់ Bearer Tokens

ដាក់បញ្ចូល token នៅក្នុងក្បាល Authorization សម្រាប់ការស្នើសុំបន្តបន្ទាប់ទាំងអស់៖

ការស្នើសុំដែលបានផ្ទៀងផ្ទាត់
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."

លំហូរ Token Refresh

នៅពេលដែល token ជិតផុតកំណត់, ប្រើ refresh token ដើម្បីទទួលបានថ្មីដោយមិនត្រូវការ API secret របស់អ្នក៖

POST /auth/refresh
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'

ការអនុវត្ត OAuth 2.0

OAuth 2.0 អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ផ្តល់កម្មវិធីឱ្យចូលប្រើគណនី Smart Money API របស់ពួកគេដោយមិនចាំបាច់ចែករំលែកព័ត៌មានផ្ទៀងផ្ទាត់។ នេះគឺជាការចាំបាច់សម្រាប់វេទិកា SaaS, ការរួមបញ្ចូលគ្នាដោយភាគីទីបី, និងកម្មវិធីពហុអ្នកជួល។

លំហូរអាជ្ញាប័ណ្ណកូដ OAuth 2.0

លំហូរស្តង់ដារសម្រាប់កម្មវិធីវេប៖

  1. អ្នកប្រើប្រាស់ចាប់ផ្តើមចូល — អ្នកប្រើប្រាស់ចុច "ភ្ជាប់ជាមួយ Smart Money API"
  2. បញ្ជូនបន្តទៅកាន់ម៉ាស៊ីនបម្រើអាជ្ញាប័ណ្ណ — កម្មវិធីរបស់អ្នកបញ្ជូនបន្តអ្នកប្រើប្រាស់ទៅកាន់ចំណុចបញ្ចប់អាជ្ញាប័ណ្ណរបស់ Smart Money
  3. អ្នកប្រើប្រាស់ផ្តល់ការអនុញ្ញាត — អ្នកប្រើប្រាស់ពិនិត្យមើលវិសាលភាពដែលបានស្នើសុំ និងផ្តល់ការអនុញ្ញាត
  4. កូដអាជ្ញាប័ណ្ណត្រូវបានត្រឡប់មកវិញ — អ្នកប្រើប្រាស់ត្រូវបានបញ្ជូនបន្តត្រឡប់មកវិញជាមួយនឹងកូដអាជ្ញាប័ណ្ណ
  5. ផ្លាស់ប្តូរកូដសម្រាប់ Token — ផ្នែកខាងក្រោយផ្លាស់ប្តូរកូដសម្រាប់ token ចូលប្រើ (កូដមិនត្រូវបានបង្ហាញចំពោះផ្នែកខាងមុខ)
  6. រក្សាទុក Token — ផ្ទុកថូកងធ្វើអោយថ្មីដោយសុវត្ថិភាព។ ប្រើថូកងចូលដំណើរការសំរាប់ការហៅ API

ជំហានទី១៖ បញ្ជូនអ្នកប្រើទៅកាន់ចំណុចបញ្ចប់នៃការអនុញ្ញាត

ផ្នែកខាងមុខបញ្ជូនបន្ត
// URL ដើម្បីបញ្ជូនអ្នកប្រើទៅ
const authUrl = new URL('https://api.smartmoneyapi.com/oauth/authorize');
authUrl.searchParams.append('client_id', 'your_client_id');
authUrl.searchParams.append('redirect_uri', 'https://yourapp.com/callback');
authUrl.searchParams.append('response_type', 'code');
authUrl.searchParams.append('scope', 'whales derivatives onchain');
authUrl.searchParams.append('state', generateRandomState());
window.location.href = authUrl.toString();

ជំហានទី២៖ ដោះស្រាយការហៅត្រឡប់ និងផ្លាស់ប្តូរកូដ

ការផ្លាស់ប្តូរកូដផ្នែកខាងក្រោយ
// ផ្នែកខាងក្រោយដោះស្រាយផ្លូវ /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// ផ្ទៀងផ្ទាត់ប៉ារ៉ាម៉ែត្រ state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// ផ្លាស់ប្តូរកូដសំរាប់ថូកង
const tokenResponse = await fetch('https://api.smartmoneyapi.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'authorization_code',
code: code,
client_id: process.env.OAUTH_CLIENT_ID,
client_secret: process.env.OAUTH_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/callback'
})
});
const tokens = await tokenResponse.json();
// ផ្ទុកថូកងដោយសុវត្ថិភាព

វិសាលភាព OAuth

ស្នើសុំតែវិសាលភាពដែលកម្មវិធីរបស់អ្នកត្រូវការ។ Smart Money API កំណត់វិសាលភាពទាំងនេះ៖

វិសាលភាព ការពិពណ៌នា
whales ចូលប្រើការតាមដានកាបូបសាច់ប្រាក់របស់ whales និងវាស់វែងការប្រមូល
derivatives ចូលប្រើទិន្នន័យអនាគត ការបង្កើនជាអចិន្ត្រៃយ៍ និងអត្រាការផ្តល់មូលនិធិ
onchain ចូលប្រើលំហូរប្រតិបត្តិការ on-chain និងការវិភាគ
alerts បង្កើត និងគ្រប់គ្រងការជូនដំណឹងតាម webhook
offline ចូលប្រើថូកងធ្វើអោយថ្មីដើម្បីទទួលថូកងចូលដំណើរការដោយគ្មានការភ្ជាប់

ការគ្រប់គ្រងថូកង JWT

JWT (JSON Web Tokens) ផ្តល់ការផ្ទៀងផ្ទាត់ភាពគ្មានស្ថានភាព—ម៉ាស៊ីនមេមិនចាំបាច់ផ្ទុកទិន្នន័យសេស្សិ៍ទេ។ Smart Money API ប្រើ RS256 (RSA Signature with SHA-256) សំរាប់ការចុះហត្ថលេខាថូកង អនុញ្ញាតអោយផ្ទៀងផ្ទាត់ដោយមិនចាំបាច់ទាក់ទង API។

រចនាសម្ព័ន្ធ JWT

ថូកង JWT មានផ្នែកបីដែលញែកដោយចំណុច៖

ទម្រង់ JWT
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE

ក្បាល JWT

ក្បាលកំណត់អាឡហ្គោរីត និងប្រភេទថូកង៖

ក្បាលដែលបានឌិកូដ
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}

ការទាមទារផ្ទុក JWT

ផ្ទុកមានការទាមទារ (សេចក្តីថ្លែងការណ៍អំពីអ្នកប្រើ/កម្មវិធី)៖

ផ្ទុកដែលបានឌិកូដ
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}

ការផ្ទៀងផ្ទាត់ហត្ថលេខា JWT

ទាញយកសោសាធារណៈរបស់ Smart Money ហើយផ្ទៀងផ្ទាត់ថូកងមុនពេលទទួលយកវា៖

ការផ្ទៀងផ្ទាត់ Node.js
const jwt = require('jsonwebtoken');
const fs = require('fs');
// ទទួលសោសាធារណៈពី Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// ផ្ទៀងផ្ទាត់ថូកង
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// ថូកងមានសុពលភាព ប្រើការទាមទារដែលបានឌិកូដ
} catch (err) {
// ថូកងមិនត្រឹមត្រូវ ឬផុតកំណត់
}

យុទ្ធសាស្ត្រផ្លាស់ប្តូរសោ

ការផ្លាស់ប្តូរសោជាប្រចាំគឺសំខាន់សំរាប់ការថែរក្សាសុវត្ថិភាព។ ទោះបីមានការអនុវត្តសុវត្ថិភាពល្អបំផុតក៏ដោយ សន្មតថាសោអាចត្រូវបានរំលោភ ហើយអនុវត្តការផ្លាស់ប្តូរតាមប្រព័ន្ធ។

ប្រេកង់ផ្លាស់ប្តូរ

Smart Money ណែនាំពេលវេលាផ្លាស់ប្តូរផ្សេងៗគ្នាដោយផ្អែកលើប្រភេទសោ និងការប្រើប្រាស់៖

ប្រភេទសោ ការផ្លាស់ប្តូរដែលបានណែនាំ ការផ្លាស់ប្តូរអប្បបរមា
សោ API សំរាប់សាកល្បង រៀងរាល់ខែ រៀងរាល់ត្រីមាស
សោ API សំរាប់ផលិត រៀងរាល់ត្រីមាស រៀងរាល់ឆ្នាំ
ថូកងធ្វើអោយថ្មី OAuth ស្វ័យប្រវត្តិ (បន្ទាប់ពី ៩០ ថ្ងៃ) ដោយដៃ (បន្ទាប់ពី ១៨០ ថ្ងៃ)
សោគណនីសេវា ពាក់កណ្តាលឆ្នាំ រៀងរាល់ឆ្នាំ

ដំណើរការផ្លាស់ប្តូរសោដោយមិនមានពេលរងចាំ

ផ្លាស់ប្តូរសោដោយមិនរំខានសេវា៖

  1. បង្កើតសោថ្មី — បង្កើតសោ API ថ្មីតាមរយៈផ្ទាំងគ្រប់គ្រង ឬ API
  2. ដាក់ឱ្យដំណើរការសោថ្មី — ធ្វើឱ្យថ្មីភាពអាថ៌កំបាំងកម្មវិធីនៅក្នុងដំណាក់កាលសាកល្បង ធ្វើការសាកល្បងយ៉ាងហ្មត់ចត់
  3. ការចេញផ្សាយដោយដំណាលគ្នា — ដាក់ឱ្យដំណើរការលើ ១០% នៃម៉ាស៊ីនបម្រើ តាមដានកំហុស
  4. ការចាប់ផ្តើមពេញលេញ — ការដាក់ចេញទៅកាន់ម៉ាស៊ីនបម្រើដែលនៅសល់
  5. ផ្ទៀងផ្ទាត់ការចរាចរ — បញ្ជាក់ថាសំណើទាំងអស់ប្រើកូនសោថ្មី
  6. បិទកូនសោចាស់ — សម្គាល់កូនសោចាស់ថាមិនសកម្ម ប៉ុន្តែកុំលុបភ្លាមៗ
  7. លុបកូនសោចាស់ — បន្ទាប់ពី 48 ម៉ោងដោយគ្មានកំហុស លុបជាអចិន្ត្រៃយ៍

ការផ្លាស់ប្តូរកូនសោអាជ្ញាសិទ្ធិ

ប្រសិនបើអ្នកសង្ស័យថាកូនសោត្រូវបានរំលោភ៖

ការផ្លាស់ប្តូរអាជ្ញាសិទ្ធិ
// សកម្មភាពភ្លាមៗ៖ បិទកូនសោដែលត្រូវបានរំលោភ
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// បង្កើតកូនសោជំនួសភ្លាមៗ
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "កូនសោជំនួសអាជ្ញាសិទ្ធិ"
}'

ការផ្លាស់ប្តូរស្វ័យប្រវត្តិនៅក្នុង Kubernetes

ប្រើ Kubernetes Secrets និង operators សម្រាប់ការផ្លាស់ប្តូរស្វ័យប្រវត្តិ៖

CronJob សម្រាប់ការផ្លាស់ប្តូរកូនសោ
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # រៀងរាល់អាទិត្យនៅថ្ងៃអាទិត្យ
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest

ការផ្ទៀងផ្ទាត់ពហុកត្តា (MFA)

សម្រាប់គណនីដែលចូលប្រើទិន្នន័យផលិតកម្ម MFA ផ្តល់នូវស្រទាប់សុវត្ថិភាពបន្ថែមដោយទាមទារកត្តាទីពីរក្រៅពីគ្រាន់តែពាក្យសម្ងាត់។

វិធីសាស្រ្ត MFA ដែលគាំទ្រ

  • TOTP (ពាក្យសម្ងាត់មួយដងផ្អែកលើពេលវេលា) — កម្មវិធីដូចជា Google Authenticator, Authy
  • WebAuthn/FIDO2 — កូនសោសុវត្ថិភាពផ្នែករឹង ជីវមាត្រ
  • កូដមួយដងតាម SMS — មិនសុវត្ថិភាពខ្លាំងប៉ុន្តែគាំទ្រជាសកល
  • ការបញ្ជាក់តាមអ៊ីមែល — កូដបញ្ជាក់ផ្ញើទៅអ៊ីមែលដែលបានចុះឈ្មោះ

ការបើក TOTP សម្រាប់ការចូលប្រើគណនី

បើក MFA
// ជំហានទី 1៖ ស្នើសុំការកំណត់ MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// ការឆ្លើយតបរួមបញ្ចូល URL របស់ QR code
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}

MFA ក្នុងអំឡុងពេលប្រតិបត្តិការ API

ប្រតិបត្តិការខ្លះអាចទាមទារការបញ្ជាក់ MFA សូម្បីតែបន្ទាប់ពីការផ្ទៀងផ្ទាត់៖

ការប្រកួត MFA
// ការព្យាយាមប្រតិបត្តិការដែលគួរឱ្យរង្គាល (ការផ្លាស់ប្តូរកូនសោ)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// ការឆ្លើយតប៖ MFA ត្រូវបានទាមទារ
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// ព្យាយាមម្តងទៀតជាមួយកូដ TOTP
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"

ការអនុវត្តសុវត្ថិភាពល្អបំផុត

ការផ្ទៀងផ្ទាត់គឺមានតែកម្លាំងដូចការអនុវត្តរបស់វា។ ធ្វើតាមការអនុវត្តទាំងនេះដើម្បីរក្សាសុវត្ថិភាព៖

ការគ្រប់គ្រងអាថ៌កំបាំង

  • កុំដាក់អាថ៌កំបាំងទៅក្នុងការគ្រប់គ្រងកំណែ — ប្រើឯកសារ .env ជាមួយ .gitignore
  • ប្រើអថេរបរិស្ថាន — ផ្ទុកពីប្រព័ន្ធគ្រប់គ្រងអាថ៌កំបាំងសុវត្ថិភាព
  • ស្កេនឃ្លាំង — ប្រើឧបករណ៍ដូចជា TruffleHog, detect-secrets ដើម្បីរកកូនសោដែលបានបង្ហាញ
  • សវនកម្មកំណត់ហេតុការចូលប្រើ — តាមដានអ្នកដែលបានចូលប្រើអាថ៌កំបាំង និងពេលវេលា

សុវត្ថិភាពក្នុងការដឹកជញ្ជូន

  • តែងតែប្រើ HTTPS — កុំផ្ញើពាក្យសម្ងាត់តាមការតភ្ជាប់ដែលមិនបានអ៊ិនគ្រីប
  • ផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រ SSL — កុំបិទការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រក្នុងផលិតកម្ម
  • ប្រើការជាប់វិញ្ញាបនបត្រ — សម្រាប់កម្មវិធីទូរស័ព្ទ ការពារការវាយប្រហារ MITM
  • អនុវត្ត TLS 1.2+ — បិទពិធីការចាស់ៗ

ការគ្រប់គ្រងពាក្យសម្ងាត់

  • ហាសអាថ៌កំបាំង — ផ្ទុក bcrypt ឬ Argon2 hashes កុំដាក់អត្ថបទធម្មតា
  • បន្ថយអាយុកាល — រក្សាពាក្យសម្ងាត់ក្នុងអង្គចងចាំតែរយៈពេលដែលត្រូវការ
  • សម្អាតទិន្នន័យដែលគួរឱ្យរង្គាល — សរសេរជាន់លើពាក្យសម្ងាត់យ៉ាងច្បាស់បន្ទាប់ពីប្រើ
  • ប្រើបណ្ណាល័យសុវត្ថិភាព — កុំអនុវត្តគ្រីបតូក្រាហ្វីដោយខ្លួនឯង

កំណត់ហេតុ និងការតាមដាន

  • កុំកំណត់ហេតុពាក្យសម្ងាត់ — លុបកូនសោក្នុងកំណត់ហេតុ ប្រើការលាក់កំណត់ហេតុ
  • កំណត់ហេតុព្រឹត្តិការណ៍ផ្ទៀងផ្ទាត់ — តាមដានការព្យាយាមចូលប្រើដែលជោគជ័យ និងបរាជ័យ
  • តាមដានការប្លែក — ជូនដំណឹងអំពីការចូលប្រើដែលមិនធម្មតា
  • សវនកម្មការប្រើប្រាស់កូនសោ — តាមដានកូនសោដែលបានចូលប្រើទិន្នន័យអ្វី

លំនាំផ្ទៀងផ្ទាត់សហគ្រាស

ស្ថាប័នធំៗជាញឹកញាប់ទាមទារការគ្រប់គ្រងសុវត្ថិភាពបន្ថែម និងសមត្ថភាពគោលដៅ។

ការរួមបញ្ចូល SAML 2.0

សម្រាប់អតិថិជនសហគ្រាស Smart Money API គាំទ្រការរួមបញ្ចូល SAML 2.0 ជាមួយកម្មវិធីផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នក (Okta, Azure AD ជាដើម)៖

  • ការចូលប្រើតែមួយ (SSO) — អ្នកប្រើប្រាស់ផ្ទៀងផ្ទាត់តាមរយៈ IdP របស់ក្រុមហ៊ុនអ្នក
  • ការផ្តល់ស្វ័យប្រវត្តិ — បង្កើត/បិទគណនីដោយផ្អែកលើសមាជិកភាពក្រុម
  • ការអនុវត្ត — ទាមទារ SAML សម្រាប់ការចូលប្រើអ្នកប្រើប្រាស់ទាំងអស់

ការបញ្ជាក់ IP

កំណត់ការចូលប្រើ API ទៅកាន់អាសយដ្ឋាន IP ឬជួរ CIDR ជាក់លាក់៖

ការគ្រប់គ្រង IP Whitelist
// បន្ថែម IP ទៅក្នុង whitelist
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Production servers"
}'

កំណត់ហេតុសាកល្បង និងការអនុលោមតាម

ផែនការសហគ្រាសរួមបញ្ចូលកំណត់ហេតុសាកល្បងពេញលេញសម្រាប់ការអនុលោមតាម៖

ព្រឹត្តិការណ៍ ទិន្នន័យដែលបានកត់ត្រា
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ អ្នកប្រើប្រាស់, ពេលវេលា, ជោគជ័យ/បរាជ័យ, IP, ស្ថានភាព MFA
ប្រតិបត្តិការគន្លឹះ លេខសម្គាល់គន្លឹះ, សកម្មភាព, អ្នកចាប់ផ្តើម, ពេលវេលា
ការផ្លាស់ប្តូរគណនី អ្វីដែលបានផ្លាស់ប្តូរ, អ្នកដែលផ្លាស់ប្តូរ, ពេលវេលា, តម្លៃមុន/ក្រោយ
ការចូលប្រើទិន្នន័យ អ្នកប្រើប្រាស់, ចំណុចបញ្ចប់, វិសាលភាព, ពេលវេលា, ចំនួនកំណត់ត្រា

ការដោះស្រាយបញ្ហាផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ

កំហុស API Key មិនត្រឹមត្រូវ

បញ្ហា៖ ទទួលបាន "401 Unauthorized - Invalid API Key"

ដំណោះស្រាយ៖

  • ផ្ទៀងផ្ទាត់ទម្រង់គន្លឹះ (គួរចាប់ផ្តើមដោយ sk_test_ ឬ sk_live_)
  • ពិនិត្យមើលចន្លោះខាងមុខ/ខាងក្រោយនៅក្នុងគន្លឹះ
  • បញ្ជាក់ថាគន្លឹះមិនត្រូវបានបិទឬបង្វិល
  • ផ្ទៀងផ្ទាត់ថាអ្នកកំពុងប្រើប្រាស់បរិស្ថានត្រឹមត្រូវ (គន្លឹះសាកល្បងសម្រាប់សាកល្បង, ពិតសម្រាប់ផលិតកម្ម)
  • ពិនិត្យមើលការអនុញ្ញាតគន្លឹះ API ដែលត្រូវនឹងតម្រូវការចំណុចបញ្ចប់

កំហុស Token ផុតកំណត់

បញ្ហា៖ Bearer token ផុតកំណត់, សំណើបរាជ័យ

ដំណោះស្រាយ៖

  • ប្រើ refresh token ដើម្បីទទួលបាន access token ថ្មី
  • អនុវត្តការបន្តសោ refresh ដោយស្វ័យប្រវត្តិ 5 នាទីមុនពេលផុតកំណត់
  • ផ្ទុក refresh token ដោយសុវត្ថិភាព (មិនមែននៅក្នុង localStorage សម្រាប់ SPAs)
  • ដោះស្រាយការឆ្លើយតប 401 ដោយព្យាយាមលំហូរ refresh token

កំហុស CORS/Preflight

បញ្ហា៖ កម្មវិធីរុករកបិទសំណើដោយមានកំហុស CORS

ដំណោះស្រាយ៖

  • ការហៅ API ពីកម្មវិធីរុករកត្រូវតែមកពីប្រភពដើមដែលបានដាក់ក្នុង whitelist
  • បន្ថែមដែនរបស់អ្នកតាមរយៈផ្ទាំងគ្រប់គ្រង៖ Settings → CORS Origins
  • កម្មវិធីរុករកផ្ញើសំណើ OPTIONS preflight ដោយស្វ័យប្រវត្តិ
  • សម្រាប់ការអភិវឌ្ឍន៍, ប្រើ localhost:3000 ឬស្រដៀងគ្នា

ការប្រកួតប្រជែង MFA មិនបានបញ្ចប់

បញ្ហា៖ ប្រតិបត្តិការដែលតម្រូវឱ្យមាន MFA បរាជ័យទោះបីមានលេខកូដត្រឹមត្រូវ

ដំណោះស្រាយ៖

  • ធានាថានាឡិកាម៉ាស៊ីនបម្រើត្រូវបានធ្វើសមកាលកម្ម (TOTP ពឹងផ្អែកលើពេលវេលា)
  • លេខកូដមានសុពលភាពត្រឹមតែ 30 វិនាទី, បង្កើតថ្មី
  • ប្រើលេខកូដបម្រុងប្រសិនបើកម្មវិធីផ្ទៀងផ្ទាត់មិនអាចប្រើបាន
  • ការសង្គ្រោះគណនីអាចប្រើបានតាមរយៈអ៊ីមែលដែលបានចុះឈ្មោះ

អនុវត្តការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដោយសុវត្ថិភាពឥឡូវនេះ

Smart Money API គាំទ្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវកម្រិតសហគ្រាសជាមួយ OAuth 2.0, JWT, MFA, និងការរួមបញ្ចូល SAML។ ការពារការរួមបញ្ចូល API របស់អ្នកជាមួយនឹងការអនុវត្តល្អបំផុតនៅក្នុងឧស្សាហកម្ម។

មើលផែនការសហគ្រាស
ត្រូវការ SAML, IP whitelisting, ឬការគាំទ្រដោយឯកជន? ទាក់ទងក្រុមលក់របស់យើង។

ធនធានពាក់ព័ន្ធ

ចាប់ផ្តើមដោយឥតគិតថ្លៃ — 100 ការហៅ/ថ្ងៃ, គ្មានកាត

ទទួលបានលំហូរប្រភេទផ្កាយរណបដែលមានជីវិត, ការផ្តល់មូលនិធិ, ការចាប់អារម្មណ៍បើក, និងទិន្នន័យនៅលើខ្សែសង្វាក់ពី 3 កន្លែងផ្លាស់ប្តូរពី API តែមួយ។ កម្រិតឥតគិតថ្លៃ, គ្មានកាតឥណទាន, ដំឡើងកម្រិតណាមួយពេល។

ចាប់ផ្តើមដោយឥតគិតថ្លៃ →
សាកល្បងកុងសូល API ដែលមានជីវិត → (មិនត្រូវការគណនី)