このガイドでは、API呼び出しを使用してIDプロバイダーからの
external_idに基づいてDiscourseユーザーを見つける方法を説明します。
必要なユーザーレベル: Administrator
外部認証システムを使用する場合、Discourseは2つのユーザーIDを追跡します。Discourseのuser_idと、IDプロバイダーからのexternal_idです。external_idに基づいてDiscourseユーザーを検索する必要がある場合は、この#howto記事が最適です!以下で、この操作を実行する方法を学びます。
API設定
まず、管理者APIキーを正しく設定していることを確認してください。Discourse APIの設定と使用方法の詳細については、Discourse APIドキュメントを参照してください。
DiscourseConnect
DiscourseConnect(以前はDiscourse SSOとして知られていました)を使用している場合は、次のAPI呼び出しでユーザーを取得できます。
curl https://myforum.example.com/u/by-external/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
{external-id}を検索しているユーザーの実際の外部IDに置き換えてください。ユーザーが見つかった場合、その情報が返されます。見つからなかった場合は、404が返されます。
その他の認証プロバイダー
これは、すべてのコアメソッド、および「ManagedAuthenticator」フレームワークを使用するプラグイン(discourse-openid-connectやdiscourse-oauth2-basicなど)で機能します。
まず、認証機関の「プロバイダー名」を見つけます。これは通常、コールバックURLに含まれています(例:コールバックURLが/auth/oauth2_basic/callbackの場合、プロバイダー名はoauth2_basicです)。
次に、次のようにユーザーを取得できます。
curl https://myforum.example.com/u/by-external/{provider}/{external-id}.json \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1"
{provider}を実際のプロバイダー名に、{external-id}を検索しているユーザーの外部IDに置き換えてください。ユーザーが見つかった場合、その情報が返されます。見つからなかった場合は、404が返されます。