Kimlik Doğrulama Ayarları
Girişte şifrenin ötesinde istenen ikinci adım, konum ve adres doğrulamasını yöneten yedi uç.
Genel Bakış
Bu yedi uç girişte kimlik doğrulamasının ötesinde ne isteneceğini belirler: ikinci bir adım, alışılmadık bir konumdan gelişte ek doğrulama, alışılmadık bir adresten gelişte ek doğrulama.
Üçü de müşteri ve yönetici için ayrı ayarlanır. Bir tarafı açmak diğerini etkilemez; ikisini birlikte istiyorsanız iki bloğu birden göndermeniz gerekir.
Referans
İki Adımlı Doğrulamayı Getirme
Hangi ikinci adım yöntemlerinin açık olduğunu ve kimlerden istendiğini döndürür.
curl 'https://panel.ornek.com/api/v1/admin/settings/security/two-factor' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/two-factor', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/two-factor');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Anahtarlar ancak EN AZ BIR yontem acikken is gorur; ikisini birlikte okuyun.
$tfa = Api::Settings()->GetTwoFactor()['data'];
$live = $tfa['admin'] === 1 && $tfa['authentications'] !== [];İki Adımlı Doğrulamayı Yazma
Yöntemleri ve kimlerden isteneceğini yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/security/two-factor' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"authentications":["Totp"],"admin":1,"show_popup":1}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/two-factor', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
authentications: ['Totp'],
admin: 1,
show_popup: 1,
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/two-factor');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'authentications' => ['Totp'],
'admin' => 1,
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yontem listesi BUTUN yazilir: eklemek isterken tek yontem gondermek digerlerini kapatir.
$tfa = Api::Settings()->GetTwoFactor()['data'];
$methods = $tfa['authentications'];
$methods[] = 'Totp';
Api::Settings()->UpdateTwoFactor(['authentications' => array_unique($methods)]);Yöntemleri Listeleme
Kurulu ikinci adım yöntemlerini ve hangilerinin açık olduğunu döndürür.
curl 'https://panel.ornek.com/api/v1/admin/settings/security/two-factor/methods' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/two-factor/methods', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/two-factor/methods');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Yontem anahtarlarini BURADAN alin: uydurdugunuz anahtar sessizce yok sayilir.
$keys = array_column(Api::Settings()->GetTwoFactorMethods()['data'], 'key');Konum Doğrulamayı Getirme
Alışılmadık bir konumdan girişte ne yapılacağını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/settings/security/location-verification' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/location-verification', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/location-verification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Musteri ve yonetici ayarlari BAGIMSIZDIR: birini acmak digerini etkilemez.
$loc = Api::Settings()->GetLocationVerification()['data'];Konum Doğrulamayı Yazma
Konum doğrulamasını taraf bazında yazar; giriş kodunu gönderemeyecek bir yöntem reddedilir.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/security/location-verification' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"admin":{"status":1,"method":"Email","type":"country"}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/location-verification', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
admin: { status: 1, method: 'Email', type: 'country' },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/location-verification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'admin' => ['status' => 1, 'method' => 'Email', 'type' => 'country'],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Konum cozumu KONUM MODULUNE baglidir: modul yoksa dogrulama beklendigi gibi calismaz.
// Email yontemi yapilandirilmis bir mail modulu de ister, yoksa yazim reddedilir.
$loc = Api::Settings()->GetLocalisation()['data'];
if ($loc['ip_module'] !== '') {
Api::Settings()->UpdateLocationVerification([
'client' => ['status' => 1, 'method' => 'Email'],
]);
}Adres Doğrulamayı Getirme
Alışılmadık bir adresten girişte ne yapılacağını döndürür.
curl 'https://panel.ornek.com/api/v1/admin/settings/security/ip-verification' \
-H "Authorization: Bearer $API_KEY"const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/ip-verification', {
headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/ip-verification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);$ip = Api::Settings()->GetIpVerification()['data'];Adres Doğrulamayı Yazma
Adres doğrulamasını taraf bazında yazar.
curl -X PUT 'https://panel.ornek.com/api/v1/admin/settings/security/ip-verification' \
-H "Authorization: Bearer $API_KEY" \
-H 'Content-Type: application/json' \
-d '{"admin":{"status":1,"whitelist":"203.0.113.0/24"}}'const res = await fetch('https://panel.ornek.com/api/v1/admin/settings/security/ip-verification', {
method: 'PUT',
headers: {
Authorization: `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
admin: { status: 1, whitelist: '203.0.113.0/24' },
}),
});
const body = await res.json();$ch = curl_init('https://panel.ornek.com/api/v1/admin/settings/security/ip-verification');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'admin' => ['status' => 1, 'whitelist' => '203.0.113.0/24'],
]),
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);// Muaf adres listesi gonderdiginizle DEGISIR: once okuyup uzerine ekleyin.
$ip = Api::Settings()->GetIpVerification()['data'];
Api::Settings()->UpdateIpVerification([
'admin' => [
'status' => 1,
'whitelist' => $ip['admin']['whitelist'] . "\n" . $myAddress,
],
]);Tuzaklar
Müşteri ve yönetici anahtarları yalnız en az bir yöntem açıkken etki eder. Yöntem listesi boşken yöneticide ikinci adımı açmak hiçbir şey değiştirmez, ama ayar açık göründüğü için korunduğunuzu sanırsınız. İkisini birlikte okuyun.
Gönderdiğiniz yöntem listesi eskisinin yerine geçer: eklemek isterken tek bir yöntem göndermek diğerlerini kapatır. Kullanıcıların o yöntemlerle kurduğu ikinci adım bir anda geçersizleşir. Önce mevcut listeyi okuyup üzerine ekleyin.
Bir girişin nereden geldiğini çözmek konum modülünün işidir. Modül kurulu değilse ya da sorgusu başarısız olursa doğrulama beklediğiniz gibi çalışmaz. Bu ayarı açmadan önce yerelleştirme ayarlarındaki konum modülünün seçili olduğunu doğrulayın.
Yönetici tarafında adres doğrulamasını açmak sizi de kapsar. Değişken adresli bir bağlantıdan çalışıyorsanız her girişte ek doğrulama istenir; muaf listeye kendi adresinizi eklemeyi unutursanız kendinizi zor duruma sokabilirsiniz. Muaf liste de gönderdiğiniz değerle değişir, birleştirilmez.
Açılacak yöntemler kurulu modüllerin anahtarlarıyla yazılır ve bu anahtarlar yöntem listeleme ucundan gelir. Tanınmayan bir anahtar sessizce yok sayılır: istek başarılı görünür ama yöntem açılmaz. Yazdıktan sonra okuma ucundan doğrulayın.
İlgili Makaleler
Geri bildiriminiz için teşekkürler!
Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.