追加の証明書のダウンロードが必要な場合、ADAL を使用して Android デバイスからの認証が失敗する

この記事では、追加の証明書のダウンロードが必要な場合に、Android デバイスからの Azure Active Directory 認証ライブラリ (ADAL) 認証が失敗する問題について説明します。

元の製品バージョン: Microsoft Entra ID
元の KB 番号: 3203929

現象

ADAL for Android を使用して認証しようとすると、フェデレーション サインインが失敗する可能性があります。 具体的には、ログイン ページを表示しようとすると、アプリケーションによって AuthenticationException エラーがトリガーされます。 Google Chrome では、STS ログイン ページが安全でないと呼ばれる場合があります。 この問題は、Android 用 ADAL を使用してフェデレーション サーバーに接続するすべてのアプリケーションで、Android デバイスでのみ発生します。

この問題が発生しているかどうかを判断するには、次のテストを実行します。

  1. セキュリティ トークン サービス (STS) サーバーの完全修飾ドメイン名 (FQDN) を取得します。 これを行うには、次の手順を実行します。

    1. Android 以外のデバイスで に https://login.microsoftonline.com 移動します。
    2. 職場または学校のアカウントを入力します。
    3. フェデレーション STS ログイン ページにリダイレクトされたら、ブラウザーの URL アドレスをメモします。 のようになります https://sts.contoso.com。 FQDN は です sts.contoso.com
  2. 次の URL に移動し、STS_SERVER_FQDN_HERE>を STS FQDN に置き換えます<。

    https://www.ssllabs.com/ssltest/analyze.html?d=<STS_SERVER_FQDN_HERE>&hideResults=on&latest

    以下に例を示します。

    https://www.ssllabs.com/ssltest/analyze.html?d=sts.contoso.com&hideResults=on&latest

  3. 次のいずれかのメッセージが表示されるかどうかを確認します。

    • 追加ダウンロード
    • サーバーによって送信される
    • 信頼ストア内

    SSL 証明書のいずれかが "追加ダウンロード" メッセージを表示する場合は、次のスクリーンショットに従って、このセクションで前述した問題が発生しています。

    追加のダウンロード メッセージのスクリーンショット。

    Android デバイスで認証が成功したことを示す "サーバーによって送信" というメッセージが表示された証明書を示すスクリーンショットを次に示します。

    [Sent by server]\(サーバーによって送信\) メッセージのスクリーンショット。

原因

Android では、証明書の authorityInformationAccess フィールドからの追加の証明書のダウンロードはサポートされていません。 これは、すべての Android バージョンとデバイス、および Chrome ブラウザーに当てはまります。 authorityInformationAccess フィールドに基づいて追加ダウンロード用としてマークされているサーバー認証証明書は、証明書チェーン全体が Active Directory フェデレーション サービス (AD FS) (AD FS) から渡されない場合、このエラーをトリガーします。

解決方法

この問題を解決するには、STS および Web アプリケーション プロキシ (WAP) サーバーを構成して、必要な中間証明書を SSL 証明書と共に送信します。 これを行うには、次の手順を実行します。

  1. コンピューターから AD FS および WAP サーバー (またはサーバー) のコンピューターの個人用ストアに SSL 証明書をエクスポートする場合は、秘密キーをエクスポートし、[ Personal Information Exchange - PKCS] #12 を選択していることを確認します。 また、[可能な場合は証明書パスにすべての証明書を含める] ボックスと [すべての拡張プロパティをエクスポートする] チェックボックスが選択されていることを確認します。
  2. Windows サーバーでを実行 certlm.msc し、 *をインポートします。PFX ファイルをコンピューターの個人用証明書ストアに格納します。 これを行うと、クライアント アプリケーションが認証に ADAL を使用すると、サーバーは証明書チェーン全体を渡します。

注:

ネットワーク ロード バランサーの証明書ストアも、証明書チェーン全体を含むように更新する必要があります。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。