ヒント
このコンテンツは、Azure 用のクラウド ネイティブ .NET アプリケーションの設計に関する電子ブックからの抜粋であり、.NET Docs またはオフラインで読み取ることができる無料のダウンロード可能な PDF として入手できます。
ほとんどのソフトウェア アプリケーションでは、ユーザーまたは呼び出し元のプロセスに関する知識が必要です。 アプリケーションと対話するユーザーまたはプロセスはセキュリティ プリンシパルと呼ばれ、これらのプリンシパルの認証と承認のプロセスは ID 管理または単なる ID と呼ばれます。 単純なアプリケーションには、アプリケーション内のすべての ID 管理が含まれる場合がありますが、このアプローチは、多くのアプリケーションやさまざまな種類のセキュリティ プリンシパルでは適切にスケーリングされません。 Windows では、Active Directory を使用して一元的な認証と承認を提供できます。
このソリューションは企業ネットワーク内で有効ですが、AD ドメインの外部にあるユーザーやアプリケーションで使用するようには設計されていません。 インターネットベースのアプリケーションの成長とクラウドネイティブ アプリの増加に伴い、セキュリティ モデルは進化しています。
現在のクラウドネイティブ ID モデルでは、アーキテクチャが分散されていると見なされます。 アプリは任意の場所に展開でき、他のアプリとどこでも通信できます。 クライアントはどこからでもこれらのアプリと通信でき、実際には、クライアントはプラットフォームとデバイスの任意の組み合わせで構成される場合があります。 クラウドネイティブ ID ソリューションでは、オープン標準を使用して、クライアントからのセキュリティで保護されたアプリケーション アクセスを実現します。 これらのクライアントは、PC や携帯電話の人間のユーザーから、オンラインでホストされている他のアプリ、世界中の任意のソフトウェア プラットフォームを実行するセットトップ ボックスや IOT デバイスまで多岐に及びます。
最新のクラウドネイティブ ID ソリューションでは、通常、セキュリティ トークン サービス/サーバー (STS) によって発行されるアクセス トークンが、ID が決定された後にセキュリティ プリンシパルに対して使用されます。 アクセス トークン (通常は JSON Web トークン (JWT) ) には、セキュリティ プリンシパルに関する 要求 が含まれます。 これらの要求には、ユーザーの ID が最小限に含まれますが、プリンシパルを付与するためのアクセス レベルを決定するためにアプリケーションで使用できる他の要求も含まれる場合があります。
通常、STS はプリンシパルの認証のみを担当します。 リソースへのアクセス レベルの決定は、アプリケーションの他の部分に任されます。
リファレンス
.NET