6

クレームからWindowsトークンを取得する必要があります。ソリューションは、ADFS 2.0を使用し、IISASP.NET4.0で実行されるClaimsAwareWCFWebサービスです。(偽装されたデータベースアクセスにはKerberosトークンが必要です)

.NET 3.5および4.0では、c2WTSサービスを使用してクレームからWindowsIDを取得します。

WindowsIdentity winId = S4UClient.UpnLogon(upn);

ただし、c2WTSのドキュメントには、次のように記載されています。 "... [.NET Framework 4.5以降、Windows Identity Foundation(WIF)は.NETFrameworkに完全に統合されています。このトピックで扱うWIFのバージョンであるWIF3.5 、は非推奨であり、.NET Framework3.5SP1または.NETFramework4に対して開発する場合にのみ使用する必要があります...」

.NET 4.5のc2WTSに相当するものは何ですか?

4

2 に答える 2

5

同等のものはありません。ただし、WIFをインストールしてC2WTSサービスを利用することはできます。

Samlセキュリティトークンハンドラーには、WindowsIDを返すMapToWindows機能があります。これはC2WTSが行うことと似ていますが、

1)Windows IDは、ローカルでの認証にのみ使用できます。偽装するには、SYSTEM権限が必要です。これは、C2WTSが実行されるものです。2)トークンを委任するには、ADで制約付き委任を構成する必要があります(C2WTSの場合と同様)。

于 2013-02-12T20:09:51.307 に答える
0

この時点でS4Uが組み込まれています。C2WTSは必要ありません。あなたはただすることができます:

var id = new WindowsIdentity(valueFromClaim);
// continue your impersonation

サービス呼び出しの場合、クレデンシャルをDefaultCredentialsに設定すると、SAMLトークンハンドラーでToWindowsIdentityが実行されるように見えるため、問題はありません。

Oracleにアクセスするため、Windowsコンテキストを明示的に作成し、偽装する必要がある場合があります(「ユーザー向けサービス(S4U)トークンの作成」を参照)。

とはいえ、制約された委任が正しく構成されている必要があります。そうしないと、委任は機能しません。

于 2015-01-22T03:59:48.277 に答える