委任管理拡張機能v3

委任管理拡張機能(DAE)を使うと、他の領域へのアクセスを許可することなく、選択したユーザーグループに管理者権限を付与できるようになります。

DAEを構成する

DAEを構成するには、必ず以下を行います。

  1. Auth0でアプリケーションを登録する

  2. データベース接続を作成する

  3. Auth0のアプリケーションで他のすべての接続を無効にする

  4. データベース接続にユーザーを作成する

  5. ユーザーにロールを割り当てる

  6. 拡張機能をインストールして構成する

  7. 拡張機能を使用する

Auth0でアプリケーションを登録する

まずは、委任管理拡張機能がユーザーページの管理者権限のあるユーザーに公開するアプリケーションを作成します。これを行うには、Auth0で委任管理アプリケーションを作成します。

作成したら、アプリケーションのClient ID(クライアントID)]値をメモしてください。

データベース接続を作成する

この例では、データベース接続が、ユーザー領域にアクセスが許可されたユーザーのソースになります。これを構成するには、データベース接続を作成します。

接続をセットアップする際には以下を行います。

  • HelpDeskなど、適切な接続名を使用する

  • [Disable Sign Ups(サインアップを無効にする)]を有効にするこれにより、セキュリティ保護のため、データベース接続へのリンクを持っているユーザーでも自分自身をサインアップすることができなくなります。

Auth0のアプリケーションで他のすべての接続を無効にする

デフォルトでは、新しいアプリケーションを作成するときに、テナントに関連付けられたすべての接続が有効化されます。この例では、新しく作成したデータベース接続以外の接続をすべて無効にします。これにより、既存の接続を使って自分自身を追加できなくなるため、アプリケーションのセキュリティ保護に役立ちます。

これを構成するには、アプリケーション接続を更新します。

データベース接続にユーザーを作成する

続けるには、少なくとも1人のユーザーを作成し、接続に関連付ける必要があります。

ユーザーにロールを割り当てる

Auth0は、接続に関連付けられたユーザーに対して、そのロールに基づき委任管理拡張機能(DAE)へのアクセスを付与します。DAEに特化したロールは以下の通りです。

ロール... 付与されるアクセス許可...
Delegated Admin - User ユーザーを検索、ユーザーを作成、ユーザーを開く、ユーザーに削除やブロックなどのアクションを実行します。
Delegated Admin - Administrator Delegated Admin - User(委任管理 - ユーザー)ができるすべてのことを実行できるほか、テナント内のすべてのログを表示し、フックを構成します。
Delegated Admin - Auditor ユーザーを検索してユーザー情報を表示します(変更は行いません)。アクションベースのボタンはこのロールには表示されません。
Delegated Admin - Operator ユーザー管理とログにはアクセスしますが、拡張機能の設定セクションにはアクセスしません。

ロールを扱う際には、Authorization Core機能セットの使用をお勧めします。

  1. DAEロールを作成します。作成したロールの名前は必ず、上記のあらかじめ定義されたDAEロール名と一致しなければなりません。

  2. DAEロールをユーザーに手動で割り当てます。

  3. Actionsを使用して、ユーザーロールをIDトークンにあるDAEの名前空間に追加します。

    exports.onExecutePostLogin = async (event, api) => {
      const namespace = `https://{yourTenant}/auth0-delegated-admin`;
      if (event.client.client_id === 'CLIENT_ID' && event.authorization) {
        api.idToken.setCustomClaim(namespace, { "roles": event.authorization.roles });
      }
    };

    Was this helpful?

    /

CLIENT_IDプレースホルダ―を委任管理アプリケーションの[Client ID(クライアントID)]に置き換え、{yourTenant}をテナント名に置き換えます。たとえば、テナント名が「tenant_name_example」の場合、名前空間は次のようになります:https://tenant_name_example/auth0-delegated-admin

アクション作成の詳細については、「初めてのアクションを作成する

拡張機能をインストールして構成する

これでアプリケーション、接続、およびユーザーの作成と構成が終わったので、委任管理拡張機能をインストールして構成することができます。

拡張機能を使用する

インストールしたら、委任管理拡張機能(DAE)を使用する準備が整います。

地域に応じた適切なログインリンクとテナントの拡張ランタイムを使って拡張機能へ移動します。

場所 名前 ログインリンク
オーストラリア AU https://{yourTenant}.au.webtask.io/auth0-delegated-admin
欧州 EU https://{yourTenant}.eu.webtask.io/auth0-delegated-admin
欧州 EU-2 https://{yourTenant}.eu.webtask.run/auth0-delegated-admin
日本 JP-1 https://{yourTenant}.jp.webtask.run/auth0-delegated-admin
英国 UK https://{yourTenant}.uk.webtask.run/auth0-delegated-admin
米国 US-1 https://{yourTenant}.us.webtask.io/auth0-delegated-admin
米国 US-3 https://{yourTenant}.us.webtask.run/auth0-delegated-admin

新しいタブが開いて、ログイン画面が表示されます。

この例では、構成時にデータベース接続のサインアップを無効にしたため、ログイン画面には[Sign Up(サインアップ)]オプションは表示されません。有効な資格情報を入力すると、カスタムの[Delegated Administration Dashboard(委任管理ダッシュボード)]ページにリダイレクトされます。このページには、指定されたタイトルが上部に表示され、(カスタムCSSファイルを指定している場合は)デザインが反映されます。

委任管理セッションのタイムアウト

デフォルトで、トークンの有効期限は10時間です。ただし、セキュリティ上の理由により、委任管理を使っている場合は、トークンがクッキーやsessionStorageに保存されません。ページを読み込み直すたびに、新しいセッションを開始する必要があります。

もっと詳しく