トークンのカスタマイズ

この記事では、Microsoft ID プラットフォームの ID トークン、アクセス トークン、セキュリティ トークンを使用してアプリケーションにセキュリティを組み込むのに役立ちます。 Microsoft Entra トークンで受け取ることができる情報と、それらをカスタマイズする方法について説明します。 これは、独立系ソフトウェア開発者 (ISV) が Microsoft Entra ID 用にアプリケーションを構築および最適化する方法に関する一連の記事の 5 つ目です。 このシリーズでは、次のトピックの詳細を確認できます:

Microsoft Entra ID に接続するアプリケーションの主な操作は、トークンの要求と処理です。 開発者は、Microsoft Entra ID が委任されたアクセス許可アプリまたは API に送信するトークンをカスタマイズできます。 ワークロード トークンをカスタマイズすることはできません。

アプリケーションが OpenID Connect (OIDC) を実装していて、ID トークンを要求する場合は、アプリの ID トークンをカスタマイズできます。 API を実装する場合は、API を呼び出すアプリが受け取るアクセス トークンをカスタマイズできます。 アプリが API にアクセスすることを承認するための、アプリケーションが受信するアクセス トークンをカスタマイズすることはできません。

ISV の主要なトークンカスタマイズ方法は、アプリ登録のトークンに省略可能な要求を追加することです。 省略可能な要求参照には、使用可能な省略可能な要求が一覧表示されます。

マルチテナント アプリの場合、オプションの要求はすべてのテナントで使用できます。 ユーザーのオンプレミスのセキュリティ ID 要求を含める省略可能な onprem_sid 要求を含むように API アクセス トークンを構成できます。 省略可能な要求を構成できますが、構成した省略可能な要求がトークンに含まれていない場合は、アプリで常に処理する必要があります。 たとえば、ユーザーは、オンプレミスのセキュリティ識別子を持たない Microsoft Entra ID のみのユーザーである可能性があります。 この場合、Microsoft Entra ID には、トークンに省略可能な要求は含まれません。 Microsoft Entra ID は、空の ("") 値を持つ要求を返しません。

グループ要求は、特別な処理を必要とする省略可能な要求です。 アプリまたは API では、ユーザーのセキュリティ グループや入れ子になったグループをトークンに含めたり、セキュリティ グループや入れ子になったグループをグループ要求の配布リストに含めることができます。 アプリケーションは、wids (テナント全体のロール) 要求を持つトークンにユーザーのディレクトリ ロールを含めることができます。 すべてのユーザーのグループや配布リストを含めると、トークンにグループや配布リストが表示されない可能性があります。

トークン サイズでは、OAuth 2.0 アプリでは 200 個、SAML アプリの場合は 150個、ハイブリッド フローの一部として暗黙的な許可を使用するアプリの場合は 6 個に、グループ要求のエントリの合計が制限されます。 グループが多すぎる場合、トークンにはグループ超過要求があります。 トークンにグループ超過要求が含まれている場合は、フォールバックして Microsoft Graph を呼び出してユーザーのグループを取得します。 ユーザーがあまりにも多くのグループのメンバーであることを知る方法がないため、常にアプリでユーザーのグループ メンバーシップに対して Microsoft Graph を呼び出す機能を含めてください。 Microsoft Graph のコード要件により、グループ要求を使用する代わりに Microsoft Graph を使用することをお勧めします。

グループの超過を回避するには、アプリケーションが割り当てを持つグループのみを含むようにグループ要求を構成します。 この方法では、グループ要求には、ユーザーがグループのメンバーである場合にアプリまたは API に割り当てられたグループのみが含まれます (入れ子になったグループはサポートされません)。 ユーザーは、アプリが割り当てられているグループの直接のメンバーである必要があります。

グループの超過を回避するもう 1 つの方法は、グループではなくロールを使用することです。 トークンを受け取るアプリケーションまたは API のロールを構成できます。 IT 管理者は、P1 以上のライセンスを持つ Microsoft Entra ID テナントで定義したロールにグループを割り当てることができます。 割り当て後、トークンには、ユーザーが割り当てられたロールのアプリを含むロール要求、またはユーザーのグループ メンバーシップに基づくロールが含まれます。

グループまたはロールを使用するためのトレードオフを評価します。 ISV の場合は、グループではなくロールを使用することをお勧めします。

次のステップ