Security Configuration Reference (SecurityBundle)

The SecurityBundle integrates the Security component in Symfony applications. All these options are configured under the security key in your application configuration.

SecurityBundle は、セキュリティ コンポーネントを Symfony アプリケーションに統合します。これらのオプションはすべて、アプリケーション構成の securitykey の下で構成されます。
1
2
3
4
5
# displays the default config values defined by Symfony
$ php bin/console config:dump-reference security

# displays the actual config values used by your application
$ php bin/console debug:config security

Note

ノート

When using XML, you must use the http://symfony.com/schema/dic/security namespace and the related XSD schema is available at: https://symfony.com/schema/dic/services/services-1.0.xsd

XML を使用する場合、http://symfony.com/schema/dic/securitynamespace を使用する必要があり、関連する XSD スキーマは https://symfony.com/schema/dic/services/services-1.0.xsd で入手できます。

Configuration

Basic Options:

基本オプション:

Advanced Options:

高度なオプション:

Some of these options define tens of sub-options and they are explained in separate articles:

これらのオプションのいくつかは、数十のサブオプションを定義しており、それらは個別の記事で説明されています:

access_denied_url

type: string default: null

タイプ: 文字列 デフォルト: null

Defines the URL where the user is redirected after a 403 HTTP error (unless you define a custom access denial handler). Example: /no-permission

403 HTTP エラーの後にユーザーがリダイレクトされる URL を定義します (カスタム アクセス拒否ハンドラーを定義しない場合)。例: /許可なし

erase_credentials

type: boolean default: true

タイプ: ブール デフォルト: true

If true, the eraseCredentials() method of the user object is called after authentication.

true の場合、認証後にユーザー オブジェクトの eraseCredentials() メソッドが呼び出されます。

hide_user_not_found

type: boolean default: true

タイプ: ブール デフォルト: true

If true, when a user is not found a generic exception of type BadCredentialsException is thrown with the message "Bad credentials".

true の場合、ユーザーが見つからない場合、typeBadCredentialsException の一般的な例外が「Bad credentials」というメッセージとともにスローされます。

If false, the exception thrown is of type UserNotFoundException and it includes the given not found user identifier.

false の場合、スローされる例外はタイプ UserNotFoundException であり、指定された見つからないユーザー ID が含まれます。

session_fixation_strategy

type: string default: SessionAuthenticationStrategy::MIGRATE

タイプ: 文字列 デフォルト: SessionAuthenticationStrategy::MIGRATE

Session Fixation is a security attack that permits an attacker to hijack a valid user session. Applications that don't assign new session IDs when authenticating users are vulnerable to this attack.

セッション固定は、攻撃者が有効なユーザー セッションを乗っ取ることを可能にするセキュリティ攻撃です。ユーザーの認証時に新しいセッション ID を割り当てないアプリケーションは、この攻撃に対して脆弱です。

The possible values of this option are:

このオプションの可能な値は次のとおりです。
  • NONE constant from SessionAuthenticationStrategy Don't change the session after authentication. This is not recommended.
    SessionAuthenticationStrategy の NONE 定数認証後にセッションを変更しないでください。これはお勧めできません。
  • MIGRATE constant from SessionAuthenticationStrategy The session ID is updated, but the rest of session attributes are kept.
    SessionAuthenticationStrategy からの MIGRATE 定数。セッション ID は更新されますが、残りのセッション属性は保持されます。
  • INVALIDATE constant from SessionAuthenticationStrategy The entire session is regenerated, so the session ID is updated but all the other session attributes are lost.
    SessionAuthenticationStrategy の INVALIDATE 定数。セッション全体が再生成されるため、セッション ID は更新されますが、他のすべてのセッション属性は失われます。

access_control

Defines the security protection of the URLs of your application. It's used for example to trigger the user authentication when trying to access to the backend and to allow unauthenticated users to the login form page.

アプリケーションの URL のセキュリティ保護を定義します。たとえば、バックエンドにアクセスしようとするときにユーザー認証をトリガーし、認証されていないユーザーがログイン フォーム ページにアクセスできるようにするために使用されます。

This option is explained in detail in How Does the Security access_control Work?.

このオプションについては、セキュリティ access_control の仕組みで詳しく説明されています。

firewalls

This is arguably the most important option of the security config file. It defines the authentication mechanism used for each URL (or URL pattern) of your application:

これはおそらく、セキュリティ構成ファイルの最も重要なオプションです。アプリケーションの各 URL (または URL パターン) に使用される認証メカニズムを定義します。
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
# config/packages/security.yaml
security:
    # ...
    firewalls:
        # 'main' is the name of the firewall (can be chosen freely)
        main:
            # 'pattern' is a regular expression matched against the incoming
            # request URL. If there's a match, authentication is triggered
            pattern: ^/admin
            # the rest of options depend on the authentication mechanism
            # ...

See also

こちらもご覧ください

Read this article to learn about how to restrict firewalls by host and HTTP methods.

ホストと HTTP メソッドによってファイアウォールを制限する方法については、この記事をお読みください。

In addition to some common config options, the most important firewall options depend on the authentication mechanism, which can be any of these:

いくつかの一般的な構成オプションに加えて、最も重要なファイアウォール オプションは認証メカニズムに依存します。認証メカニズムは次のいずれかになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# config/packages/security.yaml
security:
    # ...
    firewalls:
        main:
            # ...
                x509:
                    # ...
                remote_user:
                    # ...
                guard:
                    # ...
                form_login:
                    # ...
                form_login_ldap:
                    # ...
                json_login:
                    # ...
                http_basic:
                    # ...
                http_basic_ldap:
                    # ...
                http_digest:
                    # ...

You can view actual information about the firewalls in your application with the debug:firewall command:

debug:firewall コマンドを使用して、アプリケーションのファイアウォールに関する実際の情報を表示できます。
1
2
3
4
5
6
7
8
9
# displays a list of firewalls currently configured for your application
$ php bin/console debug:firewall

# displays the details of a specific firewall
$ php bin/console debug:firewall main

# displays the details of a specific firewall, including detailed information
# about the event listeners for the firewall
$ php bin/console debug:firewall main --events

form_login Authentication

When using the form_login authentication listener beneath a firewall, there are several common options for configuring the "form login" experience. For even more details, see Customizing the Form Login Authenticator Responses.

ファイアウォールの下で form_login 認証リスナーを使用する場合、"フォーム ログイン" エクスペリエンスを構成するための一般的なオプションがいくつかあります。

login_path

type: string default: /login

タイプ: 文字列 デフォルト: /login

This is the route or path that the user will be redirected to (unless use_forward is set to true) when they try to access a protected resource but aren't fully authenticated.

これは、ユーザーが保護されたリソースにアクセスしようとしたが完全に認証されなかった場合に (use_forward が true に設定されていない限り) リダイレクトされるルートまたはパスです。

This path must be accessible by a normal, unauthenticated user, else you may create a redirect loop.

このパスは、認証されていない通常のユーザーがアクセスできる必要があります。そうしないと、リダイレクト ループが作成される可能性があります。

check_path

type: string default: /login_check

タイプ: 文字列 デフォルト: /login_check

This is the route or path that your login form must submit to. The firewall will intercept any requests (POST requests only, by default) to this URL and process the submitted login credentials.

これは、ログイン フォームを送信する必要があるルートまたはパスです。ファイアウォールは、この URL への要求 (デフォルトでは POST 要求のみ) をインターセプトし、送信されたログイン資格情報を処理します。

Be sure that this URL is covered by your main firewall (i.e. don't create a separate firewall just for check_path URL).

この URL がメインのファイアウォールでカバーされていることを確認してください (つまり、check_path URL のためだけに別のファイアウォールを作成しないでください)。

failure_path

type: string default: /login

タイプ: 文字列 デフォルト: /login

This is the route or path that the user is redirected to after a failed login attempt. It can be a relative/absolute URL or a Symfony route name.

これは、ログイン試行が失敗した後にユーザーがリダイレクトされるルートまたはパスです。相対/絶対 URL または Symfony ルート名にすることができます。

form_only

type: boolean default: false

タイプ: ブール デフォルト: false

Set this option to true to require that the login data is sent using a form (it checks that the request content-type is application/x-www-form-urlencoded). This is useful for example to prevent the form login authenticator from responding to requests that should be handled by the JSON login authenticator.

ログイン データがフォームを使用して送信されることを要求するには、このオプションを true に設定します (リクエストのコンテンツ タイプが application/x-www-form-urlencoded であることを確認します)。 JSON ログイン認証システムによって処理される必要がある要求。

use_forward

type: boolean default: false

タイプ: ブール デフォルト: false

If you'd like the user to be forwarded to the login form instead of being redirected, set this option to true.

ユーザーをリダイレクトせずにログイン フォームに転送する場合は、このオプションを true に設定します。

username_parameter

type: string default: _username

タイプ: 文字列 デフォルト: _username

This is the name of the username field of your login form. When you submit the form to check_path, the security system will look for a POST parameter with this name.

これは、yourlogin フォームのユーザー名フィールドの名前です。フォームを check_path に送信すると、セキュリティ システムはこの名前の POST パラメータを探します。

password_parameter

type: string default: _password

タイプ: 文字列 デフォルト: _password

This is the name of the password field of your login form. When you submit the form to check_path, the security system will look for a POST parameter with this name.

これは、ログイン フォームのパスワード フィールドの名前です。フォームを check_path に送信すると、セキュリティ システムはこの名前の POST パラメータを探します。

post_only

type: boolean default: true

タイプ: ブール デフォルト: true

By default, you must submit your login form to the check_path URL as a POST request. By setting this option to false, you can send a GET request too.

デフォルトでは、ログイン フォームを POST リクエストとして check_path URL に送信する必要があります。このオプションを false に設定すると、GET リクエストも送信できます。

Options Related to Redirecting after Login

ログイン後のリダイレクトに関連するオプション

always_use_default_target_path

type: boolean default: false

タイプ: ブール デフォルト: false

If true, users are always redirected to the default target path regardless of the previous URL that was stored in the session.

true の場合、セッションに保存された以前の URL に関係なく、ユーザーは常にデフォルトのターゲット パスにリダイレクトされます。

default_target_path

type: string default: /

タイプ: 文字列 デフォルト: /

The page users are redirected to when there is no previous page stored in the session (for example, when the users browse the login page directly).

セッションに以前のページが保存されていない場合 (たとえば、ユーザーがログイン ページを直接参照した場合) にユーザーがリダイレクトされるページ。

target_path_parameter

type: string default: _target_path

タイプ: 文字列 デフォルト: _target_path

When using a login form, if you include an HTML element to set the target path, this option lets you change the name of the HTML element itself.

ログイン フォームを使用するときに、HTML 要素を含めてターゲット パスを設定すると、このオプションを使用して HTML 要素自体の名前を変更できます。

failure_path_parameter

type: string default: _failure_path

タイプ: 文字列 デフォルト: _failure_path

When using a login form, if you include an HTML element to set the failure path, this option lets you change the name of the HTML element itself.

ログイン フォームを使用するときに、HTML 要素を含めてエラー パスを設定すると、このオプションを使用して HTML 要素自体の名前を変更できます。

use_referer

type: boolean default: false

タイプ: ブール デフォルト: false

If true, the user is redirected to the value stored in the HTTP_REFERER header when no previous URL was stored in the session. If the referrer URL is the same as the one generated with the login_path route, the user is redirected to the default_target_path to avoid a redirection loop.

true の場合、以前の URL がセッションに保存されていない場合、ユーザーは HTTP_REFERERheader に保存されている値にリダイレクトされます。リファラー URL が login_path ルートで生成されたものと同じである場合、リダイレクト ループを回避するために、ユーザーは default_target_path にリダイレクトされます。

Note

ノート

For historical reasons, and to match the misspelling of the HTTP standard, the option is called use_referer instead of use_referrer.

歴史的な理由と、HTTP 標準のスペルミスに一致させるために、このオプションは use_referrer ではなく use_referer と呼ばれます。

Options Related to Logout Configuration

ログアウト設定に関連するオプション

delete_cookies

type: array default: []

タイプ: 配列 デフォルト: []

Lists the names (and other optional features) of the cookies to delete when the user logs out:

ユーザーがログアウトするときに削除する Cookie の名前 (およびその他のオプション機能) を一覧表示します。
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            # ...
            logout:
                delete_cookies:
                    cookie1-name: null
                    cookie2-name:
                        path: '/'
                    cookie3-name:
                        path: null
                        domain: example.com

invalidate_session

type: boolean default: true

タイプ: ブール デフォルト: true

By default, when users log out from any firewall, their sessions are invalidated. This means that logging out from one firewall automatically logs them out from all the other firewalls.

デフォルトでは、ユーザーがファイアウォールからログアウトすると、そのセッションは無効になります。これは、1 つのファイアウォールからログアウトすると、他のすべてのファイアウォールから自動的にログアウトされることを意味します。

The invalidate_session option allows to redefine this behavior. Set this option to false in every firewall and the user will only be logged out from the current firewall and not the other ones.

invalidate_session オプションを使用すると、この動作を再定義できます。すべてのファイアウォールでこのオプションを false に設定すると、ユーザーは現在のファイアウォールからのみログアウトされ、他のファイアウォールからはログアウトされません。

path

type: string default: /logout

タイプ: 文字列 デフォルト: /logout

The path which triggers logout. You need to set up a route with a matching path.

ログアウトをトリガーするパス。パスが一致するルートを設定する必要があります。

target

type: string default: /

タイプ: 文字列 デフォルト: /

The relative path (if the value starts with /), or absolute URL (if it starts with http:// or https://) or the route name (otherwise) to redirect after logout.

ログアウト後にリダイレクトするための相対パス (値が / で始まる場合)、または絶対 URL (http:// または https:// で始まる場合) またはルート名 (それ以外の場合)。

enable_csrf

type: boolean default: null

タイプ: ブール デフォルト: null

Set this option to true to enable CSRF protection in the logout process using Symfony's default CSRF token generator. Set also the csrf_token_generator option if you need to use a custom CSRF token generator.

Symfony のデフォルトの CSRF トークン ジェネレーターを使用してログアウト プロセスで CSRF 保護を有効にするには、このオプションを true に設定します。カスタム CSRF トークン ジェネレーターを使用する必要がある場合は、csrf_token_generator オプションも設定します。

6.2

6.2

The enable_csrf option was introduced in Symfony 6.2.

enable_csrf オプションは Symfony 6.2 で導入されました。

csrf_parameter

type: string default: '_csrf_token'

タイプ: 文字列 デフォルト: '_csrf_token'

The name of the parameter that stores the CSRF token value.

CSRF トークン値を格納するパラメーターの名前。

csrf_token_generator

type: string default: null

タイプ: 文字列 デフォルト: null

The id of the service used to generate the CSRF tokens. Symfony provides a default service whose ID is security.csrf.token_manager.

CSRF トークンの生成に使用されるサービスの ID。 Symfony は、ID が security.csrf.token_manager であるデフォルトのサービスを提供します。

csrf_token_id

type: string default: 'logout'

タイプ: 文字列 デフォルト: 'ログアウト'

An arbitrary string used to identify the token (and check its validity afterwards).

トークンを識別するために使用される任意の文字列 (および後でその有効性をチェックします)。

JSON Login Authentication

check_path

type: string default: /login_check

タイプ: 文字列 デフォルト: /login_check

This is the URL or route name the system must post to authenticate using the JSON authenticator. The path must be covered by the firewall to which the user will authenticate.

これは、JSON オーセンティケーターを使用して認証するためにシステムが送信する必要がある URL またはルート名です。パスは、ユーザーが認証するファイアウォールによってカバーされている必要があります。

username_path

type: string default: username

タイプ: 文字列 デフォルト: ユーザー名

Use this and password_path to modify the expected request body structure of the JSON authenticator. For instance, if the JSON document has the following structure:

これと password_path を使用して、JSON オーセンティケーターの予期される要求本文構造を変更します。たとえば、JSON ドキュメントに次の構造があるとします。
1
2
3
4
5
6
7
8
{
    "security": {
        "credentials": {
            "login": "dunglas",
            "password": "MyPassword"
        }
    }
}

The security configuration should be:

セキュリティ構成は次のようにする必要があります。
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            lazy: true
            json_login:
                check_path:    login
                username_path: security.credentials.login
                password_path: security.credentials.password

password_path

type: string default: password

タイプ: 文字列 デフォルト: パスワード

Use this option to modify the expected request body structure. See username_path for more details.

このオプションを使用して、予想されるリクエスト本文の構造を変更します。詳細については、username_path を参照してください。

LDAP Authentication

There are several options for connecting against an LDAP server, using the form_login_ldap, http_basic_ldap and json_login_ldap authentication providers or the ldap user provider.

form_login_ldap、http_basic_ldap、および json_login_ldap 認証プロバイダーまたは LDAP ユーザー プロバイダーを使用して、LDAP サーバーに接続するためのいくつかのオプションがあります。

For even more details, see Authenticating against an LDAP server.

詳細については、LDAP サーバーに対する認証を参照してください。

Authentication

認証

You can authenticate to an LDAP server using the LDAP variants of the form_login, http_basic and json_login authentication providers. Use form_login_ldap, http_basic_ldap and json_login_ldap, which will attempt to bind against an LDAP server instead of using password comparison.

form_login、http_basic、および json_login 認証プロバイダーの LDAP バリアントを使用して、LDAP サーバーに対して認証できます。パスワード比較を使用する代わりに、LDAP サーバーに対してバインドを試みる、form_login_ldap、http_basic_ldap、および json_login_ldap を使用します。

Both authentication providers have the same arguments as their normal counterparts, with the addition of two configuration keys:

どちらの認証プロバイダーも、通常の対応するものと同じ引数を持ち、2 つの構成キーが追加されています。

service

type: string default: ldap

タイプ: 文字列 デフォルト: LDAP

This is the name of your configured LDAP client.

これは、構成済みの LDAP クライアントの名前です。

dn_string

type: string default: {user_identifier}

タイプ: 文字列 デフォルト: {user_identifier}

This is the string which will be used as the bind DN. The {user_identifier} placeholder will be replaced with the user-provided value (their login). Depending on your LDAP server's configuration, you may need to override this value.

これは、バインド DN として使用される文字列です。 {user_identifier} プレースホルダーは、ユーザーが指定した値 (ユーザーのログイン) に置き換えられます。LDAP サーバーの構成によっては、この値をオーバーライドする必要がある場合があります。

query_string

type: string default: null

タイプ: 文字列 デフォルト: null

This is the string which will be used to query for the DN. The {user_identifier} placeholder will be replaced with the user-provided value (their login). Depending on your LDAP server's configuration, you will need to override this value. This setting is only necessary if the user's DN cannot be derived statically using the dn_string config option.

これは、DN のクエリに使用される文字列です。 {user_identifier} プレースホルダーは、ユーザーが指定した値 (ユーザーのログイン) に置き換えられます。LDAP サーバーの構成によっては、この値をオーバーライドする必要があります。この設定は、dn_string 構成オプションを使用して静的にユーザーの DN を導出できない場合にのみ必要です。

User provider

ユーザープロバイダー

Users will still be fetched from the configured user provider. If you wish to fetch your users from an LDAP server, you will need to use the LDAP User Provider and any of these authentication providers: form_login_ldap or http_basic_ldap or json_login_ldap.

ユーザーは、構成されたユーザー プロバイダーから取得されます。 LDAP サーバーからユーザーをフェッチする場合は、LDAP ユーザー プロバイダーと、次のいずれかの認証プロバイダーを使用する必要があります: form_login_ldap または http_basic_ldap または json_login_ldap。

X.509 Authentication

  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
# config/packages/security.yaml
security:
    # ...

    firewalls:
        main:
            # ...
            x509:
                provider:    your_user_provider
                user:        SSL_CLIENT_S_DN_Email
                credentials: SSL_CLIENT_S_DN

user

type: string default: SSL_CLIENT_S_DN_Email

タイプ: 文字列 デフォルト: SSL_CLIENT_S_DN_Email

The name of the $_SERVER parameter containing the user identifier used to load the user in Symfony. The default value is exposed by Apache.

Symfony でユーザーをロードするために使用されるユーザー識別子を含む $_SERVER パラメーターの名前。デフォルト値は Apache によって公開されます。

credentials

type: string default: SSL_CLIENT_S_DN

If the user parameter is not available, the name of the $_SERVER parameter containing the full "distinguished name" of the certificate (exposed by e.g. Nginx).

ユーザーパラメーターが利用できない場合、証明書の完全な「識別名」を含む $_SERVER パラメーターの名前 (Nginx などによって公開されます)。

Symfony identifies the value following emailAddress= in this parameter.

symfony は、このパラメーターの emailAddress= に続く値を識別します。

Remote User Authentication

  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
# config/packages/security.yaml
security:
    firewalls:
        main:
            # ...
            remote_user:
                provider: your_user_provider
                user:     REMOTE_USER

provider

type: string

タイプ: 文字列

The service ID of the user provider that should be used by this authenticator.

この認証者が使用する必要があるユーザー プロバイダーのサービス ID。

user

type: string default: REMOTE_USER

タイプ: 文字列 デフォルト: REMOTE_USER

The name of the $_SERVER parameter holding the user identifier.

ユーザー識別子を保持する $_SERVER パラメータの名前。

Firewall Context

Most applications will only need one firewall. But if your application does use multiple firewalls, you'll notice that if you're authenticated in one firewall, you're not automatically authenticated in another. In other words, the systems don't share a common "context": each firewall acts like a separate security system.

ほとんどのアプリケーションで必要なファイアウォールは 1 つだけです。ただし、アプリケーションで複数のファイアウォールを使用している場合は、あるファイアウォールで認証されても、別のファイアウォールで自動的に認証されないことに気付くでしょう。つまり、システムは共通の「コンテキスト」を共有していません。各ファイアウォールは、個別のセキュリティ システムのように機能します。

However, each firewall has an optional context key (which defaults to the name of the firewall), which is used when storing and retrieving security data to and from the session. If this key were set to the same value across multiple firewalls, the "context" could actually be shared:

ただし、各ファイアウォールにはオプションのコンテキスト キー (デフォルトはファイアウォールの名前) があり、セッションとの間でセキュリティ データを保存および取得するときに使用されます。このキーが複数のファイアウォールで同じ値に設定されている場合、「コンテキスト」は実際に共有される可能性があります。
  • YAML
    YAML
  • XML
    XML
  • PHP
    PHP
1
2
3
4
5
6
7
8
9
10
11
# config/packages/security.yaml
security:
    # ...

    firewalls:
        somename:
            # ...
            context: my_context
        othername:
            # ...
            context: my_context

Note

ノート

The firewall context key is stored in session, so every firewall using it must set its stateless option to false. Otherwise, the context is ignored and you won't be able to authenticate on multiple firewalls at the same time.

ファイアウォール コンテキスト キーはセッションに保存されるため、それを使用するすべてのファイアウォールはステートレス オプションを false に設定する必要があります。そうしないと、コンテキストが無視され、複数のファイアウォールで同時に認証できなくなります。

User Checkers

During the authentication of a user, additional checks might be required to verify if the identified user is allowed to log in. Each firewall can include a user_checker option to define the service used to perform those checks.

ユーザーの認証中に、識別されたユーザーがログインを許可されているかどうかを確認するために、追加のチェックが必要になる場合があります。各ファイアウォールには、これらのチェックを実行するために使用されるサービスを定義する user_checker オプションを含めることができます。

Learn more about user checkers in How to Create and Enable Custom User Checkers.

ユーザー チェッカーの詳細については、カスタム ユーザー チェッカーを作成して有効にする方法を参照してください。

providers

This option defines how the application users are loaded (from a database, an LDAP server, a configuration file, etc.) Read User Providers to learn more about each of those providers.

このオプションは、アプリケーション ユーザーが (データベース、LDAP サーバー、構成ファイルなどから) どのように読み込まれるかを定義します。各プロバイダーの詳細については、ユーザー プロバイダーを参照してください。

role_hierarchy

Instead of associating many roles to users, this option allows you to define role inheritance rules by creating a role hierarchy, as explained in Security.

多くのロールをユーザーに関連付ける代わりに、このオプションを使用すると、セキュリティで説明されているように、ロール階層を作成してロール継承ルールを定義できます。