クラウドネイティブ ID
ヒント
このコンテンツは eBook の「Azure 向けクラウド ネイティブ .NET アプリケーションの設計」からの抜粋です。.NET Docs で閲覧できるほか、PDF として無料ダウンロードすると、オンラインで閲覧できます。
ほとんどのソフトウェア アプリケーションは、呼び出し元のユーザーやプロセスについて何らかの知識を持っている必要があります。 アプリケーションと対話するユーザーやプロセスは、セキュリティ プリンシパルと呼ばれます。また、このようなプリンシパルを認証および承認するプロセスは、ID 管理、または単に ID と呼ばれます。 単純なアプリケーションでは、ID 管理のすべてをアプリケーション内に含めることができますが、このアプローチは、多くのアプリケーションや多くの種類のセキュリティ プリンシパルではうまく機能しません。 Windows は、Active Directory の使用をサポートして、一元化された認証と承認を提供しています。
このソリューションは、企業ネットワーク内では効果的ですが、AD ドメインの外部にいるユーザーやアプリケーションから使用するようには設計されていません。 インターネットベースのアプリケーションの増加やクラウドネイティブ アプリの台頭に伴い、セキュリティ モデルも進化しています。
現在のクラウドネイティブ ID モデルでは、アーキテクチャは分散されていることが前提となっています。 アプリはどこにでもデプロイされる可能性があり、任意の場所にある他のアプリと通信することがあります。 クライアントはどこからでもこのようなアプリと通信することができます。実際、クライアントは任意の組み合わせのプラットフォームとデバイスから構成される可能性があります。 クライアントからの安全なアプリケーション アクセスを実現するために、クラウドネイティブの ID ソリューションにはオープン スタンダードが使用されています。 このようなクライアントは、PC や電話を使う人間のユーザーから、オンラインのどこかでホストされている他のアプリ、世界のどこかにある任意のソフトウェア プラットフォームを実行しているセットトップ ボックスや IOT デバイスまで、多岐にわたります。
最新のクラウドネイティブ ID ソリューションには、一般的に、セキュリティ プリンシパルの ID が決定されると、セキュアー トークン サービス/サーバー (STS) からセキュリティ プリンシパルに発行されたアクセス トークンが使用されます。 アクセス トークンは、通常は JSON Web トークン (JWT) であり、セキュリティ プリンシパルに関する "クレーム" が含まれています。 このようなクレームには、最低でもユーザーの ID が含まれますが、プリンシパルに付与するアクセス レベルを決定するためにアプリケーションに使用できる他のクレームも含まれる場合があります。
通常、STS はプリンシパルの認証のみを担当します。 リソースへのアクセス レベルの決定は、アプリケーションの他の部分に委ねられます。
リファレンス
.NET