Skip to main content

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2023-01-18. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise にアップグレードします。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせく� さい

SAML認証

SAML シングル サインオン (SSO) を使っていて、ユーザーが your GitHub Enterprise Server instanceにアクセスするための認証を行うことができない� �合、問題のトラブルシューティングを行うことができます。

SAML 認証に関する問題について

GitHub Enterprise Server は、 /var/log/github/auth.log の認証ログに失敗した SAML 認証のエラーメッセージをログ記録します。 このログ ファイルで応答を確認したり、より詳細なログ記録を構成したりすることもできます。

SAML 応答の要件の詳細については、「SAML 構成リファレンス」を参照してく� さい。

SAML デバッグの構成

GitHub Enterprise Server を構成して、SAML 認証の試行ごとに詳細なデバッグ ログを /var/log/github/auth.log に書き込むことができます。 この追� の出力を使用して、失敗した認証試行のトラブルシューティングを行うことができる� �合があります。

警告:

  • SAML デバッグは一時的にのみ有効にし、トラブルシューティングが完了したらすぐにデバッグを無効にします。 デバッグを有効のままにすると、ログのサイズが通常よりも大幅に速くなり、GitHub Enterprise Server のパフォーマンスに悪影響を及ぼす可能性があります。
  • 運用環境で設定を適用する前に、ステージング環境で your GitHub Enterprise Server instanceの新しい認証設定をテストします。 詳細については、「ステージング インスタンスのセットアップ」を参照してく� さい。
  1. GitHub Enterprise Server の右上で、ご自分のプロファイル写真をクリックしてから、 [Enterprise 設定] をクリックします。 GitHub Enterprise Server のプロファイル写真のドロップダウン メニューの [自分の Enterprise] 1. Enterprise サイドバーで、 [ポリシー] をクリックします。 [Enterprise アカウント] サイドバーの [ポリシー] タブ 1. [ポリシー] で、 [オプション] をクリックします。 [Enterprise アカウント設定] サイドバーの [オプション] タブ

  2. [SAML デバッグ] でドロップダウンを選択し、 [有効] をクリックします。

    SAML デバッグを有効にするドロップダウンのスクリーンショット

  3. SAML IdP を介して your GitHub Enterprise Server instanceへのサインインを試みます。

  4. your GitHub Enterprise Server instanceで /var/log/github/auth.log のデバッグ出力を確認します。

  5. トラブルシューティングが完了したら、ドロップダウンを選択し、 [無効] をクリックします。

    SAML デバッグを無効にするドロップダウンのスクリーンショット

auth.log での応答のデコード

auth.log の一部の出力は Base64 でエンコードされる� �合があります。 管理シェルにアクセスし、your GitHub Enterprise Server instanceの base64 ユーティリティを使用して、これらの応答をデコードできます。 詳細については、「管理シェル (SSH) にアクセスする」を参照してく� さい。

$ base64 --decode ENCODED_OUTPUT

エラー:「別のユーザがすでにアカウントを所有しています」

ユーザーが SAML 認証を使って初めて your GitHub Enterprise Server instanceにサインインすると、GitHub Enterprise Server によってインスタンスにユーザー アカウントが作成され、SAML NameID がアカウントにマップされます。

ユーザーが再びサインインすると、GitHub Enterprise Server は、アカウントの NameID マッピングと IdP の応答を比較します。 IdP の応答の NameID が、GitHub Enterprise Server がユーザーに対して想定している NameID と一致しなくなると、サインインは失敗します。 ユーザには次のメッセージが表示されます。

別のユーザが既にアカウントを所有しています。 管理者に認証ログを確認するようご依� �く� さい。

このメッセージは通常、その人のユーザ名またはメールアドレスが IdP で変更されたということを示します。 GitHub Enterprise Server のユーザー アカウントの NameID マッピングが、IdP 上のユーザーの NameID と一致していることを確認します。 詳細については、「ユーザーの SAML NameID の更新」を参照してく� さい。

SAMLレスポンスが署名されていなかった� �合、あるいは署名が内容とマッチしなかった� �合、authログに以下のエラーメッセージが残されます。

Recipient が your GitHub Enterprise Server instanceの ACS URL と一致しない� �合、ユーザーが認証を試みたときに、次の 2 つのエラー メッセージのいずれかが認証ログに表示されます。

Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.

IdP の Recipient の値を、your GitHub Enterprise Server instanceの完全な ACS URL に設定してく� さい。 たとえば、https://ghe.corp.example.com/saml/consume のようにします。

エラー:「SAML レスポンスが署名されていないか、変更されています」

IdP が SAML レスポンスに署名しない� �合、または署名が内容と一致しない� �合、次のエラーメッセージが認証ログに表示されます。

SAML Response is not signed or has been modified.

IdP で GitHub Enterprise Server アプリケーションの署名済みアサーションを設定していることを確認してく� さい。

エラー:「Audience が無効です」または「アサーションが見つかりません」

IdP の応答に Audience の値がないか、または正しくない� �合は、認証ログに次のエラー メッセージが表示されます。

Audience is invalid. Audience attribute does not match https://<em>YOUR-INSTANCE-URL</em>

IdP の Audience の値を your GitHub Enterprise Server instanceの EntityId に設定します。これは、インスタンスの完全な URL です。 たとえば、「 https://ghe.corp.example.com 」のように入力します。

エラー: "Current time is earlier than NotBefore condition" (現在の時刻は NotBefore 条件より前です)

このエラーは、IdP と GitHub Enterprise Server の間の時間差が大きすぎる� �合に発生することがあります。これはセルフホステッド IdP でよく発生します。

この問題を防ぐには、可能であれば、IdP と同じネットワーク タイ�  プロトコル (NTP) ソースを指すようにアプライアンスを設定することをお勧めします。 このエラーが発生した� �合は、アプライアンスの時刻が NTP サーバーと適切に同期していることを確認します。

IdP の立� �で ADFS を使っている� �合は、GitHub のために ADFS の NotBeforeSkew も 1 分に設定します。 NotBeforeSkew を 0 に設定すると、ミリ秒などの非常に短い時間差でも認証の問題が発生する可能性があります。