Skip to main content

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

Internet Explorerで連携認証を使用してログインするときに問題が発生する(ChromeやSafariなど、他のブラウザでは動作する)

症状

Windows統合認証(WIA)を要求するOutSystemsプラットフォーム内のページにアクセスする際、Internet ExplorerおよびMicrosoft Edgeを使用してログインすることができません。他のブラウザ(Chrome、Safari、Firefoxなど)ではログインできます。

この問題は以下のように発生します。

  • 正しいユーザー名とパスワードを入力します。
  • 別のブラウザを使用した場合、最初の試行でログインすることができます。
  • Internet ExplorerおよびMicrosoft Edgeを使用した場合、パスワードが受け付けられません。数回試行した後、エラーメッセージ「401 Unauthorized」が表示されます。

原因

これは既知の問題です。Windows統合認証でNegotiateプロトコルを有効にしている場合、OutSystemsプラットフォームが実行されているサーバーと同じWindowsドメインに接続されていないコンピュータや、当該ドメインへの接続が断続的になっているコンピュータでアクセスを試行したときに発生します。

Negotiateプロトコルでは、認証の際にKerberosチケットが使用されます。このとき、関係するすべてのコンピュータ(クライアントコンピュータおよびサーバー)がWindowsドメインコントローラと通信できる必要があります。この通信ができない場合(または、通信しても意味がない外部ユーザーなどの場合)、Negotiateプロトコルは使用できません。

デフォルトでは、Internet ExplorerおよびMicrosoft EdgeはWindows統合認証でNTLMよりもNegotiateを優先的に使用します。このため、IISでNegotiateプロトコルがアクティブになり、この誤動作が発生します。
通常、他のブラウザ(Chrome、Safari、Firefox)ではNegotiateがアクティブにならず、NTLMがデフォルトで使用されるため、認証が機能します。

 

解決策

通常、この問題を解決するには、IISでNegotiateプロトコルを無効にして常にNTLMを使用するようにします。問題が散発する場合や問題を確認する際に、クライアントワークステーションでNegotiateを無効にする必要があることがあります。

解決策: IISでNegotiateを無効にする:

  1. IISマネージャーにアクセスします。
  2. [サーバー Sites Default Web Site]を展開します。
  3. IISグループで、[Authentication]を選択します。
  4. [Windows Authentication]をクリックします。サイドバーに、[Providers]オプションが表示されます。表示されない場合は、最初にWindows認証を有効化すると表示されます。
  5. [Negotiate]プロバイダを削除します。
  6. 手順4でWindows認証を追加した場合、再度無効化します。
  7. IISリセットを実行します。

上記の手順を実行すると、Internet Explorer/Microsoft Edgeで認証が機能するようになります。

(問題を確認する)クライアントワークステーションでNegotiateプロトコルを無効にする:

  1. レジストリエディタを開きます([Start Run regedit.exe])。
  2. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\に移動します。
  3. レジストリエントリEnableNegotiateを探します。
  4. 値を0に変更します。
  5. クライアントワークステーションを再起動します。

上記の手順を実行すると、変更を行ったクライアントワークステーション上のInternet Explorer/Microsoft Edgeで認証が機能するようになります

関連リソース

上記のシナリオでhttp通信について調べる場合、認証が失敗すると、サーバーから以下のようなヘッダーの初期応答が返されます。

Internet Explorer/Edgeの応答は以下のようになります(プロトコルとしてNegotiateを使用した場合)。

clipboard_ee8cb2841dbdb194783b6a0aba108f602.png

これによって問題が発生します(Windowsドメインコントローラと通信できないシナリオでNegotiateが失敗します)。

プロパティ

.NET/IIS上で実行されるOutSystemsプラットフォームのすべてのバージョンに適用されます。

  • Was this article helpful?