機密クライアント アプリケーションを構築する場合、資格情報を効果的に管理することが重要です。 この記事では、Microsoft Entra のアプリ登録にクライアント証明書、フェデレーション ID 資格情報、またはクライアント シークレットを追加する方法について説明します。 これらの資格情報を使用すると、ユーザーの操作なしでアプリケーション自体を安全に認証し、Web API にアクセスできます。
[前提条件]
クイック スタート: Microsoft Entra ID でアプリを登録する。
アプリケーションに資格情報を追加する
機密クライアント アプリケーションの資格情報を作成する場合:
クライアント シークレットの脆弱性の詳細については、「シークレット ベースの認証からアプリケーションを移行する」を参照してください。
公開キーと呼ばれることもあります。証明書は、クライアント シークレットよりも安全であると見なされるため、推奨される資格情報の種類です。
Microsoft Entra 管理センターの [アプリの登録] でアプリケーションを選びます。
証明書とシークレット>Certificates>証明書のアップロードを選択します。
アップロードするファイルを選択します。
.cer、.pem、.crt のいずれかのファイル形式である必要があります。
[] を選択し、[] を追加します。
クライアント アプリケーション コードで使用する証明書 の拇印 を記録します。
クライアント シークレットは、"アプリケーション パスワード" とも呼ばれ、アプリで自身を識別するために証明書の代わりに使用できる文字列値です。
クライアント シークレットは証明書やフェデレーション資格情報よりも安全性が低いため、運用環境では 使用しないでください 。 ローカル アプリの開発には便利ですが、運用環境で実行されているアプリケーションの証明書またはフェデレーション資格情報を使用して、セキュリティを強化することが不可欠です。
Microsoft Entra 管理センターの [アプリの登録] でアプリケーションを選びます。
[証明書とシークレット>クライアント シークレット>新しいクライアント シークレットを選択します。
クライアント シークレットの説明を追加します。
シークレットの有効期限を選択するか、カスタムの有効期間を指定します。
- クライアント シークレットの有効期間は、2 年間 (24 か月) 以下に制限されています。 24 か月を超えるカスタムの有効期間を指定することはできません。
- Microsoft では、有効期限の値は 12 か月未満に設定することをお勧めしています。
[] を選択し、[] を追加します。
クライアント アプリケーション コードで使用するクライアント シークレット 値 を記録します。 このページを終了しても、このシークレット値は 再び表示されません 。
注
サービス プリンシパルを自動的に作成する Azure DevOps サービス接続を使用している場合は、クライアント シークレットを直接更新するのではなく、Azure DevOps ポータル サイトからクライアント シークレットを更新する必要があります。 Azure DevOps ポータル サイトからクライアント シークレットを更新する方法については、「Azure Resource Manager サービス接続のトラブルシューティング」を参照してください。
フェデレーション ID 資格情報は、ワークロード (GitHub Actions、Kubernetes で実行されているワークロード、Azure 以外のコンピューティング プラットフォームで実行されているワークロードなど) が、ワークロード ID フェデレーションを使用してシークレットを管理することなく Microsoft Entra で保護されたリソースにアクセスできるようにする資格情報の一種です。
フェデレーション資格情報を追加するには、次の手順に従います。
Microsoft Entra 管理センターの [アプリの登録] でアプリケーションを選びます。
[証明書 & シークレット>Federated 資格情報>資格情報の追加] を選択します。
[ フェデレーション資格情報シナリオ ] ドロップダウン ボックスで、サポートされているシナリオのいずれかを選択し、対応するガイダンスに従って構成を完了します。
- 別のテナントの Azure Key Vault を使用してテナント内のデータを暗号化するためのカスタマー マネージド キー。
- アプリケーションのトークンを取得し、Azure に資産をデプロイするように GitHub ワークフローを構成するための Azure リソースをデプロイする GitHub アクション。
-
Kubernetes が Azure リソースにアクセス して、アプリケーションのトークンを取得し、Azure リソースにアクセスするように Kubernetes サービス アカウント を構成します。
- 他の発行者 によって、マネージド ID または外部の OpenID Connect プロバイダーによって管理される ID を信頼するようにアプリケーションを構成し、アプリケーションのトークンを取得して Azure リソース にアクセスできるようにすることができます。
フェデレーション資格情報を使用してアクセス トークンを取得する方法の詳細については、 Microsoft ID プラットフォームと OAuth 2.0 クライアント資格情報フローを参照してください。
関連コンテンツ