🏦

GitHub Enterprise のManaged Userの利用方法(Entra IDとのSAML連携)

に公開

はじめに

GitHub Enterpriseを利用するにあたり、IdP(Entra ID)と連携したManaged Userの準備に関するメモです。

どんな方へ、何を書いたか?

GitHub Enterpriseのユーザ管理にManaged Userを使いたいのだけれど、どのようにしてEntra IDと連携させたらよいか具体的な方法が見つからないという方に、実際に構築した際の手順を、画面例を用いながら記載しています。

前提

GitHub Enterpriseの利用手続き、及びAzureの契約をお持ちであることが前提です。
(GitHub Enterpriseの試使用版、Azureの無料アカウントでも問題ありません)

手順

1.GitHub Enterprise 側の準備

GitHub Enterpriseの利用申請が完了するとメールが届きます。記載されたリンクから管理者ユーザのパスワードを設定し、GitHub Enterpriseにログインすると、以下の画面に遷移します。
(二要素認証の設定も行っておくことをお勧めします。これを怠ると、次回以降のログインの際、二要素認証の設定を求められるので)

SCIMトークンの作成

Generate SCIM トークンのボタンをクリックすると、以下の画面に遷移します。
デフォルトで、scim:enterprise にチェックが入っているので、このままトークンの作成を行います。

 

作成されたトークンが表示されるので、メモっておきます。

2.IdP(Entra ID)側の準備

Azureに管理者でログインし、Entra IDにアクセスします。

アプリケーションの作成

Entra IDから見ると、認証の連携先であるGHEは、アプリケーションの1つです。
よってまず最初に、GHEをアプリケーションとして、Entraに登録する必要があります。
Entra IDのメニューから、エンタープライズ アプリケーションをクリックします。

 

 
新しいアプリケーションをクリックし、表示されたアプリケーションギャラリーの検索でGitHubと入力すると、GitHub関連のアプリケーションが表示されます。GitHub Enterprise Managed Userを選択し、作成をクリックしましょう。

 

 

エンタープライズアプリケーションの一覧に戻ると(再表示をしてください)、GitHub Enterprise Managed Userが追加されています。

ログインするユーザの作成

GHEにログインするユーザを、この時点でEntra ID上に作成しておきましょう。
この後のプロセスで、設定作成後にTESTを実行する必要が出てくるのですが、その際ユーザを作成しておかないとエラーになります(当然ですが)。

Entra IDの左メニューから「ユーザ」を選択し、「新しいユーザの作成」から、GHEにログインするユーザを作成します(例では、gheuser1としています)。

 

 

Entra IDの左メニューから「エンタープライズアプリケーション」に戻り、「GitHub Enterprise Managed User」を選択します。
左メニューから「ユーザーとグループ」を選択して、上部の「Add user/group」をクリックします。

 
表示された画面のユーザの「選択されていません」をクリックするとユーザの選択画面が表示されるので、上記で作成したユーザを選択します。

ユーザーとグループに、選択したユーザが表示されました。

SAMLの設定

GitHub Enterprise Managed Userのメニューから「シングルサインオン」を選択し、表示された画面から「SAML」をクリックします。

 
SAMLのセットアップ画面が表示されるので、「編集」ボタンをクリックします。

 
ポップアップされた画面で、識別子と応答URLを入力します。
ここで注意すべき点があります。
ポップアップ画面上の入力例、及びMicrosoftのチュートリアルページ等では、GHEのURLがgithub.comとなっていますが、現時点(2026年1月20日)では、GHEのURLは、[GHEの名称].ghe.comで指定する形に変更になっているようです。(以下の画面例では、[GHEの名称]はマスクされた部分です)
URLをgithub.comで設定すると、後のTEST画面でエラーとなります。

 
識別子と応答URLを入力後、「TESTしますか?」とメッセージが表示されますが、ここでは実施しないようにしましょう。(GHE側の設定が完了していないので、やはりエラーになります)
 
ポップアップ画面をスクロールし、「SAML証明書」のセクションで、「証明書(BASE64)」をダウンロードしておきます。ダウンロードしたファイルの内容を、この後のGHE側の設定で使用します。

 
さらに画面をスクロールし、「GitHub Enterprise Managed User のセットアップ」のセクションで、「ログイン URL」と「Microsoft Entra 識別子」の値をコピーしておきます。(これらの値は、次のGitHub Enterprise 側の設定で使用します)

3.GitHub Enterprise 側の設定

再度、GitHub Enterpriseの管理画面にアクセスし、「Enable sigle sign-on」をクリックします。

 
表示された画面の中で、
「Sign on URL」の欄に、上記でコピーした「ログイン URL」の値を
「Issuer」の欄に、上記でコピーした「Microsoft Entra 識別子」の値を
「Public certificate」の欄に、上記でダウンロードした「証明書(BASE64)」ファイルの内容を
それぞれ記載します。

画面の下にある「Test SAML configuration」をクリックすると、Entra IDのログイン画面が表示されるので、上記で作成したユーザ(この例では、gheuser1)でログインができれば、「Save SAML settings」のボタンが有効になります。

4.ユーザのプロビジョニングの設定(Entra ID)

プロビジョニングの作成

上記でSSO(sigle sign-on)ができるようになりましたが、SSOを行った際に、IdP上のユーザ情報でGitHub Enterprise側にもユーザが作成されるように設定を行うことが必要です(これをプロビジョニングと呼んでいます)。

この設定は、Entra ID側で行います。
 
再びAzureに管理者でログインし、Entra IDにアクセスして、エンタープライズアプリケーションの中から、GitHub Enterprise Managed Userを選択します。
表示されたメニューの中の、「プロビジョニング」をクリックします。

表示された画面の「新しい構成」をクリックします。

展開された入力画面に、以下のように入力します。
 プロビジョニングモード:自動
 テナントのurl:https://api.[GHEの名称].ghe.com/scim/v2/enterprises/[GHEの名称]
 シークレットトークン:上記の1で作成した「SCIMトークン」の値

 

入力後、「テスト接続」をクリックしてテストを実行し、問題が無ければ、「保存」をクリックします。
戻った画面で、「プロビジョニングの開始」を実行します。
しばらくすると、プロビジョニングが完了します。

管理ユーザの作成

これまでの作業は、GitHub Enterpriseの初期ユーザ(Setup user)で行ってきたと思います。
(この項目はその前提で記載しています)
Entra IDでのユーザ管理では二要素認証が推奨であり、その設定でEntra IDを運用していた場合、上記に記載した手順で、SSO及びプロビジョニングが完了すると、次回以降のログインでは、Setup userではログインできなくなります(Setup userでログインする場合は、リカバリーコードが必要です)
よって、今後Setup userと同じ管理者権限で作業を進めるためには、上記の2.で記載した手順で、管理ユーザを作成することが必要です。
手順は上記と同じですが、ユーザのロールを選択する際に、「Enterprise Owner」を選択することで、GitHub Enterpriseへのログインの際、管理者権限でログインすることが可能となります。

6.まとめ

GitHub EnterpriseのManaged UserをAzure Entra IDで管理する方法については、GitHub、MSそれぞれのウェブサイトに情報が多く記載されていますが、逆に情報量が多かったり、情報が古くて現時点(2026年1月現在)の内容と合わないところが多かったりで、実際の構築には迷うことが多いと感じました。
そこで、実際のオペレーション例を用いて、具体的な記載を行ってみたつもりです。
同じ取り組みを行おうとしている方に、少しでも参考になれば幸いです。
最後までお読みいただき、ありがとうございました。

Discussion