조직 역할 조회
GET /fapi/v1/organizations/{org_id}/roles/{role_id} · 환경의 로그인 호스트에서 호출
조직의 역할 하나 또는 조직 관리자가 할당할 수 있는 환경 역할을 반환합니다. 인증된 사용자의 __Host-idp_session 쿠키가 필요하며, 쿠키가 없거나 만료되었거나 취소된 경우 401 unauthenticated를 반환합니다. 다른 origin의 자사 애플리케이션은 대신 프론트 API 액세스 토큰(DPoP 증명과 함께 Authorization: DPoP <token>)을 보낼 수 있습니다(프론트 API 액세스 토큰 참조). 사용자는 idp_roles:manage 권한을 가진 조직의 활성 멤버여야 합니다. 멤버가 아닌 사용자는 404 not_found를 받으며, 이로써 조직의 존재 여부가 노출되지 않습니다. 권한이 없는 멤버는 403 insufficient_permissions를 받습니다. 조직 역할은 환경에서 활성화되어 있고 요금제에 포함되어 있어야 합니다.
요청
헤더:
| 헤더 | 필수 여부 | 설명 |
|---|---|---|
Idp-Client |
예 | SDK 식별자. |
org_id: 조직 식별자(org_…). role_id: 역할 식별자(rol_…).
본문 없음.
응답
ETag 헤더("<version>")와 함께 200 OK를 반환합니다:
| 필드 | 타입 | 설명 |
|---|---|---|
id |
string | 역할 식별자(rol_…). |
organization_id |
string 또는 null | 조직 식별자(org_…). 조직에 할당할 수 있도록 제공되는 환경 역할의 경우 null이며, 여기서는 읽기 전용입니다. |
key |
string | 역할 키. 조직 내와 환경 역할 사이에서 고유하며 변경되지 않습니다. |
name |
string | 표시 이름. |
description |
string | 설명. 설정되지 않은 경우 비어 있습니다. |
is_privileged |
boolean | 역할이 관리 권한을 부여하는지 여부. |
assignable_in_self_service |
boolean | 조직 관리자가 역할을 할당할 수 있는지 여부. |
permission_ids |
string[] | 권한 식별자(perm_…). |
created_at |
string | RFC 3339, UTC. |
updated_at |
string | RFC 3339, UTC. |
version |
integer | 현재 버전. ETag 헤더("<version>")로도 전송됩니다. |
{
"id": "rol_01jbz6x8kq3m2n4p5r6s7t8v9w",
"organization_id": "org_01jbz6x8kq3m2n4p5r6s7t8v9a",
"key": "auditor",
"name": "Auditor",
"description": "Read-only access to reports",
"is_privileged": false,
"assignable_in_self_service": true,
"permission_ids": ["perm_01jbz6x8kq3m2n4p5r6s7t8v9b"],
"created_at": "2026-10-28T09:30:00Z",
"updated_at": "2026-10-28T09:30:00Z",
"version": 1
}
오류
| 상태 | 코드 | 발생 조건 |
|---|---|---|
| 401 | unauthenticated |
유효한 세션 쿠키가 없습니다. |
| 403 | insufficient_permissions |
사용자에게 조직의 idp_roles:manage 권한이 없습니다. |
| 403 | plan_feature_unavailable |
환경의 요금제에 조직 역할이 포함되어 있지 않습니다(feature, required_plan). |
| 403 | org_custom_roles_disabled |
환경에서 조직 역할이 꺼져 있습니다. |
| 404 | not_found |
이 사용자에 대한 조직 또는 역할이 없습니다(알 수 없거나, 형식이 잘못되었거나, 다른 사용자의 식별자도 같은 응답을 받습니다). |
| 503 | service_unavailable |
일시적으로 사용할 수 없습니다. Retry-After 이후에 다시 시도하십시오. |
예제
curl https://example.keenauth.app/fapi/v1/organizations/org_01jbz6x8kq3m2n4p5r6s7t8v9a/roles/rol_01jbz6x8kq3m2n4p5r6s7t8v9w \
-H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
-b cookies.txt