ADFS のサポート

Windows Server の Active Directory フェデレーション サービス (AD FS) (AD FS) を使用すると、開発しているアプリケーションに OpenID Connect と OAuth 2.0 ベースの認証と承認を追加できます。 これらのアプリケーションは、AD FS に対してユーザーを直接認証できます。 詳細については、「 開発者向け AD FS シナリオ」を参照してください。

通常、AD FS に対して認証する方法は 2 つあります。

  • MSAL はMicrosoft Entra IDに接続し、AD FS にフェデレーションします。
  • MSAL は AD FS 機関に直接接続します。

MSAL4J では、これらの両方のフローがサポートされています。

MSAL はMicrosoft Entra IDに接続し、AD FS にフェデレーションします

MSAL4J は、マネージド ユーザー (Microsoft Entra ID で管理されているユーザー) またはフェデレーション ユーザー (AD FS などの別の ID プロバイダーによって管理されているユーザー) をサインインさせるMicrosoft Entra IDへの接続をサポートしています。 MSAL4J は、ユーザーがフェデレーションされているという事実を知りません。 それについては、Microsoft Entra ID と通信します。

この場合に使用する権限は、通常の機関 (機関ホスト名 + テナント、共通、または組織) です。

フェデレーション ユーザーのトークンを対話形式で取得する

AuthorizationCodeParameters または DeviceCodeParameters を使用して AcquireToken を呼び出すと、ユーザー エクスペリエンスは通常次のようになります。

  1. ユーザーが自分のアカウント ID を入力します。
  2. Microsoft Entra IDには、"組織のページに移動する" というメッセージが簡単に表示されます。 ユーザーは、ID プロバイダーのサインイン ページにリダイレクトされます。 サインイン ページは通常、組織のロゴでカスタマイズされます。
  3. このフェデレーション シナリオでサポートされている AD FS のバージョンは、AD FS v2、AD FS v3 (Windows Server 2012 R2)、AD FS v4 (AD FS 2016) です。

MSAL が AD FS 機関に直接接続する

MSAL4J は、AD FS 2019 で直接認証するためのサポートを提供します。 この場合、クライアントの初期化時に、MSAL4J に ADFS 固有の機関 URL を指定できます。 権限の値は、 https://adfs.contoso.com/adfsのようになります。

IntegratedWindowsAuthenticationParameters または UsernamePasswordParameters を使用した AcquireToken によるトークンの取得

IntegratedWindowsAuthenticationParameters または UsernamePasswordParameters で AcquireToken を使用してトークンを取得する場合、MSAL4J はユーザー名に基づいて連絡する ID プロバイダーを取得します。 MSAL4J は、ID プロバイダーに接続した後に SAML トークンを受け取ります。 その後、MSAL4J は JWT を取得するために、SAML トークンをユーザー アサーションとして(on-behalf-of フローと同様に)Microsoft Entra ID に提示します。