OAuth 범위
스코프는 액세스 토큰이 수행할 수 있도록 허가된 작업을 정의합니다. Altium 365 API는 모든 요청에서 스코프를 검증하며, 작업에 필요한 스코프가 없는 토큰은 권한 부여 오류를 받게 됩니다.
스코프는 토큰이 발급되는 컨텍스트에 따라 플랫폼에서 할당됩니다. 스코프를 수동으로 선택하지는 않지만, 토큰을 검사하거나 API를 사용할 때 이를 접하게 됩니다. 스코프 구조를 이해하면 토큰에 어떤 권한이 부여되었는지 해석하고 액세스 경계를 판단하는 데 도움이 됩니다.
JWT 토큰의 스코프
액세스 토큰은 JWT이며, 디코딩하여 클레임을 확인할 수 있습니다. scope 클레임에는 토큰이 발급될 때 포함된 모든 스코프가 나열됩니다. 예를 들어, Workspace 액세스용으로 발급된 토큰은 다음과 같습니다:
{
"scope": [
"openid",
"profile",
"a365:workspace:a9a01426-ac92-480e-9f80-97fe0f8ba344"
]
}
a365:workspace:{workspace-id} 스코프는 액세스 영역과 해당 토큰이 유효한 특정 Workspace를 모두 인코딩합니다.
명명 규칙
Altium OAuth 스코프는 다음 패턴을 따릅니다:
area[:resource][.action]
-
area– 광범위한 플랫폼 도메인(예:workspace,global,supply) -
resource– 선택 사항; 해당 영역 내의 특정 bounded context 또는 데이터 도메인(예:design,library,app) -
action– 선택 사항; 작업 유형(예:read,write,execute)
이 명명 방식의 몇 가지 원칙은 다음과 같습니다:
-
영역 이름은 제품 기반이 아니라 도메인 기반입니다.
workspace가a365보다 적합하고,supply가octopart보다 적합합니다. -
리소스 이름은 bounded context 및 확립된 도메인 용어와 일치합니다.
-
스코프는 기능 중심이 아니라 데이터 중심입니다.
스코프 |
의미 |
|
Workspace의 설계 데이터에 대한 읽기 액세스 |
|
앱 등록 생성 및 관리 |
|
공급망 데이터에 대한 읽기 액세스 |
표준 OIDC 스코프
토큰에는 신원 및 세션 관리를 위해 사용되는 표준 OIDC 스코프도 포함될 수 있습니다:
스코프 |
용도 |
|
OIDC 인증 흐름에 필요 |
|
기본 사용자 프로필 정보에 대한 액세스 |
|
사용자의 그룹 멤버십 데이터에 대한 액세스 |
|
리프레시 토큰 발급 허용 |
Workspace 스코프
현재 Workspace 데이터 액세스는 모든 Workspace 리소스를 포괄하는 단일 a365:workspace:{workspace-id} 스코프로 표현됩니다. 플랫폼은 특정 bounded context로 액세스를 한정할 수 있는 더 세분화된 모델로 이동하고 있습니다:
스코프 |
포함 범위 |
|
PCB 프로젝트, 회로도, 변형, 릴리스 |
|
컴포넌트, 심볼, 풋프린트, 부품 데이터 |
|
BOM, BOM 항목 |
|
댓글, 작업, 주석 |
|
Workspace 멤버십 및 그룹 |
|
Workspace 인사이트 및 분석 |
|
PLM 통합 |
|
워크플로 정의 및 실행 |
|
요구사항 관리 |
각 세분화된 스코프는 .read 및 .write 작업을 지원합니다. 이 더 세분화된 모델은 점진적으로 도입되고 있으며, API의 bounded context model과 스코프를 정렬함으로써 통합에 실제로 필요한 데이터에만 액세스 권한을 부여할 수 있게 합니다.