Skip to main content

JFrog での OpenID Connect の構成

ワークフロー内で OpenID Connect を使用して、JFrog で認証を行います。

概要

OpenID Connect (OIDC) を使用すると、GitHub Actions ワークフローで JFrog で認証 を行い、JFrog パスワード、トークン、または API キーを GitHub に格納せずに成果物をダウンロードして発行できます。

このガイドでは、GitHub の OIDC をフェデレーション ID として信頼するように JFrog を構成する方法の概要と、GitHub Actions ワークフローでこの構成を使用する方法について説明します。

GitHub Actions ワークフローの例については、JFrog 説明書の「サンプル GitHub Actions 統合」を参照してください。

JFrog CLI を使用した GitHub Actions ワークフローの例については、jfrog-github-oidc-example リポジトリの「build-publish.yml」を参照してください。

前提条件

  • GitHub が OpenID Connect (OIDC) を使用する方法の基本的な概念とそのアーキテクチャと利点については、「OpenID Connect を使ったセキュリティ強化について」を参照してください。

  • 先に進む前に、アクセス トークンが予測可能な方法でのみ割り当てられるようにセキュリティ戦略を計画する必要があります。 クラウド プロバイダーがアクセス トークンを発行する方法を制御するには、少なくとも 1 つの条件を定義し、信頼できないリポジトリがクラウド リソースにアクセス トークンを要求できないようにする必要があります。 詳しくは、「OpenID Connect を使ったセキュリティ強化について」をご覧ください。

  • セキュリティで保護するには、ID マッピングを構成するときに JFrog で Claims JSON を設定する必要があります。 詳細については、「AUTOTITLE」および「OpenID Connect を使ったセキュリティ強化について」を参照してください。

    たとえば、isshttps://token.actions.githubusercontent.com に、そして repository は "octo-org/octo-repo" などに設定できます。 これにより、指定されたリポジトリの Actions ワークフローのみが JFrog プラットフォームにアクセスできるようになります。 ID マッピングを構成するときの Claims JSON の例を次に示します。

    JSON
    {
        "iss": "https://token.actions.githubusercontent.com",
        "repository": "octo-org/octo-repo"
    }
    

JFrog への ID プロバイダーの追加

OIDC と JFrog を使用するには、GitHub Actions と JFrog プラットフォームの間に信頼関係を確立します。 このプロセスの詳細については、JFrog 説明書の「OpenID Connect 統合」を参照してください。

  1. JFrog プラットフォームにサインインします。
  2. JFrog と GitHub Actions ワークフロー間の信頼を構成します。
  3. ID マッピングを構成します。

GitHub Actions ワークフローを更新する

OIDC を使った JFrog での認証

GitHub Actions ワークフロー ファイルで、JFrog Platform で構成したプロバイダー名とオーディエンスを使用していることを確認します。

次の例では、プレースホルダー YOUR_PROVIDER_NAMEYOUR_AUDIENCE を使っています。

permissions:
  id-token: write
  contents: read

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Set up JFrog CLI with OIDC
        id: setup-jfrog-cli
        uses: jfrog/setup-jfrog-cli@29fa5190a4123350e81e2a2e8d803b2a27fed15e
        with:
          JF_URL: $
          oidc-provider-name: 'YOUR_PROVIDER_NAME' 
          oidc-audience: 'YOUR_AUDIENCE' # This is optional

      - name: Upload artifact
        run: jf rt upload "dist/*.zip" my-repo/

ヒント

OIDC 認証を使うと、setup-jfrog-cli アクションにより、ステップの出力として oidc-useroidc-token が自動的に提供されます。 これらは、JFrog による認証を必要とする他の統合に使用できます。 これらの出力を参照するには、必ずステップで明示的に id を定義しておきます (たとえば、id: setup-jfrog-cli)。

他の手順での OIDC 資格情報の使用

      - name: Sign in to Artifactory Docker registry
        uses: docker/login-action@v3
        with:
          registry: $
          username: $
          password: $

参考資料