Skip to main content

アイデンティティとアクセス管理のトラブルシューティング

OrganizationのSAML SSO、Team同期、アイデンティティプロバイダ(IdP)との接続に関するエラーに対する一般的なトラブルシューティングをレビューして解決してください。

プロビジョニングされていない、あるいはSCIMによってプロビジョニング解除されたユーザがいる

ユーザのプロビジョニングの問題が生じた場合、ユーザがSCIMのメタデータを欠いているかどうかをチェックすることをおすすめします。

If SCIM provisioning is implemented for your organization, any changes to a user's organization membership should be triggered from the identity provider. If a user is invited to an organization manually instead of by an existing SCIM integration, their user account may not get properly linked to their SCIM identity. This can prevent the user account from being deprovisioned via SCIM in the future. If a user is removed manually instead of by an existing SCIM integration, a stale linked identity will remain, which can lead to issues if the user needs to re-join the organization.

OrganizationのメンバーがSCIMのメタデータを欠いている場合は、IdPを通じてそのユーザに対し、手作業でSCIMをプロビジョニングし直すことができます。

SCIMメタデータを欠いたユーザの監査

期待どおりにプロビジョニングされていない、あるいはプロビジョニング解除されたユーザがいると考えられる、あるいはいることに気づいた場合は、Organizationのすべてのユーザを監査することをおすすめします。

ユーザがSCIMアイデンティティ(SCIMメタデータ)を外部アイデンティティに持っているかをチェックするには、GitHub上で一人ずつOrganizationメンバーのSCIMメタデータをレビューするか、GitHub APIを使ってプログラムですべてのOrganizationメンバーをチェックできます。

GitHub上のOrganizationメンバーの監査

Organizationのオーナーとして、一人のOrganizationメンバーにSCIMメタデータがあることを確認するには、<organization><username>を置き換えて以下のURLにアクセスしてください。

https://github.com/orgs/<organization>/people/<username>/sso

ユーザの外部アイデンティティにSCIMメタデータが含まれているなら、そのページにはSCIMアイデンティティセクションが表示されるはずです。 外部アイデンティティにSCIMメタデータが含まれていないなら、SCIMアイデンティティセクションは存在しません。

GitHub APIを通じたOrganizationメンバーの監査

Organizationオーナーは、SCIM REST APIあるいはGraphQLでクエリを行い、SCIMでプロビジョニングされたOrganizationのすべてのアイデンティティをリストできます。

REST API を使用する

SCIM REST APIは、外部アイデンティティの下でSCIMメタデータが展開されているユーザのデータだけを返します。 Organizationの全メンバーのリストと、SCIMでプロビジョニングされているアイデンティティのリストを比較することをおすすめします。

詳しい情報については、以下を参照してください。

GraphQLを利用する

このGraphQLのクエリは、Organizationの各ユーザのSAMLのNameId、SCIMのUserName及びGitHubのユーザ名(login)を表示します。 このクエリを使うには、ORGをOrganiozation名で置き換えてください。

{
  organization(login: "ORG") {
    samlIdentityProvider {
      ssoUrl
      externalIdentities(first: 100) {
        edges {
          node {
            samlIdentity {
              nameId
            }
            scimIdentity {
              username
            }
            user {
              login
            }
          }
        }
      }
    }
  }
}
curl -X POST -H "Authorization: Bearer " -H "Content-Type: application/json" -d '{ "query": "{ organization(login: \"ORG\") { samlIdentityProvider { externalIdentities(first: 100) { pageInfo { endCursor startCursor hasNextPage } edges { cursor node { samlIdentity { nameId } scimIdentity {username}  user { login } } } } } } }" }'  https://api.github.com/graphql

GraphQL APIの利用に関する詳しい情報については、以下を参照してください。

アイデンティティプロバイダを介したユーザのSCIM再プロビジョニング

IdPを介して、ユーザのSCIMを手動で再プロビジョニングできます。 たとえば、Oktaのプロビジョニングのエラーを解決するために、Oktaの管理ポータルで、GitHubアプリケーションに対してユーザの割り当てを解除してから割り当て直すことができます。 これにより、Oktaはそれらのユーザに対するSCIMメタデータをGitHubに展開するAPIコールを発行します。 詳しい情報についてはOktaのドキュメンテーションの「Unassign users from applications」あるいは「Assign users to applications」を参照してください。

ユーザのSCIMアイデンティティが作成されたことを確認するには、SCIMの外部アイデンティティを持っていないことが確認された一人のOrganizationメンバーで、このプロセスをテストすることをおすすめします。 手動でIdP内のユーザを更新したら、ユーザのSCIMアイデンティティが作成されたかをGitHub の SCIM APIを使ってチェックできます。 詳しい情報については「ユーザのSCIMメタデータの欠如の監査」あるいはREST APIエンドポイントの「ユーザのSCIMプロビジョニング情報の取得」を参照してください。

ユーザのSCIMの再プロビジョニングでもうまくいかない場合は、GitHubサポートにお問い合わせください。