Kerberosアプリケーションのトラブルシューティングとベストプラクティス
従うべきベストプラクティスと、一般的なKerberosアプリケーションの構成およびトラブルシューティングする方法について説明します。
- Kerberosタイムアウトのトラブルシューティング
- 親-子/兄弟ADドメインのトラブルシューティング
- 401認証エラーのトラブルシューティング
- Access Gatewayに追加した各IWAアプリのsetspnを実行する必要がありますか?
- 常にKerberos Simulatorを使用してユーザーおよびサーバーを検証する
- Kerberos認証がIISサーバーで有効化する
- IWA_USERNAMEヘッダーが有効であることを確認する
- 兄弟ドメインでKerberosをサポートする
Kerberosタイムアウトのトラブルシューティング
問題:Kerberos KDCにアクセスする間にタイムアウトが発生する。以下に類似したエラーが返される:
以下の解決策を試してください:
-
Access GatewayおよびKerberosサーバー(Active DirectoryがAccess Gateway Kerberosサービスとして実行)との間でファイアウォールのポートTCP/88およびUDP/88が開いていることを確認します。
-
[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つのうちのいずれかが間違っています:
- IISがKerberosプロバイダーを有効化していない。IISでKerberosプロバイダーが認証のために有効化されているか確認します。
-
IWA_USERNAMEヘッダーで有効なユーザー名を送信していない。「IWA_USERNAMEヘッダーが有効であることを確認する」を参照してください。
- 保護対象ホスト名が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サーバーをサービスアカウントに追加する必要があります。
IWA_USERNAMEヘッダーが有効であることを確認する
IWA_USERNAMEヘッダー属性を設定する場合:
- はじめに静的な値でテストします。
- ドメイン名がすべて大文字であることを確認します。
例:
兄弟ドメインでKerberosをサポートする
問題:親ドメインと複数の子ドメインがあり、それぞれの子ドメインがIISまたはSharePointサーバーに接続されている。ADドメイン間にSSOがなければなりません。ベストプラクティスは、すべてのIISおよびSharePointサーバーが親ドメインに接続されていることです。これが不可能な場合、一意のサービス プリンシパル名(SPN)を使用してAccess Gatewayで複数の領域を作成する必要があります。
例:
- ドメイン1 - サービス プリンシパル名 - Access Gatewayコンソールウィザードの手順に従います。
ドメイン1 - キータブ
Access Gatewayコンソールウィザードの手順に従います。 - ドメイン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