Microsoft ID プラットフォームにアプリケーションを登録する
アプリで、保護されたリソースへのアクセスなど、Microsoft Entra IDの ID およびアクセス管理 (IAM) 機能を使用するには、最初に登録する必要があります。 次に、Microsoft ID プラットフォームは、登録されたアプリケーションの IAM 関数を実行します。 この記事では、Microsoft Entra 管理センターで Web アプリケーションを登録する方法について説明します。 Microsoft ID プラットフォームで登録できるアプリの種類の詳細については、こちらをご覧ください。
ヒント
Azure AD B2C のアプリケーションを登録するには、「 チュートリアル: Azure AD B2C に Web アプリケーションを登録する」の手順に従います。
前提条件
- Microsoft Entra ID テナント。 テナントがない場合は、無料の Azure アカウントを作成 して無料のサブスクリプションを取得します。
- 少なくとも クラウド アプリケーション管理者 ロールを持つアカウント。
アプリケーションを登録する
アプリケーションを登録すると、アプリとMicrosoft ID プラットフォームの間に信頼関係が確立されます。 信頼は一方向です。アプリはMicrosoft ID プラットフォームを信頼し、他の方法では信頼しません。 作成後、アプリケーション オブジェクトを異なるテナント間で移動することはできません。
Microsoft Entra 管理センターにサインインします。
複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコンを使用して、[ ディレクトリ + サブスクリプション ] メニューからアプリケーションを登録するテナントに切り替えます。
[IdentityApplications]\(ID >アプリケーション\>) を参照しアプリの登録[新規登録] を選択します。
アプリケーションの表示 名 を入力します。
[ サポートされているアカウントの種類 ] セクションで、アプリケーションを使用できるユーザーを指定します。
サポートされているアカウントの種類 説明 この組織のディレクトリ内のアカウントのみ テナント内のユーザー (またはゲスト) のみが使用するアプリケーションを構築する場合は、このオプション を選択します 。
基幹業務 (LOB) アプリケーションと呼ばれることがよくあります。このアプリは、Microsoft ID プラットフォームのシングルテナント アプリケーションです。組織のディレクトリ内のアカウント 任意のMicrosoft Entraテナントのユーザーがアプリケーションを使用できるようにする場合は、このオプションを選択します。 このオプションは、たとえば、複数の組織に提供するサービスとしてのソフトウェア (SaaS) アプリケーションを構築する場合に適しています。
この種類のアプリは、Microsoft ID プラットフォームのマルチテナント アプリケーションと呼ばれます。組織のディレクトリ内のアカウントと個人用 Microsoft アカウント 最も広い範囲の顧客を対象とする場合は、このオプションを選択します。
このオプションを選択すると、個人の Microsoft アカウントを持つユーザーもサポートできるマルチテナント アプリケーションを登録できます。 個人用 Microsoft アカウントには、Skype、Xbox、Live、Hotmail アカウントが含まれます。個人用 Microsoft アカウント 個人の Microsoft アカウントを持つユーザーに対してのみアプリケーションをビルドする場合は、このオプションを選択します。 個人用 Microsoft アカウントには、Skype、Xbox、Live、Hotmail アカウントが含まれます。 リダイレクト URI には何も入力しないでください (省略可能)。 リダイレクト URI は、次のセクションで構成します。
[ 登録 ] を選択して、最初のアプリの登録を完了します。
登録が完了すると、Microsoft Entra 管理センターにアプリ登録の [概要] ウィンドウが表示されます。 このページでは、アプリに次の値が割り当てられました。
- すべてのテナントにわたって、Microsoft クラウド エコシステム内のアプリケーションを一意に識別するアプリケーション (クライアント) ID。
- テナント内のアプリケーションを一意に識別するオブジェクト ID。
プラットフォーム設定を構成する
プラットフォーム設定には、リダイレクト URI、特定の認証設定、またはアプリケーションのプラットフォームに固有のフィールド ( Web アプリケーションや シングルページ アプリケーションなど) が含まれます。
[ 管理] で、[認証] を選択 します。
[ プラットフォームの構成] で、[ プラットフォームの追加] を選択します。
[ プラットフォームの構成] で、アプリケーションの種類 (プラットフォーム) のタイルを選択して、その設定を構成します。
プラットフォーム [設定] オプション Web アプリの リダイレクト URI を 入力します。 この URI は、Microsoft ID プラットフォームがユーザーのクライアントをリダイレクトし、認証後にセキュリティ トークンを送信する場所です。
また、Front-channel ログアウト URL と暗黙的な許可とハイブリッド フローのプロパティを構成することもできます。
サーバー上で実行される標準 Web アプリケーションの場合は、このプラットフォームを選択します。シングルページ アプリケーション アプリの リダイレクト URI を 入力します。 この URI は、Microsoft ID プラットフォームがユーザーのクライアントをリダイレクトし、認証後にセキュリティ トークンを送信する場所です。
また、Front-channel ログアウト URL と暗黙的な許可とハイブリッド フローのプロパティを構成することもできます。
JavaScript または Angular、Vue.js、React.js、Blazor WebAssembly などのフレームワークを使用してクライアント側の Web アプリを構築する場合は、このプラットフォームを選択します。iOS/ macOS アプリの バンドル ID を入力します。 [ビルド設定] または [Info.plist] の Xcode で見つけます。
バンドル ID を指定すると、リダイレクト URI が生成されます。Android アプリの パッケージ名を入力します。 AndroidManifest.xml ファイルで見つけます。 また、 署名ハッシュを生成して入力します。
これらの設定を指定すると、リダイレクト URI が生成されます。モバイルおよびデスクトップ アプリケーション 推奨される リダイレクト URI のいずれかを選択します。 または、 カスタム リダイレクト URI 以上を指定します。
埋め込みブラウザーを使用するデスクトップ アプリケーションの場合は、https://login.microsoftonline.com/common/oauth2/nativeclient
システム ブラウザーを使用するデスクトップ アプリケーションの場合は、http://localhost
最新の Microsoft 認証ライブラリ (MSAL) を使用していない、またはブローカーを使用していないモバイル アプリケーションの場合は、このプラットフォームを選択します。 また、デスクトップ アプリケーション用にこのプラットフォームを選択します。[ 構成] を選択 して、プラットフォームの構成を完了します。
リダイレクト URI の制限
アプリ登録に追加するリダイレクト URI の形式にはいくつかの制限があります。 これらの制限の詳細については、「 リダイレクト URI (応答 URL) の制限事項と制限事項」を参照してください。
資格情報を追加する
資格情報は、Web API にアクセス する機密クライアント アプリケーション によって使用されます。 機密クライアントの例としては、Web アプリ、その他の Web API、またはサービスの種類とデーモン型のアプリケーションがあります。 資格情報を使用すると、アプリケーション自体を認証でき、実行時にユーザーからの操作は必要ありません。
機密クライアント アプリの登録には、証明書、クライアント シークレット (文字列またはパスワード)、またはフェデレーション資格情報を資格情報として追加できます。
オプション 1: 証明書を追加する
公開キーと呼ばれることもあります。証明書は、クライアント シークレットよりもセキュリティが高いと見なされるため、推奨される資格情報の種類です。 アプリケーションで認証方法として証明書を使用する方法の詳細については、「アプリケーション認証証明書の資格情報をMicrosoft ID プラットフォームする」を参照してください。
- [証明書] & [シークレット] [証明書] [証明書の>アップロード] を>選択します。
- アップロードするファイルを選択します。 ファイルの種類は、 .cer、 .pem、 .crt のいずれかである必要があります。
- [追加] を選択します。
オプション 2: クライアント シークレットを追加する
アプリケーション パスワードと呼ばれることもあります。クライアント シークレットは、証明書の代わりにアプリが ID 自体に使用できる文字列値です。
クライアント シークレットは、証明書の資格情報よりも安全性が低いと見なされます。 アプリケーション開発者は、使いやすさのために、ローカル アプリの開発中にクライアント シークレットを使用することがあります。 ただし、運用環境で実行されているアプリケーションには、証明書資格情報またはフェデレーション資格情報を使用する必要があります。
- [証明書] & [シークレット>] [クライアント シークレット] [新しいクライアント シークレット] を>選択します。
- クライアント シークレットの説明を追加します。
- シークレットの有効期限を選択するか、カスタム有効期間を指定します。
- クライアント シークレットの有効期間は、2 年間 (24 か月) 以下に制限されます。 24 か月を超えるカスタム有効期間を指定することはできません。
- Microsoft では、有効期限の値を 12 か月未満に設定することをお勧めします。
- [追加] を選択します。
- クライアント アプリケーション コードで使用するシークレットの値を記録します。 このシークレット値は、このページを離れた後 に再び表示されることはありません 。
アプリケーション のセキュリティに関する推奨事項については、「Microsoft ID プラットフォームベスト プラクティスと推奨事項」を参照してください。
サービス プリンシパルを自動的に作成する Azure DevOps サービス接続を使用している場合は、クライアント シークレットを直接更新するのではなく、Azure DevOps ポータル サイトからクライアント シークレットを更新する必要があります。 Azure DevOps ポータル サイトからクライアント シークレットを更新する方法については、「Azure Resource Manager サービス接続のトラブルシューティング」を参照してください。
オプション 3: フェデレーション資格情報を追加する
フェデレーション資格情報は、GitHub Actions、Kubernetes で実行されているワークロード、Azure の外部のコンピューティング プラットフォームで実行されているワークロードなどのワークロードが、シークレットを管理することなくMicrosoft Entra ID保護されたリソースにアクセスできるようにする資格情報の一種です。 フェデレーション資格情報では、 ワークロード ID フェデレーションが使用されます。
フェデレーション資格情報を追加するには、次の手順に従います。
[証明書] & [シークレット>] [フェデレーション資格情報] [資格情報の追加] の>順に選択します。
[ フェデレーション資格情報シナリオ ] ドロップダウン ボックスで、サポートされているシナリオのいずれかを選択し、対応するガイダンスに従って構成を完了します。
- 別のテナントで Azure Key Vaultを使用してテナント内のデータを暗号化するためのカスタマー マネージド キー。
- アプリケーションのトークンを取得し、Azure に資産をデプロイするように GitHub ワークフローを構成するための Azure リソースをデプロイする GitHub アクション。
- Kubernetes が Azure リソースにアクセス して、アプリケーションのトークンを取得し、Azure リソースにアクセスするように Kubernetes サービス アカウント を構成します。
- アプリケーションのトークンを取得し、Azure リソースにアクセスするために、外部 OpenID Connect プロバイダーによって管理される ID を構成するその他の発行者。
フェデレーション資格情報を使用してアクセス トークンを取得する方法の詳細については、「Microsoft ID プラットフォームと OAuth 2.0 クライアント資格情報フロー」を参照してください。
その他のリソース
- Microsoft ID プラットフォームでのアクセス許可と同意の詳細、または Microsoft Graph でのアクセス許可のしくみについて説明します。
- アプリケーションにコア ID とアクセス管理 (IAM) 機能を追加する手順と、アプリのセキュリティと可用性を維持するためのベスト プラクティスについて説明するクイック スタートを選択します。
- 登録されたアプリケーションを表す 2 つのMicrosoft Entra オブジェクトと、それらの間の関係について詳しく説明します。アプリケーション オブジェクトとサービス プリンシパル オブジェクト。
次の手順
アプリを使用してユーザーの代わりにアクセスを取得するか、ユーザーなしでアクセスを取得する