メインコンテンツへスキップ
組織内の他のユーザーや管理者にテナント使用機能を委任する場合は、[Tenant Members(テナントメンバー)]設定の使用をお勧めします。詳細については、「ダッシュボードへのアクセス」をお読みください。
委任管理拡張機能(DAE)を使うと、他の領域へのアクセスを許可することなく、選択したユーザーグループに管理者権限を付与できるようになります。

DAEを構成する

DAEを構成するには、必ず以下を行います。
  1. Auth0でアプリケーションを登録する
  2. データベース接続を作成する
  3. Auth0のアプリケーションで他のすべての接続を無効にする
  4. データベース接続にユーザーを作成する
  5. ユーザーにロールを割り当てる
  6. 拡張機能をインストールして構成する
  7. 拡張機能を使用する

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

まずは、委任管理拡張機能がユーザーページの管理者権限のあるユーザーに公開するアプリケーションを作成します。これを行うには、Auth0で委任管理アプリケーションを作成します。 作成したら、アプリケーションの (クライアントID)] 値をメモしてください。

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

この例では、データベース接続が、ユーザー領域にアクセスが許可されたユーザーのソースになります。これを構成するには、データベース接続を作成します。 接続をセットアップする際には以下を行います。
  • HelpDeskなど、適切な接続名を使用する
  • [Disable Sign Ups(サインアップを無効にする)] を有効にするこれにより、セキュリティ保護のため、データベース接続へのリンクを持っているユーザーでも自分自身をサインアップすることができなくなります。

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

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

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

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

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

Delegated Administration Extension(DAE:委任管理拡張機能)Authorization Core(認可コア)は全く別の機能ですが、Authorization Core(認可コア)機能セットを使用すると、ActionsでDAEのロールを作成し、管理することができます。方法については、「サンプルユースケース:認可のあるアクション」を参照してください。
委任管理拡張機能(DAE)のある組織を使ってユーザーとしてログインする場合は、ユーザーロールを利用できません。event.authorization.rolesには組織メンバーのロールのみ使用できます。組織メンバーにロールを追加するには、「組織メンバーにロールを追加する」をお読みください。
Auth0は、接続に関連付けられたユーザーに対して、そのロールに基づき委任管理拡張機能(DAE)へのアクセスを付与します。DAEに特化したロールは以下の通りです。
ロール…付与されるアクセス許可…
Delegated Admin - Userユーザーを検索、ユーザーを作成、ユーザーを開く、ユーザーに削除やブロックなどのアクションを実行します。
Delegated Admin - AdministratorDelegated 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 });
      }
    };
    
CLIENT_IDプレースホルダ―を委任管理アプリケーションの [Client ID(クライアントID)] に置き換え、{yourTenant}をテナント名に置き換えます。たとえば、テナント名が「tenant_name_example」の場合、名前空間は次のようになります:https://tenant_name_example/auth0-delegated-admin アクション作成の詳細については、「初めてのアクションを作成する
Auth0は、プロファイル情報をOpenID Connect(OIDC)仕様で定義されている構造化クレーム形式で返します。つまり、IDトークンまたはアクセストークンに追加するカスタムクレームは、衝突を避けるためにガイドラインと制限に従わなければなりません
Authorization Core(認証コア)を使用すると、context.authorizationオブジェクトでロールが定義されます。Authorization Core(認証コア)を使用しない場合は、ユーザープロファイルにある以下のいずれかのフィールドでDAEのロールを定義してください。
  • user.app_metadata.roles
  • user.app_metadata.authorization.roles

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

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

拡張機能を使用する

インストールしたら、委任管理拡張機能(DAE)を使用する準備が整います。 地域に応じた適切なログインリンクとテナントの拡張ランタイムを使って拡張機能へ移動します。
場所名前ログインリンク
オーストラリアAUhttps://{yourTenant}.au.webtask.io/auth0-delegated-admin
欧州EUhttps://{yourTenant}.eu.webtask.io/auth0-delegated-admin
欧州EU-2https://{yourTenant}.eu.webtask.run/auth0-delegated-admin
日本JP-1https://{yourTenant}.jp.webtask.run/auth0-delegated-admin
英国UKhttps://{yourTenant}.uk.webtask.run/auth0-delegated-admin
米国US-1https://{yourTenant}.us.webtask.io/auth0-delegated-admin
米国US-3https://{yourTenant}.us.webtask.run/auth0-delegated-admin
新しいタブが開いて、ログイン画面が表示されます。 この例では、構成時にデータベース接続のサインアップを無効にしたため、ログイン画面には [Sign Up(サインアップ)] オプションは表示されません。有効な資格情報を入力すると、カスタムの [Delegated Administration Dashboard(委任管理ダッシュボード)] ページにリダイレクトされます。このページには、指定された タイトル が上部に表示され、(カスタムCSSファイルを指定している場合は)デザインが反映されます。

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

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

もっと詳しく

I