Skip to main content

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

Troubleshooting SAML authentication

If you use SAML single sign-on (SSO) and people are unable to authenticate to access お使いの GitHub Enterprise Server インスタンス, you can troubleshoot the problem.

About problems with SAML authentication

GitHub Enterprise Server logs error messages for failed SAML authentication in the systemd journal logs for the github-unicorn container. You can review responses in this log, and you can also configure more verbose logging.

For more information about SAML response requirements, see "SAML configuration reference."

Configuring SAML debugging

You can configure GitHub Enterprise Server to write verbose debug logs for every SAML authentication attempt. You may be able to troubleshoot failed authentication attempts with this extra output.

Warnings:

  • Only enable SAML debugging temporarily, and disable debugging immediately after you finish troubleshooting. If you leave debugging enabled, the size of the logs increases much faster than usual, which can negatively impact the performance of GitHub Enterprise Server.
  • Test new authentication settings for お使いの GitHub Enterprise Server インスタンス in a staging environment before you apply the settings in your production environment. For more information, see "Setting up a staging instance."
  1. GitHub Enterprise Server の右上で、ご自分のプロフィール フォトをクリックしてから、 [Enterprise 設定] をクリックします。

    GitHub Enterprise Server のプロファイル写真をクリックしたときに表示されるドロップダウン メニューのスクリーンショット。 [エンタープライズ設定] オプションが濃いオレンジ色の枠線で強調表示されています。

  2. Enterprise アカウントのサイドバーで、 [ポリシー] をクリックします。

  3. [ポリシー] で、[オプション] をクリックします。

  4. Under "SAML debugging", select the drop-down and click Enabled.

  5. Attempt to sign into お使いの GitHub Enterprise Server インスタンス through your SAML IdP.

  6. Review the debug output in the systemd journal for github-unicorn on お使いの GitHub Enterprise Server インスタンス. For more information, see "システム ログについて."

  7. When you're done troubleshooting, select the drop-down and click Disabled.

Decoding responses

Some output in the systemd journal for github-unicorn may be Base64-encoded. You can access the administrative shell and use the base64 utility on お使いの GitHub Enterprise Server インスタンス to decode these responses. For more information, see "管理シェル (SSH) にアクセスする."

To decode the output, run the following command, replacing ENCODED_OUTPUT with the encoded output from the log.

base64 --decode ENCODED_OUTPUT

Error: "Another user already owns the account"

When a user signs into お使いの GitHub Enterprise Server インスタンス for the first time with SAML authentication, GitHub Enterprise Server creates a user account on the instance and maps the SAML NameID and nameid-format to the account.

When the user signs in again, GitHub Enterprise Server compares the account's NameID and nameid-format mapping to the IdP's response. If the NameID or nameid-format in the IdP's response no longer matches the values that GitHub Enterprise Server expects for the user, the sign-in will fail. The user will see the following message.

Another user already owns the account. Please have your administrator check the authentication log.

The message typically indicates that the person's username or email address has changed on the IdP. Ensure that the NameID and nameid-format mapping for the user account on GitHub Enterprise Server matches the user's NameID and nameid-format on your IdP. For more information, see "Updating a user's SAML NameID."

Error: Recipient in SAML response was blank or not valid

If the Recipient does not match the ACS URL for お使いの GitHub Enterprise Server インスタンス, one of the following two error messages will appear in the authentication log when a user attempts to authenticate.

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

Ensure that you set the value for Recipient on your IdP to the full ACS URL for お使いの GitHub Enterprise Server インスタンス. For example, https://ghe.corp.example.com/saml/consume.

Error: "SAML Response is not signed or has been modified"

If your IdP does not sign the SAML response, or the signature does not match the contents, the following error message will appear in the authentication log.

SAML Response is not signed or has been modified.

Ensure that you configure signed assertions for the GitHub Enterprise Server application on your IdP.

Error: "Audience is invalid" or "No assertion found"

If the IdP's response has a missing or incorrect value for Audience, the following error message will appear in the authentication log.

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

Ensure that you set the value for Audience on your IdP to the EntityId for お使いの GitHub Enterprise Server インスタンス, which is the full URL to your instance. For example, https://ghe.corp.example.com.

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

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

この問題を防ぐには、可能であれば、IdP と同じネットワーク タイム プロトコル (NTP) ソースを指すようにアプライアンスを設定することをお勧めします。 このエラーが発生した場合は、アプライアンスの時刻が NTP サーバーと適切に同期していることを確認します。 管理シェル上の chronyc コマンドを使用すれば、時間を直ちに同期させることができます。 詳しくは、「Configuring time synchronization」をご覧ください。

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