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