この記事では、ギャラリー アプリケーションとカスタム (ギャラリー以外) アプリケーションの両方に対して、Microsoft Entra ID で OpenID Connect (OIDC) シングル サインオン (SSO) を構成する方法について説明します。 OIDC SSO を使用すると、ユーザーは Microsoft Entra 資格情報を使用してアプリケーションにサインインし、シームレスな認証エクスペリエンスを提供できます。
OIDC は、セキュリティで保護されたユーザー認証とシングル サインオンを可能にする OAuth 2.0 上に構築された認証プロトコルです。 OIDC プロトコルの詳細については、 Microsoft ID プラットフォームでの OIDC 認証に関する記事を参照してください。
非運用環境を使用して、この記事の手順をテストすることをお勧めします。
OIDC SSO を構成する前に、次の主要な概念を理解しておくことが役立ちます。
- アプリの登録とエンタープライズ アプリケーション: アプリの登録によってアプリケーションの ID と構成が定義され、エンタープライズ アプリケーションはテナント内のアプリのインスタンスを表します。 詳細については、「 Microsoft Entra ID のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」を参照してください。
- アクセス許可と同意: アプリケーションはリソースにアクセスするためのアクセス許可を要求し、ユーザーまたは管理者は同意を付与します。 同意フレームワークの詳細については、 Microsoft ID プラットフォームでのアクセス許可と同意に関するページを参照してください。
- マルチテナント アプリケーション: 複数の組織で使用できるアプリケーション。 マルチテナントのガイダンスについては、「 方法: アプリをマルチテナントに変換する」を参照してください。
- 認証フロー: シングルページ アプリケーションの PKCE を使用した承認コード フローなど、ユーザーを認証するためのさまざまな方法。 詳細については、「 Microsoft ID プラットフォームの認証フロー」を参照してください。
- OIDC SSO: OIDC プロトコルを使用してアプリケーション間でユーザーを認証するシングル サインオンの方法。 これにより、ユーザーは 1 回サインインし、資格情報を再入力しなくても複数のアプリケーションにアクセスできます。
前提条件
OIDC ベースの SSO を構成するには、次が必要です。
- Microsoft Entra ユーザー アカウント。 まだアカウントがない場合は、無料でアカウントを作成することができます。
- 次のいずれかのロール:
- クラウド アプリケーション管理者
- アプリケーション管理者
- サービス プリンシパルの所有者
- カスタム アプリケーションの場合: リダイレクト URI や認証要件など、アプリケーションに関する詳細
Microsoft Entra アプリ ギャラリー アプリの OIDC SSO を構成する
Microsoft Entra ID のギャラリー アプリケーションには OIDC サポートが事前に構成されており、同意ベースのプロセスを通じてセットアップが簡単になります。
SSO に OIDC 標準を使用するエンタープライズ アプリケーションを追加する場合は、[ サインアップ ] ボタンを選択します。 アプリ ギャラリーからアプリを選択すると、右側のウィンドウにボタンが表示されます。 このボタンを選択すると、アプリケーションのサインアップ プロセスが完了します。
ギャラリー アプリケーションの OIDC ベースの SSO を構成するには:
クラウド アプリケーション管理者 以上として Microsoft Entra 管理センターにサインインします。
Entra ID>エンタープライズアプリ>すべてのアプリケーションに移動します。
すべてのアプリケーション メニューで、新しいアプリケーション を選択します。
[ Microsoft Entra ギャラリーの参照 ] ウィンドウが開きます。 この例では、 SmartSheet を使用します。
SmartSheet のサインアップを選択します。 Microsoft Entra ID からユーザー アカウントの資格情報を使用してサインインします。 アプリケーションのサブスクリプションを既に持っている場合は、ユーザーの詳細およびテナント情報が検証されます。 アプリケーションがユーザーを確認できない場合は、アプリケーション サービスへのサインアップにリダイレクトされます。
サインイン資格情報を入力すると、同意画面が表示されます。 同意画面には、アプリケーションと必要なアクセス許可に関する情報が表示されます。
[組織の代理として同意する] を選択して、 [同意する] を選択します。 アプリケーションがテナントに追加され、アプリケーションのホーム ページが表示されます。
アプリケーションに必要な追加の構成手順については、アプリケーション ベンダーにお問い合わせください。
注
ギャラリー アプリケーションのインスタンスは 1 つだけ追加できます。 アプリケーションを追加してもう一度同意しようとすると、もう一度テナントに追加することはできません。
ユーザーと管理者の同意の詳細については、「 ユーザーと管理者の同意について」を参照してください。 同意フレームワークの包括的な情報については、 Microsoft ID プラットフォームでのアクセス許可と同意に関するページを参照してください。
カスタム (ギャラリー以外) アプリケーションの OIDC SSO を構成する
Microsoft Entra ギャラリーで使用できないアプリケーションの場合は、アプリケーションを手動で登録して構成する必要があります。 このセクションでは、カスタム アプリケーションで OIDC SSO を設定する手順について説明します。
手順1: アプリケーションを登録する
- クラウド アプリケーション管理者 以上として Microsoft Entra 管理センターにサインインします。
- Entra ID>App registrations>New registration に移動します。
- アプリケーションの 名前 ("My Custom Web App" など) を入力します。
- [ サポートされているアカウントの種類] で、適切なオプションを選択します。
- この組織のディレクトリ内のアカウント は、シングルテナント アプリケーションの場合のみ
- マルチテナント アプリケーションの詳細については、任意の組織ディレクトリのアカウント、マルチテナント アプリケーションに関するページを参照してください。
- 職場/学校アカウントと個人アカウントの両方をサポートする場合は、組織のディレクトリ内のアカウントと個人の Microsoft アカウント
-
[リダイレクト URI] で、プラットフォームの種類を選択し、アプリケーションのリダイレクト URI を入力します。
-
Web: サーバー側の Web アプリケーションの場合 (たとえば、
https://yourdomain.com/auth/callback) -
シングルページ アプリケーション (SPA):最新の認証フローを使用するクライアント側アプリケーションの場合 (たとえば、開発用の
https://yourdomain.comまたはhttp://localhost:3000) - パブリック クライアント/ネイティブ: モバイル アプリケーションとデスクトップ アプリケーション用
-
Web: サーバー側の Web アプリケーションの場合 (たとえば、
- 登録 を選択します。
手順 2: 認証設定を構成する
アプリの登録で、[ 認証] に移動します。
リダイレクト URI がプラットフォームの種類に対して正しく構成されていることを確認します。
認証フローを構成する (セキュリティにとって重要):
Single-Page アプリケーション (SPA) の場合:
- シングルページ アプリケーション プラットフォームの下にリダイレクト URI が表示されていることを確認します。 このオプションでは、PKCE を使用してセキュリティで保護された 承認コード フローが自動的に構成されます。これは、SPA に推奨される方法です。
- レガシ アプリケーションで必要な場合を除き、暗黙的な許可オプションを有効にしないでください
Web アプリケーションの場合:
- リダイレクト URI が Web プラットフォームの下に一覧表示されていることを確認します。 このオプションは、標準の 承認コード フローを構成します。
Warnung
ブラウザー履歴のトークン漏洩など、セキュリティの脆弱性により、新しいアプリケーションには暗黙的な許可フロー は推奨されません 。 代わりに、シングルページ アプリケーションに対して PKCE で承認コード フロー を使用することを強くお勧めします。 これらのオプションは、より安全なフローをサポートするために更新できないレガシ アプリケーションがあり、関連するセキュリティ リスクを理解している場合にのみ有効にします。
認証フローの詳細については、「 Microsoft ID プラットフォームの認証フロー」を参照してください。
手順 3: クライアント資格情報を構成する (Web アプリケーション用)
アプリケーションが機密クライアント (シークレットを安全に格納できるサーバー側 Web アプリケーション) の場合:
- [証明書とシークレット] に移動します。
- 新しいクライアント シークレットを選択します。
- 説明を追加し、有効期限を選択します。
- [ 追加] を選択し、シークレット値をすぐにコピーします (再度表示することはできません)。
- クライアント シークレットをアプリケーション構成に安全に格納します。
ヒント
運用アプリケーションの場合は、セキュリティ強化のためにクライアント シークレットの代わりに証明書を使用することを検討してください。 「 証明書の資格情報」を参照してください。
手順 4: API のアクセス許可を構成する
- API のアクセス許可に移動します。
- 既定では、Microsoft Graph の
User.Readアクセス許可が追加されます。 - OIDC 認証では、通常、次の委任されたアクセス許可が必要です。
- openid: OIDC 認証に必要
- profile: ユーザーのプロファイル情報にアクセスするには
- 電子メール: ユーザーのメール アドレスにアクセスするには
- アクセス許可を追加するには:
- [ アクセス許可の追加] を選択する
- Microsoft Graph を選択する
- 委任されたアクセス許可を選択します
- 必要なアクセス許可 (openid、プロファイル、電子メールなど) を検索して選択します
- [アクセス許可の追加] を選択する
- アプリケーションに管理者の同意が必要なアクセス許可が必要な場合は、[ テナント] に管理者の同意を付与するを選択します。
アクセス許可と同意の概要については、 Microsoft ID プラットフォームでのアクセス許可と同意に関するページを参照してください。
手順 5: 省略可能な要求を構成する (必要な場合)
- [トークンの構成] に移動します。
- [ 省略可能な要求の追加] を選択します。
- 追加する省略可能な要求 (
email、given_name、family_nameなど) を選択します。 - [ 追加] を選択して変更を適用します。
手順 6: アプリケーションの詳細を収集する
登録と構成が完了したら、アプリケーションに必要な次の情報を収集します。
-
[概要] ページで、次の点に注意してください。
- アプリケーション (クライアント) ID: アプリの一意識別子
- ディレクトリ (テナント) ID: テナントの一意識別子
-
OIDC メタデータとエンドポイントを表示するには、[エンドポイント] を選択します。
-
OIDC メタデータ ドキュメント:
https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid_configuration - 承認エンドポイント: サインイン フローを開始する場合
- トークン エンドポイント: トークンの承認コードを交換する場合
- JWKS URI: トークン署名の検証用
-
OIDC メタデータ ドキュメント:
これらの詳細は、アプリケーションの OIDC ライブラリ構成で使用されます。
手順 7: アプリケーション コードを構成する
収集した情報を使用して、次の方法でアプリケーションの OIDC ライブラリを構成します。
- クライアント ID: 手順 5 のアプリケーション (クライアント) ID
- クライアント シークレット: 該当する場合 (Web アプリケーションの場合)
- リダイレクト URI: 手順 1 で構成したのと同じ URI
-
機関/発行者:
https://login.microsoftonline.com/{tenant}/v2.0/({tenant} をテナント ID に置き換えます) -
スコープ: 通常、基本的なOIDC認証に使用される
openid profile email
具体的な実装ガイダンスについては、Web アプリケーションの PKCE を使用した承認コード フロー を参照してください。
手順 8: OIDC SSO 構成をテストする
オンライン ツールの使用: https://jwt.msを使用して基本認証フローをテストできます。
- サインイン URL を作成します。
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize?client_id={client_id}&response_type=id_token&redirect_uri=https://jwt.ms&scope=openid&nonce={random_value} -
{tenant}と{client_id}を実際の値に置き換える - ブラウザーでこの URL に移動して、認証フローをテストします
- サインイン URL を作成します。
アプリケーション内: OIDC ライブラリをアプリケーションに統合し、完全なサインイン エクスペリエンスをテストします。
ユーザーの割り当て: エンタープライズ アプリケーションに移動し、アプリを見つけて、[ユーザーとグループ] でユーザーまたは グループを割り当てます。
マルチテナント アプリに関する考慮事項
アプリケーションで複数の組織のユーザーをサポートする必要がある場合:
- 任意の組織のディレクトリ内のアカウントでアプリの登録を構成する
- 共通エンドポイントを使用します。
https://login.microsoftonline.com/common/ - アプリケーション ロジックに適切なテナント検証を実装する
詳細なガイダンスについては、「 方法: アプリをマルチテナントに変換する」を参照してください。
一般的な問題のトラブルシューティング
- 無効なリダイレクト URI: アプリ登録のリダイレクト URI が、アプリケーションから送信されたものと正確に一致していることを確認します
- 同意の問題: 要求されたアクセス許可に対して管理者の同意が必要かどうかを確認する
- トークン検証エラー: 正しい JWKS URI を使用していることを確認し、トークン署名を検証します
- マルチテナントの問題: 正しいエンドポイント (一般的なエンドポイントとテナント固有のエンドポイント) を使用していることを確認する
包括的なトラブルシューティング ガイダンスについては、 Microsoft ID プラットフォームのエラー コードを参照してください。