Skip to main content

SAML シングルサインオンを使うアイデンティティおよびアクセス管理について

ユーザのアイデンティティとアプリケーションをアイデンティティプロバイダ (IdP) で集中管理する場合、Security Assertion Markup Language (SAML) シングルサインオン (SSO) を設定して GitHub での Organization のリソースを保護することができます。

注: SAML シングル サインオンを使うには、Organization で GitHub Enterprise Cloud を使用している必要があります。 GitHub Enterprise Cloud を無料で試す方法の詳細については、「GitHub Enterprise Cloud の試用版を設定する」を参照してください。

SAML SSO について

SAML シングル サインオン (SSO) により、GitHub Enterprise Cloud を使用する組織の所有者とエンタープライズの所有者は、リポジトリ、issue、pull request などの組織のリソースへのアクセス権を制御し、セキュリティで保護することができます。

SAML SSO を構成する場合、組織のメンバーは引き続き GitHub.com で個人アカウントにサインインします。 組織内のほとんどのリソースは、メンバーがアクセスすると、GitHub によってメンバーは IdP にリダイレクトされ、認証を受けます。 認証に成功すると、IdP はメンバーを GitHub にリダイレクトして戻します。 詳しくは、「SAMLのシングルサインオンでの認証について」を参照してください。

注: SAML SSO は、GitHub の通常のサインイン プロセスに代わるものではありません。 Enterprise Managed Users を使用する場合を除き、メンバーは GitHub.com で引き続き個人アカウントにサインインし、各個人アカウントは IdP で外部 ID にリンクされます。

次のように特定の方法でパブリック リポジトリにアクセスする場合、IdP 認証は必要ありません。

  • リポジトリの概要ページとファイルの内容を GitHub 上で表示する
  • リポジトリをフォークする
  • リポジトリのクローンなど、Git を使って読み取り操作を実行する

issue、pull request、プロジェクト、リリースの閲覧など、パブリック リポジトリへのその他のアクセスには認証が必要です。

注: SAML 認証は、外部コラボレーターにも必要ありません。 外部コラボレーターの詳細については、「Organizationのロール」を参照してください。

Organization のオーナーは、個々の Organization に SAML SSO を適用できます。または、Enterprise のオーナーは、Enterprise アカウント内のすべての Organization に SAML SSO を適用できます。 詳細については、「ID とアクセス管理について」および「Enterprise 向けの SAML シングルサインオンを設定する」を参照してください。

Organization で SAML SSO を有効化する前に、IdP を Organization に接続する必要があります。 詳しくは、「アイデンティティプロバイダを Organization に接続する」を参照してください。

1 つの Organization に対して、SAML SSO は無効化、強制なしの有効化、強制ありの有効化ができます。 Organization に対して SAML SSO を有効にし、Organization のメンバーが IdP での認証に成功した後、SAML SSO 設定を強制できます。 GitHub 組織への SAML SSO の適用について詳しくは、「Organization で SAML シングルサインオンを施行する」をご覧ください。

認証を受けて Organization のリソースにアクセスするために、メンバーは定期的に IdP の認証を受ける必要があります。 このログイン間隔は利用しているアイデンティティプロバイダ (IdP) によって指定されますが、一般的には 24 時間です。 このように定期的にログインしなければならないことから、アクセスの長さには制限があり、ユーザがアクセスを続行するには再認証が必要になります。

コマンドラインで API と Git を使用して、組織の保護されているリソースにアクセスするには、メンバーが personal access token または SSH キーで認可および認証を受ける必要があります。 詳細については、「SAMLシングルサインオンで利用するために個人アクセストークンを認可する」および「SAMLシングルサインオンで利用するためにSSHキーを認可する」を参照してください。

組織へのアクセスにメンバーが初めて SAML SSO を使うと、GitHub により、組織、GitHub.com 上のメンバーアカウント、IdP 上のメンバーのアカウントをリンクするレコードが自動的に作成されます。 Organization または Enterprise アカウントのメンバーについて、リンクされた SAML アイデンティティ、アクティブセッション、認可されたクレデンシャルの表示と取り消しが可能です。 詳細については、「組織に対するメンバーの SAML アクセスの表示と管理」および「Enterprise へのユーザの SAML アクセスの表示および管理」を参照してください。

新しいリポジトリを作成するときにメンバーが SAML SSO セッションでサインインする場合、そのリポジトリのデフォルトの可視性はプライベートになります。 それ以外の場合、デフォルトの可視性はパブリックです。 リポジトリの可視性について詳しくは、「リポジトリについて」をご覧ください。

OAuth appを認可するために、Organization メンバーにはアクティブな SAML セッションが必要です。 GitHub サポート ポータル に連絡すれば、この要件をオプトアウトできます。 ただし、この要件をオプトアウトすることを GitHub Enterprise Cloud はお勧めしません。Organization でアカウント乗っ取りやデータ漏えいのリスクが高くなるからです。

GitHub Enterprise CloudはSAMLシングルログアウトをサポートしていません。 アクティブなSAMLセッションを終了させるには、ユーザーは直接SAML IdPでログアウトしなければなりません。

サポートされているSAMLサービス

GitHub Enterprise Cloud は、SAML2.0 標準を実装し IdP を使用した SAML SSO をサポートします。 詳細については、OASIS の Web サイトの SAML Wiki を参照してください。

GitHub は、次の IdP を正式にサポートし、内部的にテストします。

  • Microsoft Active Directory フェデレーション サービス (AD FS)
  • Microsoft Entra ID (旧称 Azure AD)
  • Okta
  • OneLogin
  • PingOne
  • Shibboleth

一部の IdPは、SCIM を介した GitHub Organization へのプロビジョニングアクセスをサポートしています。 詳しくは、「Organization の SCIM について」を参照してください。

SCIM のこの実装は、エンタープライズ アカウントまたは マネージド ユーザーを含む Organization では使えません。 エンタープライズで Enterprise Managed Users が有効になっている場合、SCIM の別の実装を使う必要があります。 それ以外の場合、SCIM はエンタープライズレベルでは使えません。 詳しくは、「エンタープライズ マネージド ユーザーの SCIM プロビジョニングの構成」を参照してください。

SAML SSO で Organization にメンバーを追加する

SAML SSO を有効にした後、Organization に新しいメンバーを追加する方法は複数あります。 Organization のオーナーは、GitHub Enterprise Cloud で手作業または API を使って、新しいメンバーを招待できます。 詳細については、「組織参加へのユーザーの招待」および「Organization の REST API エンドポイント」を参照してください。

Organization のオーナーからの招待なしで新しいユーザーをプロビジョニングするには、URL https://github.com/orgs/ORGANIZATION/sso/sign_up を使用し、ORGANIZATION を、ご自分の Organization の名前に置き換えます。 たとえば、あなたの IdP にアクセスできる人なら誰でも、IdP のダッシュボードにあるリンクをクリックして、あなたの GitHub Organization に参加できるよう、IdP を設定できます。

注: https://github.com/orgs/ORGANIZATION/sso/sign_up を使用した新しいユーザーのプロビジョニングは、SAML SSO が組織レベルで構成されている場合にのみサポートされ、SAML SSO がエンタープライズ アカウント レベルで構成されている場合はサポートされません。 エンタープライズ アカウント用の SAML SSO について詳しくは、「エンタープライズ IAM の SAML について」をご覧ください。

IdP が SCIM をサポートしている場合、GitHub は、IdP でアクセス権限が付与されたとき Organization に参加するよう自動的にメンバーを招待できます。 SAML IdP での メンバーの GitHub Organization へのアクセス権限を削除すると、そのメンバーは GitHub Organization から自動的に削除されます。 詳しくは、「Organization の SCIM について」を参照してください。

ユーザーを使用する組織は、ID プロバイダーを介して Team 同期を使用し、組織メンバーを Team に自動的に追加と削除できます。 詳細については、「Team をアイデンティティ プロバイダ グループと同期する」を参照してください。

参考資料