Kerberosアプリケーションのトラブルシューティングとベストプラクティス

従うべきベストプラクティスと、一般的なKerberosアプリケーションの構成およびトラブルシューティングする方法について説明します。

Kerberosタイムアウトのトラブルシューティング

問題:Kerberos KDCにアクセスする間にタイムアウトが発生する。以下に類似したエラーが返される:

以下の解決策を試してください:

  1. Access GatewayおよびKerberosサーバー(Active DirectoryがAccess Gateway Kerberosサービスとして実行)との間でファイアウォールのポートTCP/88およびUDP/88が開いていることを確認します。

  2. [use kdc host(kdcホストを利用する)]オプションが有効であり、関連するActive DirectoryサーバーがIPアドレスとして入力されているか確認します。

親-子/兄弟ADドメインのトラブルシューティング

問題:Organizationに、親ドメインと複数の子ドメインを持つADフォレストがある。IIS/SharePointサーバーインスタンスが子ドメインの一部である。

Kerberos認証がOAGで機能するよう設定する方法

以下の解決策を試してください:

  • IISサーバーの子ドメインAccess Gateway SPNアカウントを作成します。デフォルトではActive Directoryフォレストのすべてのドメインは互いに信頼しているため、この解決策が機能します。

    その他の場合、1つのADドメイン手順に進みます。

    親ドメインでSPNアカウントを作成する場合、SPNは子ドメインのサービスを見ることができません。

401認証エラーのトラブルシューティング

問題:Access Gateway保護対象アプリケーションで401認証エラーが発生

通常は以下の3つのうちのいずれかが間違っています:

  1. IISがKerberosプロバイダーを有効化していない。IISでKerberosプロバイダーが認証のために有効化されているか確認します。
  2. IWA_USERNAMEヘッダーで有効なユーザー名を送信していない。「IWA_USERNAMEヘッダーが有効であることを確認する」を参照してください。

  3. 保護対象ホスト名がIIS Windowsホスト名と同じではありません。アプリケーションの[Protected Web Resource(保護されたWebリソース)]フィールドがIIS Windowsのホスト名と一致しているか確認します。

常にKerberos Simulatorを使用してユーザーおよびサーバーを検証する

ベストプラクティス:Access GatewayでKerberosサービスを構成する際に、最初に検証します。

例:

Kerberosアプリの[Protected Web Resource(保護されたWebリソース)]がKerberosシミュレターでテストされる値と一致するか確認します。

Access Gatewayに追加した各IWAアプリのsetspnを実行する必要がありますか?

問題:Access Gatewayに追加した各IWAアプリのsetspnを実行する必要がありますか?

  • いいえ、ただし、ドメインごとに各IISサーバーをサービスアカウントに追加する必要があります。

Kerberos認証がIISサーバーで有効化されているか確認する

Kerberos認証がIISサーバーで有効化されているか確認します。例:

IWA_USERNAMEヘッダーが有効であることを確認する

IWA_USERNAMEヘッダー属性を設定する場合:

  • はじめに静的な値でテストします。
  • ドメイン名がすべて大文字であることを確認します。

例:

兄弟ドメインでKerberosをサポートする

問題:親ドメインと複数の子ドメインがあり、それぞれの子ドメインがIISまたはSharePointサーバーに接続されている。ADドメイン間にSSOがなければなりません。ベストプラクティスは、すべてのIISおよびSharePointサーバーが親ドメインに接続されていることです。これが不可能な場合、一意のサービス プリンシパル名(SPN)を使用してAccess Gatewayで複数の領域を作成する必要があります。

例:

  1. ドメイン1 - サービス プリンシパル名 - Access Gatewayコンソールウィザードの手順に従います。
    ドメイン1 - キータブ
    Access Gatewayコンソールウィザードの手順に従います。
  2. ドメイン2- サービス プリンシパル名 - OAGコンソールウィザードの手順に従いますが、「host/」を一意の値に変更します。
    ドメイン2 - キータブ
    Access Gatewayコンソールウィザードの手順に従いますが、「host/」を一意の値に変更します。

例:

setspn -s host/gwelvis.adlab.com ELVIS\oagelvis ktpass /princ host/gwelvis.adlab.com@ELVIS.ADLAB.COM /mapuser oagelvis@elvis.adlab.com /out c:\oagelvis.keytab /rndPass /pType KRB5_NT_PRINCIPAL /crypto All