Kullanıcının kimlik doğrulayıcılarını listeleme
GET /v1/users/{user_id}/authenticators · izin users:read
Bir kullanıcının kimlik doğrulayıcılarını (passkey, TOTP, SMS, e-posta ve push faktörleri) tek sayfada, oluşturulma zamanına göre sıralı olarak listeler. Son 90 gün içinde iptal edilenler de dahildir. Kullanıcı başına kimlik doğrulayıcı sayısı sınırlıdır; bu nedenle listede limit, after, before veya order yoktur ve list_metadata her zaman null değerlidir. Yalnızca meta veriler döndürülür: genel anahtarlar, kimlik bilgisi kimlikleri, TOTP gizli anahtarları veya kurtarma kodları hiçbir zaman döndürülmez.
Kuruluş kapsamı
Bir kuruluş yöneticisi için üye tanılama görünümü oluşturmak üzere org_id gönderin. Bu durumda anahtarın ayrıca organizations:read iznine sahip olması gerekir; aksi halde istek hiçbir veri okunmadan 403 insufficient_permissions hatasıyla başarısız olur. Kullanıcı bu kuruluşun üyesi değilse (invited, active veya suspended üyelik yoksa), istek bilinmeyen bir kullanıcıyla aynı yanıt olan 404 not_found hatasıyla başarısız olur. Kullanıcı üyeyse yalnızca her kimlik doğrulayıcının türü ve MFA'nın etkin olup olmadığı gösterilir: yalnızca etkin kimlik doğrulayıcılar listelenir; label, last_used_at, revoked_at, revoked_by ve revoke_reason alanları null olur ve synced alanı false olur, çünkü kişinin kuruluş dışındaki cihaz ayrıntıları bu görünüme ait değildir. Etkin bir kimlik doğrulayıcının role değeri second_factor veya both ise MFA etkin sayılır. org_id olmadan yanıt değişmez.
İstek
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
user_id |
path | evet | usr_ önekli kullanıcı kimliği. |
org_id |
query | hayır | org_ önekli kuruluş kimliği. Görünümü o kuruluşla sınırlar; bkz. Kuruluş kapsamı. organizations:read gerektirir. |
Yanıt
200 OK. data, kimlik doğrulayıcıları oluşturulma zamanına göre sıralı olarak içerir; liste sayfalandırılmadığı için list_metadata her zaman null değerlidir. Boş alanlar null olur.
Anahtarda users:read_pii izni yoksa label alanı baş harflerine indirgenir (A. L.).
{
"data": [
{
"id": "cred_0a1b2c3d4e5f6g7h8j9k0m1n2p",
"type": "webauthn",
"role": "both",
"label": "Laptop",
"status": "active",
"synced": true,
"created_at": "2026-01-15T09:30:00Z",
"last_used_at": "2026-02-01T08:00:00Z",
"revoked_at": null,
"revoked_by": null,
"revoke_reason": null
}
],
"list_metadata": {
"before": null,
"after": null
}
}
type: webauthn, totp, sms, email, push · role: first_factor, second_factor, both · status: pending, active, revoked, clone_suspected
Hatalar
Her hata, kararlı bir code içeren bir application/problem+json gövdesidir.
| HTTP | code |
Ne zaman |
|---|---|---|
| 404 | not_found |
Kullanıcı bu ortamda yoksa (ya da kimlik biçimi hatalıysa) veya org_id verilmiş ve kullanıcı o kuruluşun üyesi değilse. |
| 401 | unauthenticated |
API anahtarı eksik, geçersiz veya iptal edilmişse. |
| 403 | insufficient_permissions |
Anahtarda users:read izni yoksa veya org_id verilmiş ve anahtarda organizations:read yoksa. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After değerine uyun. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; daha sonra yeniden deneyin. |
Örnek
curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/authenticators \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
Kişisel veriler
Bu uç nokta kişisel veri içerir: kimlik bilgileri. KeenAuth API'lerinde kişisel veriler sayfasında neyin saklandığı, ne kadar süreyle tutulduğu ve nasıl silindiği açıklanmaktadır. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.