GitHub Enterprise Managed Users(EMU)において Setup user のラベルが付いているアカウントは、ユーザープロビジョニングおよびSAMLシングルサインオンが利用できません。従って、Enterprise管理用のenterprise_ownerアカウントを、後述するRuleによって別途作成する必要があります。
本記事では、OneLoginからGitHub Enterprise Managed UsersへのSAML シングルサインオン(SSO)およびSCIMによるユーザープロビジョニングの設定手順をご案内します。
目次
前提条件
- OneLoginのライセンスが Unlimited または Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- GitHub Enterprise CloudにおけるEnterprise roleが Owner であること
- GitHubの環境が Enterprise with managed users であること
1. GitHub側の操作
-
GitHub を開き、設定対象となるEnterpriseの Owner でサインインします
- [Generate SCIM token]をクリックします
-
scim:enterprise にチェックが入っていることを確認し、[Generate token]をクリックします
- 発行されたトークンをクリップボードへコピーし、[Continue setup]をクリックします
- [Enable single sign-on]をクリックします
- [Add SAML configuration]をクリックします
-
assertion consumer service URL の Enterprise URL slug 部分をクリップボードへコピーします
(例: pentio-enterprise)
2. OneLogin側の設定
- OneLogin に管理者でログインし、管理 をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
GitHub Enterprise Managed Users を検索し、該当コネクタを選択します
- [Save]をクリックします
-
Configuration タブに移動し、1. GitHub側の設定 手順7 でコピーした Enterprise URL slug を入力します
-
SCIM Base URL に 1. GitHub側の設定 手順7 でコピーした Enterprise URL slug を含む
https://api.github.com/scim/v2/enterprises/<Enterprise URL slug>/を入力後、API Connection の[Enable]をクリックし、API Status が Enabled に変更されることを確認します
-
SCIM Bearer Token に 1. GitHub側の設定 手順4 でコピーしたトークンの値を入力します
-
SSO タブに移動し、SAML Signature Algorithm を[SHA-256]に変更します
-
Access タブに移動し、本アプリへのアクセス権を割り当てるロールを選択します
-
Provisioning タブに移動し、Enable provisioning にチェックを入れます
-
Parameters タブに移動し、Role を選択します
*Parameters タブにおける username prefix フィールドに指定できる文字列は、英数字または先頭以外に含めることができる-のみです。また、初期値は Email name part に設定されておりますが、OneLoginのテナント内にドメイン違いで同一の Email name part を持つ複数のメールアドレスを登録されている場合は、一意な値を持つ他のフィールドを選択してください。
-
userと入力し、[Save]をクリックします
-
Rules タブに移動し、[Add Rule]をクリックします
-
Name(例: 管理部 -> enterprise_owner)を入力し、add condition[+]をクリックします
- GitHubにおけるroleに enterprise_owner を割り当てたいユーザーが含まれるRoleを選択します
*2. OneLogin側の設定 手順10 で選択したRoleにも、該当のユーザーが含まれている必要があります。
-
Actions から[Set Role in GitHub Enterprise Managed Users]を選択します
- [ - Macro - ]を選択します
-
enterprise_ownerと入力し、[Save]をクリックします
- [Save]をクリックします
-
SSO タブに移動し、Issuer URL をクリップボードへコピーします
-
SAML 2.0 Endpoint (HTTP) をクリップボードへコピーします
-
View Details をクリックします
-
X.509 Certificate の内容をクリップボードへコピーします
3. GitHub側の設定
-
Sign on URL に 2. OneLogin側の設定 手順22 でコピーした SAML 2.0 Endpoint (HTTP) を入力します
-
Issuer に 2. OneLogin側の設定 手順21 でコピーした Issuer URL を入力します
-
Public certificate に 2. OneLogin側の設定 手順24 でコピーした X.509 Certificate の内容を入力し、[Test SAML configuration]をクリックします
-
Passed: Successfully authenticated your SAML SSO identity. と表示されることを確認し、[Save SAML settings]をクリックします
-
Recovery codes の[Download]または[Print]または[Copy]を一つ以上選択して保存後、[Enable SAML authentication]をクリックします
-
Single sign-on settings のトグルをクリックし、On にします
-
Open SCIM Configuration のトグルをクリックし、On にします
4. ユーザープロビジョニングの動作確認
-
Users タブに移動し、2. OneLogin側の設定 手順16 で選択したRoleに割り当てられているEnterprise管理用ユーザーの Pending をクリックします
-
role が enterprise_owner となっていることを確認し、[Approve]をクリックします
-
Provisioning State が Provisioned に変更されることを確認し、その他のユーザーも同様に Pending をクリックします
-
role が user となっていることを確認し、[Approve]をクリックします
- GitHub Enterpriseを開き、People タブに移動します
- ユーザープロビジョニングにより、OneLoginにおける Email name part を名前に持つGitHubアカウントが追加されていることを確認します
5. SAML SSOの動作確認
- OneLoginに 4. ユーザープロビジョニングの動作確認 でプロビジョニング済みのユーザーでログインし、2. OneLogin側の設定 で追加したアプリケーションを選択します
- SSOに成功すると、GitHub Enterpriseの Dashboard が表示されることを確認します
6. ユーザープロビジョニングの無効化
- GitHub Enterpriseを開き、Identity provider タブに移動します
-
Open SCIM Configuration のトグルをクリックします
- トグルの On が Off に変わることを確認します
ユーザープロビジョニングの無効化は以上です。
7. SAML SSOの無効化
-
Manage SSO をクリックします
-
SAML single sign-on のトグルをクリックします
- 内容を確認し、[Disable SAML single sign-on]をクリックします
-
SAML authentication is disabled と表示されることを確認します
SAML SSOの無効化は以上です。