メインコンテンツへスキップ
組織のメタデータと Actions を使用して Auth0 の機能を拡張したり、API や SDK を使用してユーザー向けの組織管理ダッシュボードを構築したりできます。

利用可否は Auth0 のプランによって異なります

この機能を利用できるかどうかは、Auth0 のプランまたはカスタム契約の内容によって異なります。詳細については、Pricing を参照してください。

拡張性

組織は拡張ポイントに対応しているため、組織メタデータ内でプロパティを定義し、そのデータを Actions で利用できます。これにより、個々の顧客やアプリケーションに合わせて機能をカスタマイズできます。たとえば、サブスクリプションプランに応じて特定の顧客向けに Actions でカスタムロジックを実行できるよう、必要な情報を組織メタデータに保存できます。

Actions イベントオブジェクト

Action のイベントオブジェクトには、ユーザーの IP アドレス、アプリケーション、位置情報など、現在の認証トランザクションに関するコンテキスト情報が格納されます。 Action 内で event オブジェクトを使用してトークンの内容を変更した場合、その変更はすべての Actions の実行が完了した後のトークンに反映されます。

SDKs

メンバーが自分の組織を管理できるようにするには、メンバーにロールを割り当て、API や SDK を使用して製品内にダッシュボードを構築できます。管理者は、 (SSO) を設定し、ユーザーを組織に招待したり、メンバーを組織に割り当てたり、メンバーにロールを割り当てたりできます。 SDK を使用して組織に対して実行できる主なタスクの例を以下に示します。
以下の例では、ID トークンとアクセストークンでデフォルトで利用できる org_id クレームを参照しています。ただし、Authentication API で組織名の使用もサポートするようにテナントを設定できます。これにより、トークンには org_id クレームと org_name クレームの両方が含まれます。これらが存在する場合は、受信した値が信頼できるエンティティに対応していることを確認するため、org_id に加えて org_name クレームも検証してください。一般に、トークンの検証には組織 ID を使用する方法が推奨されます。ただし、ユースケースによっては組織名を使用することもできます。組織名を使用してトークンを検証する場合の影響については、Use Organization Names in Authentication API を参照してください。

ユーザーを特定の組織にログインさせたい

新しいクライアントを定義する際は、組織 パラメーターに組織 ID を渡します。次にコールバック時に、返された に含まれる 組織 が、/authorize リクエストで送信したものと同一であることを確認してください。これには、org_id クレームを expnonce などの他のクレームと同様に検証します。 詳しくは、以下を参照してください。

アプリケーションから、認証されたユーザーがログインした組織を取得したい

ユーザーが組織を使用して認証された場合、組織 ID は IDトークン の org_id クレームに含まれます。Auth0 SPA SDK を使用すると、次のように取得できます。 const { org_id } = await client.getIdTokenClaims();

API から、アクセストークンの発行時に使用された組織を取得したい

ユーザーが組織を使用して認証され、 が指定されている場合、 になり、ユーザーがログインした組織の ID を含む org_id クレームが含まれます。 これは、次の Ruby の例のように、バックエンドでほかのクレームとあわせて検証できます。
class JsonWebToken
  def self.verify(token)
    decoded = JWT.decode(token, nil,
               true, # このトークンの署名を検証する
               algorithms: 'RS256',
               iss: 'https://YOUR_DOMAIN/',
               verify_iss: true,
               aud: Rails.application.secrets.auth0_api_audience,
               verify_aud: true) do |header|
      jwks_hash[header['kid']]
    end

    // デコードされたトークンから組織IDの値を取得する
    org = decoded[0]['org_id']
  end
end
Auth0 ドメインを確認するAuth0 ドメインは、テナント名、リージョンのサブドメイン (テナントが米国リージョンにあり、2020 年 6 月より前に作成された場合を除く) 、および .auth0.com を組み合わせたものです。たとえば、テナント名が travel0 の場合、Auth0 ドメイン名は travel0.us.auth0.com になります。 (テナントが米国にあり、2020 年 6 月より前に作成された場合、ドメイン名は https://travel0.auth0.com になります。)カスタムドメインを使用している場合は、そのカスタムドメイン名を使用します。

詳細情報