CAP 인증 없이 배포 그만 — XSUAA 필수 #shorts #SAP #CAP
Moderator
· 조회 1
CAP 인증 없이 배포 그만 — XSUAA 필수 #shorts #SAP #CAP
Moderator
· 조회 1
CAP Java 인증 설정, 빼먹으면 진짜 큰일
CAP Java 애플리케이션을 BTP에 배포할 때 인증 설정을 빠뜨리면 엔드포인트가 외부에 그대로 노출된다. XSUAA와 JWT 설정 방법을 핵심만 정리했다.
기본 보안 설정 — xs-security.json
BTP에서 XSUAA 서비스 인스턴스를 생성할 때 xs-security.json으로 OAuth 스코프와 역할을 정의한다.
{
"xsappname": "my-cap-app",
"tenant-mode": "dedicated",
"scopes": [
{ "name": "$XSAPPNAME.read", "description": "Read access" },
{ "name": "$XSAPPNAME.write", "description": "Write access" }
],
"role-templates": [
{ "name": "Viewer", "scope-references": ["$XSAPPNAME.read"] },
{ "name": "Editor", "scope-references": ["$XSAPPNAME.read","$XSAPPNAME.write"] }
]
}
CDS 레벨 접근 제어 — @requires / @restrict
서비스나 엔티티에 직접 권한을 선언하면 CAP 프레임워크가 자동으로 JWT 스코프를 검증한다.
// srv/cat-service.cds
@requires: 'authenticated-user'
service CatalogService {
@restrict: [
{ grant: 'READ', to: 'Viewer' },
{ grant: ['WRITE','CREATE','DELETE'], to: 'Editor' }
]
entity Books as projection on db.Books;
}
MTA 배포 시 XSUAA 바인딩
mta.yaml에서 XSUAA 서비스를 requires로 선언해야 JWT가 자동 주입된다. 로컬에서는 cds bind --to xsuaa로 BTP 서비스를 직접 연결한다.
# mta.yaml (requires 섹션)
requires:
- name: my-cap-app-xsuaa
resources:
- name: my-cap-app-xsuaa
type: org.cloudfoundry.managed-service
parameters:
service: xsuaa
service-plan: application
path: ./xs-security.json
핵심 한 줄
CAP Java 보안은 xs-security.json + @restrict 두 단계로 완성 — 하나라도 빠지면 API가 열린 창문이 된다.
⚠️ 비공식 콘텐츠 안내
본 게시글은 btpstacks.com의 독립 학습 콘텐츠이며 SAP SE와 무관합니다. 공식 문서는 help.sap.com을 참고하세요.
SAP, ABAP, SAP BTP, SAPUI5, SAP Fiori는 독일 및 기타 국가에서 SAP SE의 상표 또는 등록상표입니다.