이 문서는 JFrog에서 OIDC의 관리에 대한 가이드를 공유하기 위해 작성되었다.


도구명JFrog Artifactory
문서 작성 기준 버전7.84.14
지원 Edition

목차



OpenID Connect(OIDC)란?

OAuth 2.0 프로토콜 위에서 작동하는 사용자의 인증을 위한 프로토콜입니다. OIDC를 사용하면 사용자가 OpenID Providers를 사용하여 Single Sign-On(SSO)을 사용할 수 있습니다. 
OIDC를 사용하여 JFrog와 신뢰할 수 있는 공급자를 통합하면 신뢰할 수 있는 공급자와 JFrog 플랫폼 간의 신뢰가 확립됩니다.
이 설정은 토큰 관리를 자동화하고 OpenID Connect(OIDC)를 통해 보안을 강화합니다.

OIDC 통합을 사용하면 GitHub Actions CI 파이프라인이 GitHub에 JFrog 비밀번호, 토큰 또는 API 키를 저장하지 않고도 아티팩트를 다운로드하고 게시할 수 있습니다.

JFrog 플랫폼에서 OIDC 통합(Integration)을 생성하고 통합에 여러 ID 매핑을 추가할 수 있습니다. JFrog 플랫폼은 외부 서비스가 JFrog 플랫폼에서 인증할 수 있도록 각 ID 매핑에 대한 참조 토큰을 생성합니다.
ID 매핑은 JFrog 플랫폼이 들어오는 OIDC 클레임을 특정 권한 범위와 일치시키는 데 사용하는 구성 개체입니다. 

OIDC 통합 생성하기

  1. 제공자 이름 : JFrog Platform에 연결할 OIDC 공급자
    - 이 이름은 OIDC 공급자에 구성된 이름과 일치해야 함
  2. 제공자 유형 : GitHub 또는 Generic
    - Generic OpenID 통합을 선택하는 경우에 이름은 OpenID 공급자 구성의 이름과 정확히 일치해야 함
  3. 제공자 URL
    - Generic OpenID 통합을 선택하는 경우 URL은 OpenID 제공자 구성의 URL과 일치해야 함
  4. 통합에 대한 대상의 이름 : 통합 범위를 결정
    - OIDC 공급자의 구성과 일치해야 함

ID 맵핑 구성

ID 맵핑은 JFrog 플랫폼이 들어오는 OIDC 클레임을 특정 권한 범위와 일치시키는 데 사용하는 구성 개체입니다.
각 ID 매핑은 JFrog Platform에서 인증하기 위한 참조 토큰을 만듭니다.

ID 맵핑 생성하기

  1. ID 맵핑의 명칭 입력
  2. ID 맵핑이 평가되는 우선순위 : 숫자가 작을 수록 우선순위가 높음
  3. ID 맵핑을 위해 OpenID 공급자의 클레임 JSON : 이 맵핑을 검증할 클레임을 포함하는 JSON 파일을 지정
    보안을 위해 ID 매핑에서 JSON 클레임을 정의하는 것이 좋습니다. 클레임을 추가하지 않으면 대상 서비스 계정을 아는 사람은 누구나 액세스할 수 있습니다.
  4. 토큰의 범위는 특정 그룹 또는 사용자, 관리자 중 선택할 수 있습니다.
  5. 액세스 허용되는 JFrog 서비스
  6. 토큰 만료 시간(분), 24시간(1440분)이 최대

Claims JSON 구문

예시)

{ 
  "enterprise" :  "jfrog" ,
  "iss" :  "https://token.actions.githubusercontent.com" , 
  "repository" :  ["jfrog/jfrog-cli", "jfrog/artifactory-client-java", "jfrog/setup-jfrog-cli"] 
}


GitHub Actions의 Claims JSON에 대한 자세한 내용은 GitHub Actions 설명서를 참조하세요 .

JFrog CLI로 OIDC 구성하기

GitHub

GitHub Actions 워크플로우 파일에 코드를 삽입하십시오.

- name: Setup JFrog CLI
  uses: jfrog/setup-jfrog-cli@v4
  env:  
    JF_URL: <YOUR_JFROG_INSTANCE_URL>  
  with:
    oidc-provider-name: <CONFIGURED_INTEGRATION_PROVIDER_NAME_ON_JFROG_PLATFORM>
    oidc-audience: <CONFIGURED_INTEGRATION_AUDIENCE_NAME_ON_JFROG_PLATFORM>



참조