:::: MENU ::::

Github Enterprise CloudをOneLoginでSSOできるようにして挙動を確認する

Pocket

Github Enterpriseは無料トライアルが14日間できるようなのでSSO有効時の挙動を確認してみました。

GitHub Enterprise Cloud 評価契約 - GitHub ヘルプ

環境

  • Github Enterprise Cloud
    • OrganizationにはGithub個人アカウントで参加
  • OneLogin (Developer Account)

Github Enterprise Cloud 無料トライアルの開始

アカウント作成とOrganization作成

GitHub | GitHub is a development platform inspired by the way you work. From open source to business, you can host and review code, manage projects, and build software alongside millions of other developers.

無料トライアル -> Enterprise Cloud -> アカウント作成 -> Organization作成

ここで作るアカウントは一般のGithubアカウントと同等のものだと思われます(無料トライアルだからかもしれないがGitHub Freeの状態でした)
続けてOrganizationの設定をしますが、ここで作ったアカウントがOrganizationのOwnerになります(後で変更可能)

アカウント作成時に注意すべきはUsernameをOrganizationで使いたい名前にしないこと!
同じ名前空間(https://github.com/organizationname)を利用するため、次にOrganization作るときにすでに使われている旨のエラーがでます。

どちらも名前を変更する機能はありますので、間違えてしまった場合は変更すれば名前が開放されます。
個人をOrganizationに変換することもできます。

Enterpriseアカウント

Enterprise アカウントについて - GitHub ヘルプ

上記で作ったアカウントがEnterpriseアカウントになるかと思ってたんだがそうではありませんでした。
Github Enterprise Cloudの一機能としてEnterpriseアカウントがあるようです。
Enterpriseアカウントを使うにはGithub側に依頼して作成してもらう必要があります。

  • 複数Organization内でのみPublicなInternal Repositoryを利用可能となる
  • 複数Organizationの請求一括支払いが可能となる
    • 一括だからといって請求書払いだけでなくクレカ払いでもOK

OneLogin Developer Account の作成

Free Developer Account | OneLogin

普通にアカウントを作成。

GithubのSSO設定

Configuring SAML for GitHub.com

OneLogin側、Github側どちらも上記ドキュメントに手順書いてあるので割愛。

OneLoginアカウントとGithubアカウントの紐付け

先程作ったOneLoginのAppからGithubにログインします。

Githubのサインアップ画面に遷移しますが今回は個人アカウントを紐付けたいので、Already have an account? Sign in をクリック。

サインインページにて個人アカウントでログインするとSSO設定が完了します。

これでOrganizationから見るとユーザーが増えているのを確認できます。

SSOの挙動を確認

Githubに直接ログインしてみる

  • OneLogin未ログイン
  • Github未ログイン

個人アカウントなので普通にログインできる。

Githubに個人アカウントでログイン状態でOrganizationのプライベートリポジトリを参照

  • OneLogin未ログイン
  • Github個人アカウントログイン済み

GithubのSSO画面に遷移する。
Continueを押下するとOneLoginのログイン画面に遷移する。
OneLoginにログインするとSSO認証状態になるためOrganizationのプライベートリポジトリが参照できる。

GithubのSAMLセッション期限切れ

  • OneLoginログイン済み
  • Githubログイン済み
  • Github SAML SSOセッション期限切れ

Githubにはログイン状態なので個人アカウントのリポジトリは問題なく利用できる。
SAMLセッションは切れているのでOrganizationのプライベートリポジトリにアクセスするとGithubのSSO画面に遷移する。
ContinueでOneLoginにリダイレクトされるがOneLoginログイン済みなので、そのままGithubに戻されOrganizationプライベートリポジトリが参照できる。

Githubに未ログイン状態でOneLoginからGithub Appを選択

  • OneLoginログイン済み
  • Github未ログイン

個人アカウントのSSO紐付けログイン画面が表示される。
OneLoginログイン済みなのでAppを選択しただけで即Githubにログイン状態になるかと思ったらならなかった。
OneLogin側に

個人アカウント利用ではなくGithub Enterprise側にprovisioningでアカウントを作っているならSSOで普通にログインできるのかな。

OneLoginだけログアウトする

  • OneLogin未ログイン
  • Githubログイン済み
  • Github SAML SSO認証済み

SSOログアウトに対応していないため、SAMLセッションが生きている間はOrganizationのリポジトリにもアクセスできる。

SSHキーの挙動を確認

SSOを有効化しているとSSHキーもSSO認証済みかどうかの設定が増えます。
これを有効化していないSSHキーはOrganizationのリポジトリにアクセスできません。

SSO認証前のSSHキーでOrganizationのプライベートリポジトリを参照

  • SSHキー SSO未認証

SSHキーのSAML SSOを有効化していないためアクセスできません。

$ git clone git@github.com:mycompany-org/mycompany-readme.git
Cloning into 'mycompany-readme'...
ERROR: The `mycompany-org' organization has enabled or enforced SAML SSO. To access
this repository, you must use the HTTPS remote with a personal access token
or SSH with an SSH key and passphrase
that has been whitelisted for this organization. Visit
https://help.github.com/articles/authenticating-to-a-github-organization-with-saml-single-sign-on/ for more information.

fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

OneLogin未ログイン状態でSSHキーのSAML SSOを有効化する

  • OneLogin未ログイン
  • Githubログイン済み
  • SSHキー SSO未認証

SSH Keys -> Enable SSO -> Authorize

GithubのSSO画面に遷移する。
今回の対象はSSHキーなのでアクセス元の名前がSSHキー名になっている。

Pocket