組織のカスタム開発

組織メタデータとActionsを使用してAuth0の機能を拡張するか、APIやSDKを用いてユーザー向けの組織管理ダッシュボードを作成することができます。

利用可能性はAuth0プランによって異なる

この機能が利用できるかどうかは、ご利用のAuth0プラン(または契約)によります。詳細については、「価格設定」をお読みください。

拡張性

組織は拡張ポイントに対応しているため、組織メタデータにプロパティーを定義して、そのデータをActionsに反映することができます。これにより、各顧客またはアプリケーションのために機能をカスタマイズできます。たとえば、組織のメタデータに特定の顧客のサブスクリプションプラン情報を保管しておくと、カスタムロジックをActionsで実行することができます。

アクションのイベントオブジェクト

アクションのイベントオブジェクトには、ユーザーのIPアドレスやアプリケーション、位置情報など、実行中の認証トランザクションに関するコンテキスト情報が保管されます。

アクション内でイベントオブジェクトを使用してトークンの内容を変更すると、すべてのルールの実行が終わった後でトークンに反映されます。

SDK

メンバーが自分の組織を独自に管理できるように、メンバーにロールを割り当てて、APIやSDKを用いてプロダクトにダッシュボードを作成することができます。管理者はシングルサインオン(SSO)を構成したり、ユーザーを組織に招待したり、メンバーを組織に割り当てたり、メンバーに役割を割り当てたりできます。

SDKを利用して組織に実行すると良いタスクには、以下のような例があります。

ユーザーのログイン先に特定の組織を指定したい

新しいクライアントを定義する際に、組織IDを組織パラメーターに渡します。次にコールバック時に、IDトークンで返された組織が/authorize要求で送信された組織と同じであることを確認します。そのためには、org_idクレームをexpnonceなどの他のクレームが検証されたのと同じ方法で検証します。

詳細については、以下をお読みください。

独自のアプリケーションを使用して、認証ユーザーのログイン先組織を取得したい

ユーザーが組織を使用して認証された場合には、組織IDがIDトークンのorg_idクレームに表示されます。Auth0 SPA SDKを使用すると、これは次のようにして取得することができます:

const { org_id } = await client.getIdTokenClaims();

独自のAPIを使用して、アクセストークンが発行された組織を取得したい

ユーザーが組織を使用して認証され、オーディエンスが指定された場合、アクセストークンはJWTになり、ユーザーがログインした組織IDを持つorg_idクレームが含まれます。

これは、他のクレームと併せてバックエンドで検証されます。以下はRubyでの例です。

class JsonWebToken
  def self.verify(token)
    decoded = JWT.decode(token, nil,
               true, # Verify the signature of this token
               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

    // Retrieve the organization ID value from the decoded token
    org = decoded[0]['org_id']
  end
end

Was this helpful?

/

もっと詳しく