問題タブ [adfs4.0]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
single-sign-on - アクティブな SAML セッションがある場合、ADFS はログアウト要求を ID プロバイダーに転送しません。
次のコンポーネントがあります。
- RP-1(Ws-Fed、WIFで接続)
- RP-2 (SAML、Federation Provider で接続、実際には別の ADFS)
- MY-ADFS (プライマリ STS としての ADFS サーバー 2019)
- MY-IP (個別の ID プロバイダー Web サービス、Identity Server 4)
したがって、RP-1 (Ws-Fed) からサインアウト要求を行うと、単純な Ws-Fed Logout が ADFS への要求として形成されます。
https:/MY-ADFS/adfs/ls/ を取得します。
- wtrealm : https://RP-1.com/
- わ: wsignout1.0
- wreply : https://RP-1.com/logout/
次の ADFS は IP にリダイレクトします。
GET https://MY-IP/WsFederation
- わ: wsignout1.0
- wreply : https://MY-ADFS/adfs/ls/?redirectContextId=2dd581d2-6e02-4476-915b-a581e3c855d4
したがって、ユーザーは ADFS および IP からセッションをクリアします。- 予想通り。
ただし、ログアウト前に SAML RP への移行が行われ、SAML セッションがアクティブになった場合、ADFS の終了時に次のエラーが発生します。
MSIS7055:すべての SAML セッション参加者が適切にログアウトされたわけではありません。ブラウザを閉じることをお勧めします。
これを修正するために、SAML 証明書利用者信頼のログアウト エンドポイント (URL) を次のように構成しました。
https://RP-2/adfs/ls/ ?wa=wsignout1.0
POSTバインディング付き。これらの変更の後、エラーは消えました。しかし、ADFS はログアウトを IP にリダイレクトしなくなりましたが、代わりに SAML ログアウトを RP-2 にリダイレクトします。
投稿https://RP-2/adfs/ls/?wa=wsignout1.0
- SAMLRequest : PHNhbWxwOkxvZ291dFJl
その結果、IP に切り替える代わりに、RP-2 (ADFS も) のページにとどまり、終了が成功したと書かれています。ただし、ユーザーはまだ IP 側でアクティブなセッション (Cookie) を保持しています。
ここでいくつかの質問:
- ADFS が SAML アクティブ セッションで呼び出しのチェーンを変更する理由は明らかではありません。
- SAML ログアウト リダイレクトを除外する方法や、ADFS に強制的に IP へのログアウトを強制する方法も明確ではありません。
adfs - ADFS の複数のホスト名バインディング
IIS で Web サイトのホスト名バインディングを追加するように、ADFS にホスト名バインディングを追加する方法を探しています。たとえば、adfs.mydomain.com は ADFS に使用されるドメインです。さらに、server1.adfs.mydomain.com を追加したいと思います。これは SSL 証明書とは関係ありません。引退するADFSサーバーで行ったように、これを実行できることを知っています。
なぜこれをやりたいのかと尋ねる人のために。すべて adfs.mydomain.com ホスト名を使用するロード バランサーの背後にある ADFS サーバーのファームがあります。各サーバー (server1.adfs.mydomain.com など) に特定のバインディングが必要です。これにより、監視システムから特定のサーバー上のサービスを調べて、ADFS サービスがオンラインであることを確認できます。
古い ADFS サーバーは、Win2k16 に付属する役割サービスです。新しい ADFS サーバーは、Win2k22 の役割サービスです。以前は Google で検索すると簡単に見つけられましたが、現在、adfs 関連の投稿には、Azure および O365 実装への参照が散らばっています。追加のバインディングを追加する方法を知っている人はいますか? 以前はpowershellまたはnetshコマンドだった気がしますが、間違っている可能性があります.
adfs - AD FS 2016 がこの SQL クエリを実行するのはなぜですか?
AD FS 2016 が SQL 属性ストアに対して特定の SQL クエリを実行している理由がわかりません。
- この問題は、データベースを廃止する準備としてデータベースの名前を変更したときに最初に発生しました。名前を変更して、何かが使用されているかどうかを確認しました。
- 名前を変更した後、AD FS 2016 はデータベースにログインできないというエラーをスローし始めました。実行している SQL クエリが、証明書利用者または OAuth 登録のクレーム ルールのどこにも見つからないという事実を除けば、これは驚くべきことではありません。
- では、トークンのリクエストごとに実行され、すべての依存者に適用されるグローバル ポリシーを配置できる場所はありますか? その SQL クエリは、トークンが要求されている依存者にないためです。
AD FS 2016 がイベント ビューアーで報告する完全なエラーを次に示します。
SQL 属性ストアでクエリを実行中にエラーが発生しました。
追加のデータ接続情報: POLICY3907: Server=REDACTED;Database=REDACTED. クエリ: SELECT [編集済み] FROM [編集済み].[編集済み] WHERE [編集済み]=@PARAMETER0 パラメータ: 編集済み、
ユーザー アクション 例外の詳細を調べて、該当する場合は次のアクションの 1 つ以上を実行します。SQL 属性ストアへの接続文字列が有効であることを確認してください。接続文字列が SQL 属性ストアにアクセスできること、および SQL 属性ストアが存在することを確認してください。SQL クエリとパラメータが有効であることを確認してください。
例外の詳細: Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SqlAttributeStoreQueryExecutionException: POLICY3904: クエリの実行: 'SELECT [編集済み] FROM [編集済み].[編集済み] WHERE [編集済み]=@PARAMETER0' パラメーター:'編集済み, ' 失敗した。接続情報:「POLICY3907: Server=REDACTED;Database=REDACTED.」。---> System.Data.SqlClient.SqlException: ログインによって要求されたデータベース "REDACTED" を開けません。ログインに失敗しました。ユーザー「REDACTED」のログインに失敗しました。System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity ID、SqlConnectionString connectionOptions、SqlCredential 資格情報、オブジェクト providerInfo、文字列 newPassword、SecureString newSecurePassword、ブール値の redirectedUserInstance、SqlConnectionString userConnectionOptions、
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection、DbConnectionFactory connectionFactory、TaskCompletionSource で1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 回再試行) System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource で1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery(String query, List
1 queryParameters、AsyncCallback コールバック、オブジェクト状態)
--- 内部例外スタック トレースの終わり --- Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery (文字列クエリ、リスト1 queryParameters, AsyncCallback callback, Object state) at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SqlAttributeStore.BeginExecuteQuery(String query, String[] queryParameterValues, AsyncCallback callback, Object state) at Microsoft.IdentityServer.ClaimsPolicy.Language.AttributeLookupIssuanceStatement.BeginEvaluate(IEnumerable
1 の一致したクレーム、PolicyContext policyContext、AsyncCallback コールバック、オブジェクト状態)System.Data.SqlClient.SqlException (0x80131904): ログインによって要求されたデータベース "REDACTED" を開けません。ログインに失敗しました。ユーザー「REDACTED」のログインに失敗しました。System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity ID、SqlConnectionString connectionOptions、SqlCredential 資格情報、オブジェクト providerInfo、文字列 newPassword、SecureString newSecurePassword、ブール値 redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、DbConnectionPool プール、文字列 accessToken、ブール値 applyTransientFaultHandling、SqlAuthenticationProviderManager ) System.Data.SqlClient.SqlConnectionFactory.CreateConnection で (DbConnectionOptions オプション、DbConnectionPoolKey プールキー、オブジェクト poolGroupProviderInfo、DbConnectionPool プール、DbConnection owningConnection、
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection、DbConnectionFactory connectionFactory、TaskCompletionSource で1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 回再試行) System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource で1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.IdentityServer.ClaimsPolicy.Engine.AttributeStore.Sql.SyncQueryExecutor.BeginExecuteQuery(String query, List
1 queryParameters、AsyncCallback コールバック、オブジェクトの状態) ClientConnectionId:a7e6a99c-b3c5-495d-be39-7d700321a5c3 エラー番号:4060、状態:1、クラス:11