この記事は、開発者がアプリケーション開発ライフサイクルの ID とアクセス管理のベスト プラクティスを理解するのに役立ちます。 ID とアクセス管理 (IAM) を使用して、セキュリティで保護された ゼロ トラスト準拠 アプリケーションの開発を開始します。
ゼロ トラスト セキュリティ フレームワークでは、明示的な検証、最小限の特権アクセス、および侵害の想定の原則が使用されます。 ネットワーク境界の外部からアプリケーションにアクセスするなどの一般的なシナリオを可能にしながら、ユーザーとデータをセキュリティで保護します。 セキュリティ攻撃に対して脆弱になる可能性があるセキュリティで保護されたネットワーク境界の背後にある相互作用に対する暗黙的な信頼への依存を減らします。
業界のセキュリティの傾向がアプリケーションの要件に影響を与える
ゼロ トラストの実装は進化し続けていますが、各組織の体験は一意です。 多くの場合、ユーザー ID とアプリケーション ID から始まります。 多くの組織がゼロ トラストを展開する場合に優先順位を付けるポリシーとコントロールを次に示します。
- アプリとサービスの資格情報の検疫とローテーション ポリシーを実装します。 不正なアクターが証明書やパスワードなどのシークレットを侵害すると、アプリの ID を装ってトークンを取得するためのシステム アクセスの深さを実現できます。 その後、機密データにアクセスし、横方向に移動し、永続化を確立します。
- 強力な認証を展開します。 IT 管理者は、多要素認証とパスワードレス FIDO2 デバイスを必要とするポリシーを構成しています。
- リスクの低いアクセス許可を持つアプリに対するユーザーの同意を、検証済みの発行元アプリに制限します。 Microsoft Graph などの API のデータにアクセスすると、豊富なアプリケーションを構築できます。 組織と顧客は、同意を付与する前に、アプリのアクセス許可要求と信頼性を評価します。 IT 管理者は、発行元の検証を要求することで、検証の原則を明示的に採用しています。 リスクの低いアクセス許可に対するユーザーの同意のみを許可することで、最小限の特権の原則を適用します。
- レガシ プロトコルと API をブロックします。 IT 管理者は、"基本認証" などの古い認証プロトコルをブロックしており、OpenID Connect や OAuth2 などの最新のプロトコルが必要です。
信頼された標準ベースの認証ライブラリを使用する
アプリケーションの移植性とセキュリティを高めるために、既知の承認済みの標準とライブラリを使用してアプリケーションを開発します。 信頼性があり、標準に基づいた認証ライブラリは、常に最新の技術と脅威に対応するためにアップデートを維持します。 標準ベースの開発手法 では、サポートされている標準とその利点の概要が示されます。
既知の脆弱性や広範なドキュメントを含むプロトコルを使用するのではなく、Microsoft Authentication Library (MSAL)、 Microsoft Identity Web 認証ライブラリ、 Azure Software Developer Kits (SDK) などのライブラリを使用してアプリケーションを開発します。 MSAL およびソフトウェア開発者キット (SDK) を使用すると、追加のコードを記述する必要なく、これらの機能を使用できます。
- 条件付きアクセス
- デバイスの登録と管理
- パスワードレス認証と FIDO2 認証
MSAL と Microsoft Graph は、Microsoft Entra アプリケーションを開発するための最適な選択肢です。 MSAL 開発者は、プロトコルに確実に準拠します。 Microsoft は、Microsoft Entra ID を直接操作する際の効率を高める目的で MSAL を最適化します。
Microsoft Entra ID でアプリを登録する
Microsoft Entra ID のアプリケーション プロパティのセキュリティのベスト プラクティスに従います。 Microsoft Entra ID でのアプリケーションの登録は、アプリケーションの管理における構成ミスや健全性の欠如がダウンタイムやセキュリティ侵入を引き起こす可能性があるため、非常に重要です。
セキュリティを向上させるアプリケーション プロパティには、リダイレクト URI、アクセス トークン (暗黙的なフローでは使用しない)、証明書とシークレット、アプリケーション ID URI、およびアプリケーションの所有権が含まれます。 コードのセキュリティ脅威モデルの評価と同様に、定期的なセキュリティと正常性の評価を実施します。
ID とアクセス管理を委任する
顧客が定義および管理する明示的な ID 検証とアクセス制御にトークンを使用するアプリケーションを開発します。 Microsoft は、独自のユーザー名とパスワード管理システムを開発することを推奨します。
IT 管理者がアプリを停止または再デプロイすることなく資格情報をローテーションできるように、資格情報をコードから除外します。 Azure Key Vault や Azure マネージド ID などのサービスを使用して IAM を委任します。
最小限の特権アクセスを計画および設計する
ゼロ トラストの重要な原則は、最小限の特権アクセスです。 顧客が最小限の特権ポリシーを正常に構成できるように、アプリケーションを十分に開発して文書化します。 トークンと API をサポートする場合は、アプリケーションが呼び出すリソースに関する適切なドキュメントを顧客に提供します。
ユーザーが特定のタスクを実行するために必要な最小限の特権を常に提供します。 たとえば、 Microsoft Graph で詳細なスコープを使用します。
Graph Explorer でスコープを調べて API を呼び出し、必要なアクセス許可を調べます。 これらは、最も低い特権から最高の特権まで順に表示されます。 可能な限り低い特権を選択すると、アプリケーションが攻撃に対して脆弱でなくなります。
アプリケーションの脆弱性のリスクを軽減し、セキュリティ侵害が起こった場合の影響範囲を縮小するために、最小限の特権の原則を用いてセキュリティを強化するためのガイダンスに従ってください。
トークンを安全に管理する
アプリケーションが Microsoft Entra ID からトークンを要求したら、それらを安全に管理します。
- アプリケーションに適切にスコープが設定されていることを検証します。
- 適切にキャッシュします。
- 意図したとおりに使用します。
- エラー クラスを確認し、適切な応答をコーディングすることで、トークンの問題を処理します。
- アクセス トークンを直接読み取る代わりに、トークンの応答でスコープと詳細を表示します。
継続的アクセス評価 (CAE) のサポート
継続的アクセス評価 (CAE) を使用すると、Microsoft Graph はセキュリティ イベントに応答してアクセスを迅速に拒否できます。 たとえば、次のテナント管理者アクティビティがあります。
- ユーザー アカウントを削除または無効にします。
- ユーザーの多要素認証 (MFA) を有効にします。
- ユーザーが発行したトークンを明示的に取り消します。
- リスクの高い状態に移行するユーザーを検出します。
CAE をサポートする場合、Microsoft Entra ID が Microsoft Graph を呼び出すために発行するトークンは、標準の 60 分から 90 分ではなく 24 時間有効です。 CAE は、MSAL がトークンの有効期限が切れる前に事前にトークンを更新できるようにすることで、アプリに回復性を追加します。
IT 担当者がユーザーとグループに割り当てるアプリ ロールを定義する
アプリ ロールは、 アプリケーションにロールベースのアクセス制御を実装するのに役立ちます。 アプリ ロールの一般的な例としては、管理者、閲覧者、共同作成者などがあります。 ロールベースのアクセス制御を使用すると、アプリケーションでは 、定義されたロールに基づいて、機密性の高いアクションをユーザーまたはグループに制限できます。
確認済みの発行者になる
検証済みの発行元として、Microsoft Partner Network アカウントで ID を確認し、確立された検証プロセスを完了します。 マルチテナント アプリの開発者にとって、検証済みの発行元であることは、顧客テナントの IT 管理者との信頼を築くのに役立ちます。
次のステップ
- 「トークンのカスタマイズ」では、Microsoft Entra トークンで受け取ることができる情報について説明しています。 最小限の特権でアプリケーションのゼロ トラスト セキュリティを強化しながら、柔軟性と制御を向上させるためにトークンをカスタマイズする方法について説明します。
- トークンでグループ要求とアプリ ロールを構成 する:アプリ ロール定義を使用してアプリを構成し、セキュリティ グループをアプリ ロールに割り当てる方法について説明します。 この方法では、最小限の特権でアプリケーションのゼロ トラスト セキュリティを強化しながら、柔軟性と制御が向上します。
- ID に対するゼロ トラスト アプローチを使用してアプリを構築すると 、アクセス許可とアクセスのベスト プラクティスの概要が提供されます。
- ID 統合ガイドでは、セキュリティ ソリューションを Microsoft 製品と統合してゼロ トラスト ソリューションを作成する方法について説明します。
- アプリケーションの登録、承認、アクセスに関する開発者と管理者の責任は、 IT 担当者との共同作業を改善するのに役立ちます。
- シングルテナント アプリとマルチテナント アプリでサポートされている ID とアカウントの種類 では、アプリで Microsoft Entra ID) テナントのユーザー、任意の Microsoft Entra テナント、または個人の Microsoft アカウントを持つユーザーのみを許可するかどうかを選択する方法について説明します。
- 承認のベスト プラクティスは 、アプリケーションに最適な承認、アクセス許可、および同意モデルを実装するのに役立ちます。
- API 保護では、登録を通じて API を保護し、アクセス許可と同意を定義し、ゼロ トラストの目標を達成するためのアクセスを強制するためのベスト プラクティスについて説明します。