メインコンテンツへスキップ
Auth0 では、ロールベースアクセス制御 (RBAC) を実装する方法が 2 つ用意されており、API 独自の内部アクセス制御システムの代わりに使用することも、組み合わせて使用することもできます。Authorization Core の機能セットは Authorization Extension と同等の機能を備えており、パフォーマンスとスケーラビリティを向上させるとともに、Authorization Extension よりも柔軟な RBAC システムを提供します。現在、どちらも RBAC の主要な機能を実装しており、API に対して定義されたカスタムスコープを、Permissions としてユーザーに割り当てられたもののみに制限できます。

前提条件

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

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

  1. Auth0 Dashboard > Extensions に移動します。
  2. Auth0 Authorization を選択し、表示されるプロンプトに従ってインストールします。
  3. データの保存先として、Webtask Storage または Amazon S3 バケットを選択します。
拡張機能がインストールされると、Installed Extensions の一覧に表示されます。
Dashboard - Extensions - Installed Extensions - Authorization Extension
この拡張機能をインストールすると、アカウント用に auth0-authz アプリケーションが作成されます。このアプリケーションは編集または削除しないでください。 後で拡張機能をアンインストールすると、このアプリケーションは自動的に削除されます。
初めて拡張機能を開くリンクをクリックすると、拡張機能による Auth0 アカウントへのアクセスを許可するよう求められます。許可すると、Authorization Dashboard に移動します。
Dashboard - Extensions - Authorization Dashboard - Users

Webtask storage

この拡張機能では、デフォルトで Webtask Storage を使用します。使用できるデータ量は 500 KB に制限されています。これは次に相当します。
  • 1000 個のグループと 3000 人のユーザー (各ユーザーは 3 つのグループに所属)
  • 20 個のグループと 7000 人のユーザー (各ユーザーは 3 つのグループに所属)

Amazon S3

また、ストレージプロバイダーとして Amazon S3 を使用することもできます。Amazon S3 はファイルベースのストレージプラットフォームであるため、書き込みは並列で行われます。これにより問題が発生する可能性がありますが、この拡張機能のストレージロジックではその点を考慮するようにしています。ただし、グループ、ロール、または Permissions の作成を自動化する場合は、Auth0 は API を順次呼び出すことを推奨しています。
この拡張機能にはパフォーマンス上の制約があり、大規模なデータセットでの使用は想定されていません。データストレージに Amazon S3 を選択する前に、実際のユースケースでテストを行い、どの程度のパフォーマンスが得られるかを確認することをお勧めします。また、S3 に追加されるデータ量が増えるにつれて、パフォーマンスが低下する可能性もあります。
Amazon S3 を使用するには、次の手順が必要です。
  1. S3 バケットを作成します。
  2. IAM ユーザーを作成し、そのユーザーのキー ID を取得します。
  3. そのユーザーがバケットに変更を加えられるようにするポリシーを、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": {}
        }
    ]
}

詳細情報