業界・業務から探す
導入目的・課題から探す
データ・AIについて学ぶ
News
Hakkyについて
ウェビナーコラム
◆トップ【Hakkyの社内Wiki】Strapi
クラウドとオンプレの違いAIシステム導入時におすすめのクラウドシステムスクレイピングのためのプロキシサーバのAPI
AI

執筆者:Handbook編集部

AzureでGitHub OIDC認証を設定する方法 | 初期設定から連携までの完全ガイド

はじめに

GitHub Actionsを利用してAzureのリソースに安全にアクセスするには、OIDC (OpenID Connect) を使用した認証が推奨されます。 これにより、GitHub Secretsにクレデンシャル情報を保存することなく、GitHubのワークフローからAzureにアクセスできます。 本記事では、AzureとGitHubをOIDCで連携する方法を解説します。

OIDC認証のメリット

GitHub Actions を活用して Azure のリソースを管理するなら、セキュアな認証方法 が不可欠です。従来は、サービスプリンシパル (SP) のクライアントIDとシークレットを GitHub Secrets に保存して認証していましたが、管理が煩雑でセキュリティリスクも高いのが課題でした。 そこで登場するのが OIDC です。これを使えば、GitHub Secrets にクレデンシャル情報を保存せずに Azure へアクセスでき、トークンの自動更新も不要になります。つまり、セキュアかつ管理の手間を減らせる最高の認証方法です。

設定手順

1.アプリ登録

Microsoft Entra ID を開き、アプリ登録を行います。 以下のように設定して登録ボタンを押下するとアプリが登録されます。 また、アプリの登録とSPの作成は同義です。

アプリの登録が完了すると、以下のようにクライアントIDとテナントIDの二つが発行されます。この二つは認証で使うので控えておきましょう。(再度確認もできます)

2.フェデレーション認証の追加

次にアプリの作成が完了した画面の、「証明書またはシークレットの追加」に移動します。 フェデレーション資格情報の、資格情報の追加を押下します。 以下のように設定します。

この設定ではエンティティ型にブランチ、ブランチ名には[main]を設定しているので、該当リポジトリのmainブランチにアプリが紐づきます。 エンティティ型には、ブランチ、環境、タグ、PullRequest を指定できます。

3.作成したアプリにアクセス権限を付与する

デプロイやリソース作成を行うには Contributor 権限が必要ですので作成したアプリに権限を付与します。

  1. Azure サブスクリプションまたは、リソースグループのIAMセクションを開きます。
  2. 上部メニューの追加ボタンを押下後のプルダウンからロールの割り当ての追加をクリックします。
  3. 特権管理ロールの「共同作成者」をクリック後、次へを押下します。
  4. アクセスの割り当て先は「ユーザー、グループ、またはサービス プリンシパル」にチェックを入れて、メンバー選択で作成したSPを選択してください。

4.GitHub Actions の設定

.github/workflows/deploy.yml に以下を追加します。

name: Deploy to Azure

on:
  push:
    branches:
      - main

permissions:
  id-token: write  # OIDC を有効化
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: azure login with oidc       
        uses: azure/login@v1
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - name: check if login success
        run: |
          az account show

上記により、クライアントシークレットの管理不要でGithubActions上でAzureのリソースを操作することができます。 今回は、oidcでログインして現在ログインしているアカウント情報を取得するという操作を行ってます。 実用例としては、Acrにログインしてイメージをpush後、そのイメージを使用するリソースをデプロイするいうフローを自動化するなどがあります。

まとめ

GitHub Actions から Azure への OIDC 認証を設定することで、シークレット管理不要でセキュアなデプロイが可能になります。 この設定を活用することで、CI/CD の自動化がよりシンプルかつ安全になり、プロジェクトの運用が効率化されます。

参考

info
備考

Hakky ではエンジニアを募集中です!まずは話してみたいなどでも構いませんので、ぜひお気軽に採用ページからお問い合わせくださいませ。

2025年06月15日に最終更新
読み込み中...