メインコンテンツへスキップ
デフォルトでは、Authentication API は特定の組織を識別するために組織 ID を使用します。必要に応じて、テナントを設定し、識別子として組織名も使用できるようにすることができます。ただし、この機能を有効にする前に、ユーザビリティとセキュリティの両面への影響を考慮する必要があります。想定される影響をより正確に理解するには、考慮事項と推奨事項 のセクションを確認してください。

仕組み

Authentication API で組織名をサポートするようにテナントを設定すると、次のようになります。
  • /authorize エンドポイントおよび SAML エンドポイントの organization パラメーターで、組織名と ID の両方を指定できるようになります。
  • アクセストークンと には、自動的に org_nameorg_id の両方の クレーム が含まれます。
  • 組織 には、2 つの名前を設定できます。1 つは一意の論理識別子として使用される必須の Name 値、もう 1 つは任意の表示用の Display Name です。org_name パラメーターで指定できるのは必須の Name 値のみで、Display Name 値はサポートされません。
  • この機能はテナント レベルで管理されます。特定の組織ごとに個別に有効化することはできません。
この機能は、 または から有効にできます。
  • Auth0 Dashboard: 左側のメニューから Settings を選択し、Advanced タブを開きます。Settings セクションで、Allow Organization Names in Authentication API トグルを有効にします。
  • Management API: PATCH /api/v2/tenants/settings エンドポイントを使用して、allow_organization_name_in_authentication_apitrue に設定します。詳細については、Management API のドキュメントを参照してください。

フローの例

次の例では、組織名を使用する認可コードフローを示します。
  1. organization パラメーターに組織名を指定して、/authorize エンドポイントを呼び出します。
  1. 認可コードを取得したら、POST /oauth/token エンドポイントを呼び出して、アクセストークンとIDトークンを取得します。
  1. 返されるデコード済みトークンには、org_idorg_name の クレーム の両方が含まれます。
{
    "sub": "google-oauth2|10...17",
    "aud": [
        "https://yourApp"
    ],
    "iat": 1686840988,
    "exp": 1686927388,
    "azp": "Suo...qTd",
    "scope": "openid profile",
    "org_id": "{yourOrganizationId}",
    "org_name": "{yourOrganizationName}"
}

考慮事項と推奨事項

Authentication API で組織名を使用する前に、まず組織名と ID の主な違いを理解しておくことが重要です。 組織 ID は変更されませんが、組織名は初回作成後であればいつでも変更できます。さらに、単一のテナント内では、ある時点で 厳密に 1 つ の組織にのみ割り当てられている限り、組織名を再利用できます。実際には、ある組織の名前を変更し、その元の名前をテナント内の別の組織に再利用できることを意味します。組織名が一意なのは単一のテナント内のみであり、複数のテナントにまたがる 2 つ以上の組織で同じ名前が使用されることがあります。 一般に、トークンの検証には組織 ID の使用を推奨します。ただし、ユースケースによっては組織名を使用するほうが適切な場合もあるため、この機能を実装する際は以下の影響を考慮してください。

ユーザビリティとセキュリティに関する考慮事項

組織名を使用してトークンを要求および検証する場合は、以下の潜在的な影響を考慮してください。
  • 組織名は再利用される可能性があります: 有効期間の長いトークンは、組織が名前を変更しても失効せず、それらのトークン内の org_name クレームには元の値が保持されます。後でその元の名前が別の組織によって再利用された場合、そのようなトークンによって、ユーザーに新しい組織が管理するデータやリソースへの未承認のアクセスが許可される可能性があります。
  • 組織名は単一のテナント内でのみ一意です: API がトークン内の iss (issuer) クレームを検証しない場合、別のテナントにある同名の組織が生成したトークンを、API が誤って受け入れる可能性があります。
  • 組織名は変更できます: 組織名を変更した場合、アプリケーションは Authentication API リクエストで新しい組織名を指定する必要があります。トークンは長期間有効な場合があるため、トークン内の org_name クレームが現在の組織名と一致しなくなる可能性があり、その結果、アプリケーションが適切な組織へのアクセスを許可できなくなるおそれがあります。
セキュリティとユーザビリティに影響する可能性があるため、組織を扱う際にトークンを検証する場合は、名前ではなく ID を使用することを推奨します。組織名を使用する場合は、最適な運用のために以下のベストプラクティスに従ってください。
  • トークンが Auth0 テナントによって発行されたことを確認するため、iss クレームは必ず検証してください。
  • テナント内で以前使用されていた組織名は再利用しないでください。名前の再利用を防ぎ、過去に発行されたトークンが別の組織へのアクセスに使われないようにするため、過去の組織名を正確かつ最新の状態で記録してください。
  • 組織の利用開始後は、どうしても必要な場合を除き、名前を変更しないでください。組織名を変更する場合、既存のアクセストークンと ID トークンには新しい組織名が自動的には反映されない点に注意してください。組織名を変更した後は、ユーザーに再度ログインするよう促してください。