web-dev-qa-db-ja.com

SAMLサービスプロバイダーログイン中のADFSエラー

約1か月間開発中のSpringSAMLプロジェクトがあります。 ADFSと統合し、すべてが正常に機能しています。 断続的エラーが発生します。これは、動作を再開するために決定するのを待たなければならないために問題になります。 。現在、動作するよりも頻繁にエラーが表示されています。任意の数のテストADアカウントでログインを実行した後、このエラーが表示されます。

イベントログのエラーID111

The Federation Service encountered an error while processing the WS-Trust request. 
Request type: http://schemas.Microsoft.com/idfx/requesttype/issue 

Additional Data 
Exception details: 
System.ArgumentOutOfRangeException: Not a valid Win32 FileTime.
Parameter name: fileTime
   at System.DateTime.FromFileTimeUtc(Int64 fileTime)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetPasswordExpiryDetails(SafeLsaReturnBufferHandle profileHandle, DateTime& nextPasswordChange, DateTime& lastPasswordChange)....

ADFSイベントログのエラー364

Encountered error during federation passive request. 

Additional Data 

Protocol Name: 
Saml 

Relying Party: 
https://localhost:8443/elsso/saml/metadata/alias/serviceprovider

Exception details: 
System.ArgumentOutOfRangeException: Not a valid Win32 FileTime.
Parameter name: fileTime
   at System.DateTime.FromFileTimeUtc(Int64 fileTime)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetPasswordExpiryDetails(SafeLsaReturnBufferHandle profileHandle, DateTime& nextPasswordChange, DateTime& lastPasswordChange)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUserInfo(SafeHGlobalHandle pLogonInfo, Int32 logonInfoSize, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String authenticationType, String issuerName)
   at Microsoft.IdentityServer.Service.Tokens.LsaLogonUserHelper.GetLsaLogonUser(UserNameSecurityToken token, DateTime& nextPasswordChange, DateTime& lastPasswordChange, String issuerName)....

サービスプロバイダー、AD、ADFS、証明書、およびSAMLアサーションの構成は正しいです。少なくとも、このエラーが発生しない時間の90%は機能します。

それが失敗している間に私が試したことは助けにはならなかった

  1. ADFSサービスと仮想サーバーの再起動
  2. プロキシサーバーの時刻を同期する(これが正確に何を意味するのかわからない、エラータイプ111および364についてそれを示唆するMSドキュメントを見つけた)powershell w32tm/config /manualpeerlist:pool.ntp.org/syncfromflags:manual/update
  3. これに関連する2つのStackOverflowの記事では、アサーションメタデータにエラーがあり、SHA-256はサポートされていません。メタデータを確認し、SHA-1を使用しています。
  4. マイクロソフトのサポートサイトでこの問題に直接関連する記事を見つけることはできませんが、この種の問題に対処するのは初めてで、どこを見ればよいかわからない場合があります。

現在のところ、数時間ごとに数分間動作していて、残りの時間は失敗しています。

私は本当に困惑しており、これをトラブルシューティングする方法についての提案は大歓迎です。

[〜#〜] update [〜#〜] ADFSにネイティブにログインできません。これは、サービスプロバイダーではなく、ADFS/AD自体に問題があることを示しています。

2
blur0224

Windows管理者からの提案に基づいて、問題を解決するために次のことを行いました。

  1. W32TimeサービスがNTP(そうではなかった)を使用していることを確認しました
  2. すべてのアップデートがインストールされていることを確認します(インストールされていました)
  3. すべてのサービスがドメインコントローラーアカウントではなく、サービスアカウントで実行されていることを確認します(そうではありませんでした)
  4. ADFSがサービスアカウントで実行されていることを確認した後、サービスプロバイダーを再作成します

この時点で、エラーはADユーザーのサブセットに対してのみ発生していました。それらのユーザーでは、パスワードをリセットし、問題を解決しました。

なぜこれが発生し始めたのか、またはこれらの手順でどのように修正されたのかは完全にはわかりませんが、1つのサービスアカウントを使用してすべてを管理しないと、別のアカウントで実行されているプロセスで読み込むことができないファイルが書き込まれることになります。 。

これが誰かを助けることを願っています。

更新:

エラーのもう1つの考えられる原因は、Active DirectoryのUPNをスペースを含む文字列に変更すると、このエラーが表示されることです。

2回目の更新:

無効なドメインを使用すると、このエラーが発生する可能性もあります。

1
blur0224