멤버의 진단 정보 조회

GET /v1/organizations/{org_id}/memberships/{membership_id}/diagnostics · 권한 organizations:read 및 users:read

조직 관리자가 "이 멤버가 왜 로그인할 수 없는가?"라는 질문에 하나의 응답으로 답할 수 있도록 합니다. 응답에는 멤버십, 조직 정책 요약, 대기 중인 초대, 멤버 인증기 요약, 조직 맥락에서의 로그인 상태, 멤버의 디렉터리 그룹, 그리고 애플리케이션 접근 권한이 포함됩니다. 이 엔드포인트는 읽기 전용입니다. 아무것도 변경되지 않으며, 쓰기 작업은 각각의 엔드포인트에서 수행합니다. 로그인 활동은 사용자 로그 조회와 org_id를 통해 조회합니다.

응답에는 조직에 속한 데이터만 포함됩니다. 라벨, AAGUID, IP 주소, 사용자 에이전트, 이메일 주소, CIDR 범위와 다른 조직 맥락의 기록은 응답에 포함되지 않습니다.

요청

필드 유형 필수 설명
org_id path 예 조직 ID(org_…)입니다.
membership_id path 예 멤버십 ID(mem_…)입니다.

요청 본문은 없습니다.

응답

다음 필드와 함께 200 OK을(를) 반환합니다.

필드 설명
membership 멤버십 조회가 반환하는 것과 같은 멤버십입니다. 상태, 출처, 역할 및 정지 사유를 포함합니다.
policy 조직에 설정된 정책입니다. authentication_methods(패스키와 비밀번호 허용 여부, 허용된 연결 수), mfa(다중 인증을 사용해야 하는 대상과 허용된 인증 요소), phishing_resistant, sso_enforcement(모드 및 멤버가 비상 접근 목록에 있는 경우 bypass), ip_allowlist(존재 여부와 적용 대상)입니다. null은 조직이 해당 정책에 대해 환경 값을 상속한다는 뜻입니다.
invitation invited 멤버십인 경우에만 해당합니다. 사용자의 기본 이메일 주소로 보낸 대기 중인 초대와 전달 및 전달 상태를 포함합니다. 그 외에는 null입니다. 이메일 주소는 반환되지 않습니다.
authenticators classes: 멤버의 활성 인증기 유형입니다. mfa_enrolled: 활성 인증기 중 역할이 true 또는 second_factor인 인증기가 있을 때 both입니다.
sign_in locked과 locked_until(잠금은 모든 맥락에서 계정의 로그인을 중단합니다), 그리고 이 조직 맥락에서의 마지막 로그인(last_sign_in_at, last_sign_in_amr)입니다. 실패 횟수 카운터는 어떤 조직에도 속하지 않으므로 표시되지 않습니다.
groups 조직 디렉터리에서 멤버가 속한 그룹입니다(data: id dsg_… 및 directory_id dir_…, 최대 100개이며, 더 많으면 truncated입니다). 이 사용자와 연결되어 있고 활성 상태인 디렉터리 사용자의 멤버십만 집계됩니다. 그룹 이름은 반환되지 않으며, GET /v1/directories/{directory_id}/groups/{directory_group_id}을(를) 통해 조회합니다.
applications 이 조직에서 애플리케이션에 대한 접근 권한입니다. org_access_mode이(가) all_organizations인 애플리케이션은 모든 멤버에게 열려 있으며 개수만 집계됩니다(open_count). 그 외 애플리케이션(data, 이름순, 최대 100개이며, 더 많으면 truncated)에 대해서는 application_id, name, access_mode, allowed을 반환하며, 접근이 거부된 경우 reason도 반환합니다(application_not_enabled: 애플리케이션이 이 조직에 활성화되지 않음, application_not_assigned: 멤버십과 디렉터리 그룹 중 어느 것도 할당되지 않음). 판단은 로그인 시 확인과 동일한 규칙을 따릅니다.
{
  "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
  }
}

오류

HTTP 코드 발생 조건
404 not_found 이 조직에 멤버십이 없거나, removed 상태입니다.
401 unauthenticated 자격 증명이 없거나, 유효하지 않거나, 취소되었습니다.
403 insufficient_permissions 자격 증명에 organizations:read 또는 users:read 권한이 없습니다.
429 rate_limited 요청 한도를 초과했습니다. Retry-After 기간이 지난 후 다시 시도하십시오.
503 service_unavailable 의존 서비스를 일시적으로 사용할 수 없습니다. Retry-After 기간이 지난 후 다시 시도하십시오.

예시

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

개인정보

이 엔드포인트는 개인정보를 다룹니다. 조직 멤버십과 초대 정보, 자격 증명이 포함됩니다. KeenAuth API의 개인정보에서 저장되는 항목, 보관 기간, 삭제 방법을 확인하실 수 있습니다. 어떤 필드에도 민감정보(건강, 생체 정보, 종교, 정치적 견해, 성적 지향)를 보내지 마십시오.