メインコンテンツへスキップ
Auth0では、ロールベースのアクセス制御(RBAC)を2つの方法で実装できます。これは、API独自の内部アクセス制御システムの代わりに使用することもできれば、両方を組み合わせて使用することもできます。認可コアの機能セットは、認可拡張機能と同じ機能性を備え、性能と拡張性を向上させると同時に、認可拡張機能より柔軟なRBACシステムを提供します。現時点では、どちらもRBACの主要な機能を実装し、APIに対して定義されるカスタムスコープをユーザーに権限として割り当てられたスコープに制限することが可能です。

前提条件

始める前に、認可拡張機能で使用できる既存のアプリケーションがあることを確認してください。以下の種類のアプリケーションを使用することができます。
  • ネイティブアプリ
  • 通常のWebアプリ
  • シングルページアプリ
種類が割り当てられていないアプリケーションやマシンツーマシンアプリケーションには、この拡張機能を使用できません。

拡張機能をインストールする

  1. [Auth0 Dashboard]>[Extensions(拡張機能)]に移動します。
  2. [Auth0 Authorization(Auth0認可)] を選択して、インストールのプロンプトを処理します。
  3. データを保管したい場所を[Webtask Storage(Webtaskストレージ)]または[Amazon S3 bucket(Amazon S3バケット)]から選択します。
拡張機能がインストールされたら、 [Installed Extensions(インストール済みの拡張機能)] に一覧表示されます。
Dashboard - 拡張機能 - インストール済の拡張機能 - 認可拡張機能
この拡張機能をインストールすると、アカウントにauth0-authzアプリケーションが作成されます。 このアプリケーションは絶対に編集・削除しないでください。 このアプリケーションは、拡張機能をアンインストールすると自動的に削除されます。
リンクをクリックして拡張機能を初めて開くと、拡張機能がAuth0アカウントにアクセスすることを許可するように促されます。許可すると、Authorization Dashboard(認可ダッシュボード)に移動します。
Dashboard - Extensions - Authorization Dashboard - Users

Webtaskストレージ

拡張機能はデフォルトでWebtaskストレージを使用します。データの上限は500 KBです。これは以下に相当します。
  • 1000のグループと3000人のユーザーで、それぞれのユーザーが3つのグループのメンバーである
  • 20のグループと7000人のユーザーで、それぞれのユーザーが3つのグループのメンバーである

Amazon S3

ストレージプロバイダーとしてAmazon S3を使用することもできます。Amazon S3はファイルベースのストレージプラットフォームで、並列書き込みを行います。これが問題となる場合もありますが、拡張機能のストレージロジックはこれを考慮しようとします。ただし、グループ、ロールや権限の作成を自動化する場合には、APIを順次に呼び出すことが推奨されます。
この拡張機能は、性能面で制限があるため、大規模なデータセットでの使用には適していません。データストレージにAmazon S3を使用する前に、意図した運用での性能をテストし、確認することをお勧めします。S3に追加されるデータが増えるにしたがって性能が低下する可能性もあります。
Amazon S3を使用するには、以下を行います。
  1. S3バケットを作成します。
  2. IAMユーザーを作成し、そのユーザーのキーIDを取得します。
  3. IAMユーザーのポリシーを作成して、IAMユーザーがバケットを変更できるようにします。
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::{nameOfYourBucket}/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::{nameOfYourBucket}"
            ],
            "Condition": {}
        }
    ]
}

もっと詳しく

I