About problems with SAML authentication
GitHub Enterprise Server logs error messages for failed SAML authentication in the authentication log at /var/log/github/auth.log. You can review responses in this log file, 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 to /var/log/github/auth.log for every SAML authentication attempt. You may be able to troubleshoot failed authentication attempts with this extra output.
警告:
- Only enable SAML debugging temporarily, and disable debugging immediately after you finish troubleshooting. If you leave debugging enabled, the size of your log may increase 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. 詳しい情� �については "ステージングインスタンスのセットアップ"を参照してく� さい。
-
GitHub Enterprise Serverの右上で、プロフィール写真をクリックし、続いてEnterprise settings(Enterpriseの設定)をクリックしてく� さい。
-
Enterpriseアカウントのサイドバーで、 Policies(ポリシー)をクリックしてく� さい。
-
Policies(ポリシー)の下で、Options(オプション)をクリックしてく� さい。
-
Under "SAML debugging", select the drop-down and click Enabled.
-
Attempt to sign into GitHub Enterprise Serverインスタンス through your SAML IdP.
-
Review the debug output in /var/log/github/auth.log on GitHub Enterprise Serverインスタンス.
-
When you're done troubleshooting, select the drop-down and click Disabled.
Decoding responses in auth.log
Some output in auth.log may be Base64-encoded. You can access the administrative shell and use the base64
utility on GitHub Enterprise Serverインスタンス to decode these responses. 詳しい情� �については「管理シェル(SSH)にアクセスする」を参照してく� さい。
$ base64 --decode ENCODED OUTPUT
エラー:「別のユーザがすでにアカウントを所有しています」
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
to the account.
ユーザが再度サインインすると、GitHub Enterprise Server はアカウントの NameID
マッピングを IdP のレスポンスと比較します。 IdP のレスポンスの NameID
が、GitHub Enterprise Server がユーザに対して想定している NameID
とマッチしなくなると、サインインは失敗します。 ユーザには次のメッセージが表示されます。
別のユーザが既にアカウントを所有しています。 管理者に認証ログを確認するようご依� �く� さい。
このメッセージは通常、その人のユーザ名またはメールアドレスが IdP で変更されたということを示します。 Ensure that the NameID
mapping for the user account on GitHub Enterprise Server matches the user's NameID
on your IdP. For more information, see "Updating a user's SAML NameID
."
SAMLレスポンスが署名されていなかった� �合、あるいは署名が内容とマッチしなかった� �合、authログに以下のエラーメッセージが残されます。
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インスタンス. たとえば、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>
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. たとえば、https://ghe.corp.example.com
などです。