現在、次のプロセスから SWT トークンを取得する WPF Windows アプリがあります。
- 以下を呼び出してプロバイダーを取得します。
$"{Namespace}/v2/metadata/IdentityProviders.js?protocol=javascriptnotify&realm={HttpUtility.UrlEncode(realm)}&version=1.0"
- 指定された LoginUrl を非表示の Web ブラウザに呼び出します
- ユーザーは、AD のユーザー名とパスワードの入力を求められます
- ObjectForScripting を使用して通知アクションをキャッチし、トークンを取得します
- トークンを Web サーバーに送信し、トークンが検証され、適切なアプリ ユーザー ログインがクレームで完了します。
問題は、再度ログインしようとすると、ユーザー名とパスワードを再度要求する代わりに、以前の資格情報を再利用することです。
私が試したこととうまくいかないこと:
- ログインと同時に指定されたログアウト URL に移動します。それは何かのように見えます
https://{AD_URL}/adfs/ls/?wa=wsignout1.0
- Azure ACS 名前空間でログアウトを直接呼び出してみますが、エラー ページが表示されます
{namespace}/v2/wsfederation?wa=wsignoutcleanup1.0&wtrealm={HttpUtility.UrlEncode(realm)}
- Web ブラウザー コントロールを破棄し、新しいものを作成します。
上記のいずれも機能せず、常に資格情報を再利用します。