Skip to main content

シングル サインオンでの認証について

ID プロバイダー (IdP) を介して認証を行うことで、シングル サインオン (SSO) を使う organization にアクセスできます。

SSO を使用する認証について

シングル サインオン (SSO) により、organization 所有者と Enterprise 所有者は、リポジトリ、issue、pull request などの organization リソースへのアクセス権を制御し、セキュリティで保護することができます。 組織の所有者は、 GitHub の個人アカウントを招待して、SSO を使用する組織に参加できます。これにより、組織に貢献し、既存の ID と貢献を GitHubに保持できます。

リポジトリ、プロジェクト、パッケージなど、Enterprise 内の SSO で保護された internal リソースにアクセスするには、Enterprise 内の organization に対する SSO セッションが必要です。 これにより、ユーザーが各 organization に参加しなくても、Enterprise 内の organization 間でコードと作業を共有できます。

マネージド ユーザーを含む Enterpriseのメンバーである場合は、代わりに、自分用にプロビジョニングされ、企業によって制御される新しいアカウントを使用します。 詳しくは、「GitHub アカウントの種類」をご覧ください。

SSO を使用する組織内のほとんどのリソースにアクセスしようとすると、 GitHub は組織の SSO ID プロバイダー (IdP) にリダイレクトして認証します。 IdP でアカウントを使用して正常に認証されると、IdP によって GitHubにリダイレクトされ、組織のリソースにアクセスできるようになります。

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

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

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

メモ

外部コラボレーターには SSO 認証は必要ありません。 外部コラボレーターの詳細については、「組織の役割」を参照してください。

ブラウザーで組織の SAML IdP で最近認証した場合、SAML SSO を使用する GitHub 組織にアクセスすると、自動的に承認されます。 最近ブラウザで Organization の SAML IdP が認証されていない場合は、Organization にアクセスする前に SAML IdP で認証を受ける必要があります。

GitHubで organization のリソースの認証を受けてアクセスするには、IdP で定期的に認証を受けておく必要があります。 IdP による別の指定がない限り、このログイン間隔は 24 時間です。 このように定期的にログインしなければならないことから、アクセスの長さには制限があり、アクセスを続行するには再認証が必要になります。 アクティブな SSO セッションは、セキュリティの設定で表示し、管理できます。 詳しくは、「アクティブな SSO セッションの表示と管理」をご覧ください。

リンクされた外部 ID

IdP アカウントで認証し、 GitHubに戻ると、 GitHub は、 GitHub 個人アカウントとサインインした外部 ID の間の組織または企業のリンクを記録します。 このリンク ID は、その組織のメンバーシップを検証するために使用されます。また、組織またはエンタープライズの設定に応じて、あなたがどの組織やチームのメンバーになっているかを判断するためにも使用されます。 各 GitHub アカウントは、組織ごとに 1 つの外部 ID にリンクできます。 同様に、各外部 ID は、組織内の 1 つの GitHub アカウントにリンクできます。

別の GitHub アカウントに既にリンクされている外部 ID でサインインすると、その ID でサインインできないことを示すエラー メッセージが表示されます。 この状況は、組織内で新しい GitHub アカウントを使用しようとしている場合に発生する可能性があります。 その GitHub アカウントでその外部 ID を使用しない場合は、その外部 ID からサインアウトしてから、SSO ログインを繰り返す必要があります。 GitHub アカウントでその外部 ID を使用する場合は、新しいアカウントにリンクできるように、以前のアカウントから外部 ID のリンクを解除するように管理者に依頼する必要があります。 Organization または Enterprise の設定によっては、管理者が ID プロバイダー内で ID を再割り当てする必要がある場合もあります。 詳しくは、「組織に対するメンバーの SAML アクセスの表示と管理」をご覧ください。

サインインに使用する外部 ID が、現在 GitHub アカウントにリンクされている外部 ID と一致しない場合は、アカウントを再リンクしようとしているという警告が表示されます。 外部 ID を使用してアクセスとチーム メンバーシップを管理するため、新しい外部 ID を引き続き使用すると、 GitHub内のチームや組織にアクセスできなくなる可能性があります。 今後、その新しい外部 ID を認証に使用することがわかっている場合にのみ続けます。

SSO を使用した personal access tokenと SSH キーの承認

コマンド ラインで API または Git を使用して、SSO を使用する組織内の保護されたコンテンツにアクセスするには、HTTPS 経由で承認された personal access token または承認された SSH キーを使用する必要があります。

personal access tokenまたは SSH キーがない場合は、コマンド ラインのpersonal access tokenを作成するか、新しい SSH キーを生成できます。 詳細については、「個人用アクセス トークンを管理する」または「新しい SSH キーを生成して ssh-agent に追加する」を参照してください。

SSO を使用または適用する組織で新規または既存の personal access token または SSH キーを使用するには、トークンを承認するか、組織で使用する SSH キーを承認する必要があります。 詳細については、「シングル サインオンに使用する個人用アクセス トークンの認可」または「シングル サインオンに使用する SSH キーの認可」を参照してください。

OAuth apps、GitHub Apps、SSO について

SSO を使用または適用する組織にアクセスするには、 OAuth app または GitHub App を承認するたびにアクティブな SSO セッションが必要です。 アプリにサインインするときに SSO を必要とする organization に対するアクティブなセッションがない場合、アプリはその organization にアクセスできません。 ブラウザーで https://github.com/orgs/ORGANIZATION-NAME/sso または https://github.com/enterprises/ENTERPRISE-NAME/sso に移動して、アクティブな SSO セッションを作成できます。

企業または組織の所有者が組織の SSO を有効または適用した後、SSO を使用して初めて認証した後、組織へのアクセスを以前に承認した OAuth apps または GitHub Apps を再認証する必要があります。

承認した OAuth apps を表示するには、 OAuth apps ページにアクセスします。 承認した GitHub Apps を表示するには、 GitHub Apps ページにアクセスします。

詳しくは、「SAML アプリと GitHub Apps」をご覧ください。

参考資料