GitHub Enterprise CloudでSAML SSOするときのIdPに「Okta」を使う場合の手順

2024.03.31

今回検証するシナリオは以下のとおりです。

「GitHub Enterprise Cloud (GHEC)のプライベートリポジトリに、SAML SSOを使用して認証プロセスを提供する」

このシナリオをOktaをつかって実現してみます。

先日、Auth0でこちらのシナリオを検証しています。よければ以下の記事も御覧ください。

今回は、Auth0のSAMLフェデレーションではなく、Oktaの GitHub Enterprise Cloud - Organization をつかいます。

やってみた

詳しい手順は GitHub Docs「Configure GitHub Enterprise Cloud as SAML Service Provider」を確認してください。

■Okta側の設定

統合アプリケーションを作成します。

Application → Browse App Catalog から「GitHub…」と検索して「GitHub Enterprise Cloud - Organization 」を選択します。

GeneralタブでGHECのOrganization名を設定します。

Sign OnタブからSAMLフェデレーションに必要な情報を取得します。

■GHEC側の設定

Enterprise配下のOrganizationに遷移します。

SAML single sign-on を選択します。

Okta側で取得したSAML IdPの情報を入力します。

Test SAML configurationで動作確認しておきましょう。

■動作確認

外部パートナーのユーザーをOktaに招待します。

Directory → People → Add person からユーザー追加します。

Person一覧からActivateすると、ユーザーのメールアドレス宛にOktaへの招待メールが届きます。

ユーザーがActivateが完了すると、ユーザーはOktaのダッシュボードに遷移します。

次に、先ほど作成した統合アプリケーションにアサインをします。

するとユーザーのメールアドレス宛にOrganizationへの招待メールが届きます。

ユーザーは、Oktaでログインします。

すると、GitHubアカウントとの連携を求められます。

今回は外部パートナーは既に開発用GitHubアカウントを持っていることとします。

GitHubアカウントでログインするとプライベートリポジトリにアクセスできるようになります。

感想

今回のやり方は、Auth0でSAML SSOするやり方と違って、Okta内でメンバーを管理できる点がメリットのように思います。

Oktaは、Oktaを中心に様々なサービスと連携することができるため、社内ユーザーをGHECに繋げたい場合はOktaを。

不特定多数の社外ユーザーを繋げたい場合はAuth0を使うのがよさそうです。

以上です。