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 にリンクされます。

Organization のオーナーは、個々の Organization に SAML SSO を適用できます。または、Enterprise のオーナーは、Enterprise アカウント内のすべての Organization に SAML SSO を適用できます。 詳細については、「エンタープライズ向けの SAML シングル サインオンの構成」を参照してください。

注:

  • 組織のメンバーは、SAML 認証がなくても、パブリック リソースの表示、複製、フォークなどの読み取り操作を実行できます。
  • SAML 認証は、外部コラボレーターにも必要ありません。 外部コラボレーターの詳細については、「Organization のロール」を参照してください。

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

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

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

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

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

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

OAuth Appを認可するために、Organization メンバーにはアクティブな SAML セッションが必要です。 GitHub Support に連絡すれば、この要件をオプトアウトできます。 ただし、この要件をオプトアウトすることを 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 を正式にサポートし、内部的にテストします。

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

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

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

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

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

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

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

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

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

参考資料