
# Bir üyenin tanılamasını al

`GET /v1/organizations/{org_id}/memberships/{membership_id}/diagnostics` · izinler `organizations:read` ve `users:read`

Bir kuruluş yöneticisi için tek bir yanıtta "bu üye neden giriş yapamıyor?" sorusunu yanıtlar: üyelik, kuruluşun politikalarının özeti, bekleyen bir davet, üyenin kimlik doğrulayıcılarının özeti, kuruluş bağlamında giriş durumu, üyenin dizin grupları ve üyenin uygulamalara erişimi. Yalnızca okunabilir: hiçbir şey değişmez ve yazma işlemleri kendi uç noktalarına gider. Giriş etkinliği [Bir kullanıcının günlüklerini listele](/docs/api/management/users/list-logs) ve `org_id` ile okunur.

Yalnızca kuruluşa ait veriler döndürülür. Etiketler, AAGUID'ler, IP adresleri, kullanıcı aracıları, e-posta adresleri, CIDR aralıkları ve başka bir kuruluşun bağlamına ait kayıtlar yanıtın hiçbir zaman parçası değildir.

## İstek

| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| `org_id` | yol | evet | Kuruluş kimliği (`org_…`). |
| `membership_id` | yol | evet | Üyelik kimliği (`mem_…`). |

İstek gövdesi yok.

## Yanıt

Bu alanlarla birlikte `200 OK`:

| Alan | Açıklama |
|---|---|
| `membership` | [Bir üyeliği al](get.md) uç noktasının döndürdüğü şekliyle üyelik: durum, kaynak, roller ve askıya alma nedeni. |
| `policy` | Kuruluşta yazılmış politikalar: `authentication_methods` (passkey ve parolaya izin verilip verilmediği, izin verilen bağlantı sayısı), `mfa` (kimlerin çok faktörlü kimlik doğrulama kullanması gerektiği ve izin verilen faktörler), `phishing_resistant`, `sso_enforcement` (mod ve üye acil durum listesindeyse `bypass`) ve `ip_allowlist` (mevcutsa ve kimlere uygulandığı). `null` ise kuruluşun bu politika için ortam değerini devraldığı anlamına gelir. |
| `invitation` | Yalnızca `invited` üyeliği için: kullanıcının birincil e-posta adresine gönderilen bekleyen davet, teslim ve teslim durumu ile birlikte. Aksi halde `null`. E-posta adresi döndürülmez. |
| `authenticators` | `classes`: üyenin etkin kimlik doğrulayıcılarının türleri. `mfa_enrolled`: etkin bir kimlik doğrulayıcının rolü `second_factor` veya `both` ise `true`. |
| `sign_in` | `locked` ve `locked_until` (kilit, hesabın her bağlamda girişini durdurur) ve bu kuruluş bağlamındaki son giriş (`last_sign_in_at`, `last_sign_in_amr`). Başarısızlık sayaçları gösterilmez, çünkü hiçbir kuruluşa ait değildir. |
| `groups` | Üyenin kuruluşun dizinlerindeki grupları (`data`: `id` `dsg_…` ve `directory_id` `dir_…`; en fazla 100, daha fazlası varsa `truncated`). Yalnızca bu kullanıcıya bağlı ve etkin olan bir dizin kullanıcısının üyelikleri sayılır. Grup adları döndürülmez; bunları `GET /v1/directories/{directory_id}/groups/{directory_group_id}` ile okuyun. |
| `applications` | Bu kuruluştaki uygulamalara erişim. `org_access_mode` değeri `all_organizations` olan uygulamalar her üyeye açıktır ve yalnızca sayılır (`open_count`). Diğer uygulamalar için (`data`, ada göre, en fazla 100, daha fazlası varsa `truncated`): `application_id`, `name`, `access_mode`, `allowed` ve erişim reddedildiğinde `reason` (`application_not_enabled`: uygulama bu kuruluş için etkinleştirilmemiştir; `application_not_assigned`: ne üyelik ne de dizin gruplarından biri atanmamıştır). Karar, girişte yapılan kontrolle aynı kuralı izler. |

```json
{
  "membership": {
    "id": "mem_01j9xn5p9s0t4v6w8x0y2z4a6c",
    "organization_id": "org_01j9xk3m7q8r2s4t6v8w0y2z4a",
    "user_id": "usr_01j9xh2k6p7q1r3s5t7v9w1x3y",
    "status": "suspended",
    "source": "scim",
    "reason": "scim_deprovisioned",
    "roles": [],
    "expires_at": null,
    "created_at": "2026-10-12T09:31:00.123456Z",
    "activated_at": "2026-10-12T09:31:00.123456Z",
    "suspended_at": "2026-10-20T07:00:00Z",
    "removed_at": null,
    "updated_at": "2026-10-20T07:00:00Z",
    "version": 3
  },
  "policy": {
    "authentication_methods": null,
    "mfa": { "required_for": "all", "allowed_factors": ["totp", "webauthn"] },
    "phishing_resistant": null,
    "sso_enforcement": { "mode": "org_context", "bypass": false },
    "ip_allowlist": null
  },
  "invitation": null,
  "authenticators": { "mfa_enrolled": false, "classes": ["webauthn"] },
  "sign_in": {
    "locked": false,
    "locked_until": null,
    "last_sign_in_at": "2026-10-19T08:15:42Z",
    "last_sign_in_amr": ["fed"]
  },
  "groups": {
    "data": [{ "id": "dsg_01j9xp4r8s2t4v6w8x0y2z4a6b", "directory_id": "dir_01j9xm1n5p7q9r1s3t5v7w9x1y" }],
    "truncated": false
  },
  "applications": {
    "open_count": 2,
    "data": [
      {
        "application_id": "app_01j9xq6s0t2v4w6x8y0z2a4b6c",
        "name": "Finance portal",
        "access_mode": "assigned_only",
        "allowed": false,
        "reason": "application_not_assigned"
      }
    ],
    "truncated": false
  }
}
```

## Hatalar

| HTTP | Kod | Ne zaman |
|---|---|---|
| 404 | `not_found` | Üyelik bu kuruluşta yok veya `removed`. |
| 401 | `unauthenticated` | Kimlik bilgisi eksik, geçersiz veya iptal edilmiş. |
| 403 | `insufficient_permissions` | Kimlik bilgisinde `organizations:read` veya `users:read` yok. |
| 429 | `rate_limited` | İstek hız sınırı aşıldı; `Retry-After` süresinin ardından yeniden deneyin. |
| 503 | `service_unavailable` | Bir bağımlılık geçici olarak kullanılamıyor; `Retry-After` süresinin ardından yeniden deneyin. |

## Örnek

```bash
curl -i "https://api.eu.keenauth.com/v1/organizations/org_01j9xk3m7q8r2s4t6v8w0y2z4a/memberships/mem_01j9xn5p9s0t4v6w8x0y2z4a6c/diagnostics" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

## Kişisel veriler

Bu uç nokta kişisel veri içerir: kuruluş üyelikleri ve davetler ile kimlik bilgileri. [KeenAuth API'lerinde kişisel veriler](/docs/policies/personal-data) sayfası, neyin saklandığını, ne kadar süre tutulduğunu ve nasıl silindiğini açıklar. Hiçbir alanda özel nitelikli kişisel verileri (sağlık, biyometrik veriler, din, siyasi görüşler, cinsel yönelim) göndermeyin.
