Google Workspace を GitHub の SAML IdP として使う
GitHub を会社として運用している場合、多くが Enterprise プランを契約されていると思います。
また、会社のセキュリティレギュレーションを満たすために SAML が広く導入されています。
以前私が書いた記事では、Auth0 を無料プランの範囲内で使用していました。
しかし、会社の規模が大きくなってくると、無料プランの範囲内では厳しくなってきます。
Pricing を見てみると、B2B プランとして契約が必要なため、最低でも $130/mo かかってしまいます。
Auth0 Pricing - B2B
Source: Pricing - Auth0
前回は、Google Workspace が SAML IdP として使えることを知らず、無料で使用できる Auth0 を採用しました。
しかし、以下の記事を拝見している時、Google Workspace が使えることを知り、有料プランへの変更では無く既存に導入していた Google Workspace へ変更することにしました。
SAML IdP 変更の流れ
まず、GitHub 上から、一旦 SAML をオフにする必要があります。
いきなり Public certificate
等を変更して保存してしまうと、GitHub 側に保存されている SSO identity が、Auth0 のものと Google Workspace のもので合わないことになります。
こうなると最悪の場合、全員が組織から弾かれてしまい、誰も入れなくなってしまう可能性があるためです。
SAML 認証を必須化していれば、もう誰もログインできないため、サポートデスクに連絡するしかない状態に陥るかもしれません。
以上を踏まえた上で、こちらの記事では下記の手順で、SAML IdP を変更します。
- GitHub 上の、SAML single sign-on の設定ページから、
Enable SAML authentication
のチェックマークを一旦外し、設定をSave
する - Google Workspace で GitHub 用の SAML アプリを設定する
- Google Workspace 側で表示された
Public certificate
等を GitHub に登録する - 一定期間の移行期間を再度用意し、SAML SSO を強制化する
Google Workspace を GitHub の SAML IdP として設定する
これ以降の作業をするには、Google Workspace の Admin 権限が必要です。
一応設定方法は以下のリンクに載っているのですが、少しややこしいので、こちらでも説明いたします。
- 「ウェブアプリとモバイルアプリページ」へ移動する
- 「アプリを追加」>「アプリを検索」をクリックする
- 「GitHub Business」を検索し、選択する
- 表示された情報をそれぞれコピーする
- 「続行」をクリックする
-
{your-organization}
を GitHub の Organization ID に置き換える - 「続行」をクリックする
- Google Workspace と GitHub を繋げる
GitHub の Organization ページから、Organization security
に移動します。SAML single sign-on
節で、Enable SAML authentication
をクリックします。
すると、以下の画像のようになるため、上の画像部分で表示された SAML の設定パラメータを、GitHub の設定画面に入力します。
「SHA-256 フィンガープリント」は使用しません。
Google Workspace | GitHub |
---|---|
SSO の URL | Sign on URL |
エンティティ ID | Issuer |
証明書 | Public certificate |
情報を貼り付けたら、Test SAML configuration
ボタンを押して、正常に認証画面が表示されるか確認してください。
正常に動作したのが確認できたら、Save
ボタンを押して、設定を保存してください。
最後に
以上で設定は完了です。
残りのタスクとしては、「SAML single sign-on を強制化する」ことや、「GitHub アカウントに個人アカウントの使用を許可する」などが挙げられます。
- SAML single sign-on を強制化する
- GitHub アカウントに個人アカウントの使用を許可する
Auth0 よりも簡単にセットアップできたかなと思います。
会社のセキュリティレギュレーションに基づいた認証ルール(MFA の強制等)を、Google Workspace で一元管理できるのが非常に良い点だと感じました。
これほど簡単なのであれば、GitHub 側でも公式にサポートを明言してほしいですね。
Discussion