> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 委任管理拡張機能v3

> 委任管理拡張機能（DAE）を使って、他のDashboard機能へのアクセスを許可することなく、選択したグループのユーザーにAuth0 Dashboardの「ユーザー」セクションを公開する方法について説明します。

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  組織内の他のユーザーや管理者にテナント使用機能を委任する場合は、［Tenant Members（テナントメンバー）］設定の使用をお勧めします。詳細については、「[ダッシュボードへのアクセス](/docs/ja-jp/get-started/manage-dashboard-access)」をお読みください。
</Callout>

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

## DAEを構成する

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

1. [Auth0でアプリケーションを登録する](#register-the-application-with-auth0)
2. [データベース接続を作成する](#create-a-database-connection)
3. [Auth0のアプリケーションで他のすべての接続を無効にする](#disable-all-other-connections-for-the-auth0-application)
4. [データベース接続にユーザーを作成する](#create-user-for-the-database-connection)
5. [ユーザーにロールを割り当てる](#assign-roles-to-users)
6. [拡張機能をインストールして構成する](#install-and-configure-the-extension)
7. [拡張機能を使用する](#use-the-extension)

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

まずは、委任管理拡張機能がユーザーページの管理者権限のあるユーザーに公開するアプリケーションを作成します。これを行うには、Auth0で[委任管理アプリケーションを作成](/docs/ja-jp/customize/extensions/delegated-administration-extension/create-delegated-admin-applications)します。

作成したら、アプリケーションの **［<Tooltip data-tooltip-id="react-containers-DefinitionTooltip-4" href="/docs/ja-jp/glossary?term=client-id" tip="クライアントID: Auth0から登録されたリソースに与えられる識別値。" cta="用語集の表示">Client ID</Tooltip>（クライアントID）］** 値をメモしてください。

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

この例では、データベース接続が、ユーザー領域にアクセスが許可されたユーザーのソースになります。これを構成するには、[データベース接続を作成](/docs/ja-jp/get-started/applications/set-up-database-connections)します。

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

* `HelpDesk`など、適切な接続名を使用する
* **［Disable Sign Ups（サインアップを無効にする）］** を有効にするこれにより、セキュリティ保護のため、データベース接続へのリンクを持っているユーザーでも自分自身をサインアップすることができなくなります。

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

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

これを構成するには、[アプリケーション接続を更新](/docs/ja-jp/get-started/applications/update-application-connections)します。

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

続けるには、[少なくとも1人のユーザーを作成](/docs/ja-jp/manage-users/user-accounts/create-users)し、接続に関連付ける必要があります。

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

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  [Delegated Administration Extension（DAE：委任管理拡張機能）](/docs/ja-jp/customize/extensions/delegated-administration-extension)と[Authorization Core（認可コア）](/docs/ja-jp/manage-users/access-control/rbac)は全く別の機能ですが、Authorization Core（認可コア）機能セットを使用すると、ActionsでDAEのロールを作成し、管理することができます。方法については、「[サンプルユースケース：認可のあるアクション](/docs/ja-jp/manage-users/access-control/sample-use-cases-actions-with-authorization)」を参照してください。
</Callout>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  委任管理拡張機能（DAE）のある組織を使ってユーザーとしてログインする場合は、ユーザーロールを利用できません。`event.authorization.roles`には組織メンバーのロールのみ使用できます。組織メンバーにロールを追加するには、「[組織メンバーにロールを追加する](/docs/ja-jp/manage-users/organizations/configure-organizations/add-member-roles)」をお読みください。
</Callout>

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

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

ロールを扱う際には、[Authorization Core](/docs/ja-jp/manage-users/access-control/rbac)機能セットの使用をお勧めします。

1. [DAEロールを作成](/docs/ja-jp/manage-users/access-control/configure-core-rbac/roles/create-roles)します。作成したロールの名前は必ず、上記のあらかじめ定義されたDAEロール名と一致しなければなりません。
2. [DAEロールをユーザーに手動で割り当て](/docs/ja-jp/manage-users/access-control/configure-core-rbac/rbac-users/assign-roles-to-users)ます。
3. [Actions](/docs/ja-jp/customize/actions)を使用して、ユーザーロールをIDトークンにあるDAEの名前空間に追加します。

   ```text lines theme={null}
   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`

アクション作成の詳細については、「[初めてのアクションを作成する](/docs/ja-jp/customize/actions/write-your-first-action)

<Warning>
  Auth0は、プロファイル情報を[OpenID Connect（OIDC）仕様](https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims)で定義されている構造化クレーム形式で返します。つまり、IDトークンまたはアクセストークンに追加するカスタムクレームは、衝突を避けるために[ガイドラインと制限に従わなければなりません](/docs/ja-jp/secure/tokens/json-web-tokens/create-custom-claims)。
</Warning>

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Authorization Core（認証コア）を使用すると、`context.authorization`オブジェクトでロールが定義されます。

  Authorization Core（認証コア）を使用しない場合は、ユーザープロファイルにある以下のいずれかのフィールドでDAEのロールを定義してください。

  * `user.app_metadata.roles`
  * `user.app_metadata.authorization.roles`
</Callout>

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

これでアプリケーション、接続、およびユーザーの作成と構成が終わったので、[委任管理拡張機能をインストールして構成](/docs/ja-jp/customize/extensions/delegated-administration-extension/install-delegated-admin-extension)することができます。

## 拡張機能を使用する

インストールしたら、委任管理拡張機能（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ファイルを指定している場合は）デザインが反映されます。

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

## もっと詳しく

* [Delegated Administration:拡張フック](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-hooks)
* [委任管理：ユーザー管理](/docs/ja-jp/customize/extensions/delegated-administration-extension/delegated-administration-manage-users)
