問題タブ [identity-delegation]
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.
wcf - ACS では、WS-Trust/ActAs による ID 委任はサポートされていますか?
クレーム ベースのセキュリティを始めたばかりで、ID 委任に関する質問があります。ローカルのダミー STS と、認証に依存するいくつかの WCF サービスをセットアップすることができました。Web アプリケーションは STS を介してユーザーを認証し、ユーザーに代わって( を使用してChannelFactory.CreateChannelActingAs
) サービス A を呼び出します。これはうまくいきます。
ここで、フェデレーション プロバイダーとして Azure Access Control Service (ACS) を使用し、代わりに Google アカウント (またはその他のもの) を使用してサインインし、ダミーの STS を完全に取り除きたいと考えています。Web アプリケーションへの認証はできますが、Web サービスを呼び出そうとすると「不正な要求」という応答を受け取ります。
多くのことが問題になる可能性があることは理解していますが、ACS がこの WS-Trust の ActAs の概念をサポートしているかどうかを実際に確認していないことにも気付きました。ActAs がサポートされていないことを示すフォーラム スレッドを見つけましたが、約 6 か月前のものです。
ActAs が ACS でサポートされているかどうかを確認できる人はいますか? そうでない場合、サポートされているID 委任を実装する他の賢い方法はありますか?
.net - WCF委任、サービスはSQLServerにアクセスできませんでした
私は次のインフラストラクチャを持っています:
コンピューター#1、Microsoft SQL Server 2008は、システムアカウントで起動しました。ログイン
Master\MyLogin
(Windows認証を使用)、サーバーロール=sysadm
、データベースロール=がありますdb_owner
。コンピューター#2、IIS7.0のWCFサービス。アカウント
Master\IISLogin
(IISLogin@myDomain.ru)で実行されるアプリケーションとサイト
構成:
サービスには方法があります
最初にEF5.0データベースを使用します。接続文字列
コンピューター#3、クライアント。次の設定があります
/li>
チャネルには次の資格情報があります
dbエラーで落ちる
ユーザー「NTAUTHORITY\Anonymous」のログインに失敗しました
したがって、WCF委任にはいくつかの問題があります。単純な認証を使おうとするとusername/password
、うまくいきました。つまり、証明書などは問題ありません。
この命令でステップ4を実行しましたが、機能しません。
たぶん私のコードや設定に何か問題がありますか?どうすれば修正できますか?
更新。
試しました(結果なし)
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)] => [OperationBehavior(Impersonation = ImpersonationOption.Required)]
試しました(結果なし)
サービス側
ServiceSecurityContext.Current.WindowsIdentity.ImpersonationLevel =偽装(委任ではありません!)
IISプールのIDをApplicationPoolIdentityからIISLogin@myDomain.ruに変更しようとすると、コンピューター3のクライアントがクラッシュしました。
asp.net-mvc-4 - MVC Web API への WebApp ユーザー (Windows 認証) の委任が失敗する
次のサイト構造を持つ IIS 7.5 があります。
WebApp (ASP.NET Forms) = Web サイト (http://WebApp)
WebAPI (MVC 4 Web API) = アプリケーションに変換されたフォルダー (http://WebApp/webapi)
どちらも同じ ApplicationPool で実行されています。
両方の認証設定は同じです。
- ASP.NET 偽装 (認証されたユーザー)
- Windows 認証 (プロバイダー: ネゴシエート)
どちらの web.config も次を定義します。
WebApp は、HttpClient を使用して WebAPI から WebService を呼び出します。
WebAPI は MS Enterprise Library を使用して DB に接続します。
この localy を実行すると、すべて正常に動作します。これを IIS 7.5 サーバーに展開してリモート デバッグを開始すると、Web API の HttpContext 現在のユーザーは、Web アプリケーションにログオンしているユーザーではなく、アプリケーション プール ID になります。ADアカウント(グループ)に基づくセキュリティを使用したいので、もちろんWebAppにログオンしているユーザーにしたいです。
誰でも、これを機能させるためのアドバイスを提供してください。前もって感謝します。
wcf - Facebook SecurityToken を WCF サービスに委任する方法
次のコンポーネントがあります: WPF アプリケーション、アイデンティティ サーバー、WCF Web サービス、
WPF アプリケーションは WebBrowser コントロールを使用して、WS-Federation を使用して Thintecture Identity Server を使用して認証します。Identity Server は Home Realm Discovery を有効にしており、Facebook、Live ID、および Google を使用した認証を許可しています。認証後、SecurityToken に変換する RequestSecurityTokenResponse メッセージを取得します。
この SecurityToken を取得したら、WebService を呼び出したいと思います。Thintecture Identity Server から再度発行される ActAsToken を作成する必要があると思いますが、構成できません。
しかし、例外があります。
WebService は、ID とアクセスを使用して構成されています... VS 拡張機能。
このシナリオは可能ですか?
wcf - WCFダブルホップローカルホストがセカンドホップでなりすましを失う
なりすましに関するWCFダブルホップの問題について多くの投稿を見てきましたが、特に問題の解決に役立ったものはありません。
私は何が欠けていますか?偽装ユーザー(DOMAIN \ UserName)をサービス2に保持するには、他に何をする必要がありますか?私は確認のためにServiceSecurityContext.Current.WindowsIdentity.Nameを見ています-多分それは間違っています。
セットアップ:
- ローカルホストIISでホストされているクライアントアプリとサービス1へのサービス参照-WindowsIdentityの偽装(DOMAIN \ UserName)
- サービス1-ローカルホストIISでホストされているWCFサービスとサービス2へのサービス参照
- サービス2-ローカルホストIISでホストされているWCFサービス
私は物事を単純にするためにすべてのbasicHttpBindingsを使用しています。両方のサービスエンドポイントにSPNを設定しました。
- ダブルホップを正常に実行でき、コードは正常に実行されます
- サービス1(ホップ1)では、ServiceSecurityContext.Current.WindowsIdentityは、私が偽装した人物です(DOMAIN \ UserName)
- サービス2(ホップ2)では、ServiceSecurityContext.Current.WindowsIdentityはIISアプリプールユーザーです
- ImpersonationLevel="委任"
- どちらのWCFサービスでも、Windows認証が有効になっていて匿名が無効になっています
**注:これはすべて、開発ボックスでローカルに実行しています。それでも、自分から自分への委任を許可するように委任レベルを設定しました。多分やり過ぎ。
バインディング(両方のサービスで同様):
WCFサービスクライアントとサービスエンドポイントの動作構成の両方でimpersonationLevel="Delegation"を設定しました。私のサービスメソッドは、impersonationOption = "Allowed"(ホップ1)とimpersonationOption "Required"(ホップ2)で特別に装飾されています。
asp.net - リモート コンピューターからアクセスすると、Web アプリケーションで偽装が失敗する
NTLM スキームで実行するように構成された Web アプリケーションがあります。Web アプリケーションから、アプリケーション サーバーのサービスにアクセスしています。アプリケーションサーバーのサービスにアクセスするWebアプリケーションコードでユーザーになりすましています。Web サーバーから Web アプリケーションにアクセスすると、すべて正常に動作します。しかし、同じ資格情報を使用して別のクライアント マシンから Web アプリケーションにアクセスしようとすると、アプリケーション サーバーのサービスへの呼び出しが失敗し、アクセスが拒否されます。同じシナリオが、異なるマシン セットで機能しています。設定がありませんか?
c# - スレッドのコンテキストを他のユーザーに変更する
ユーザーがイベントをトリガーするため、スレッドはそのユーザーのコンテキストにあります。接続されているすべてのユーザーを繰り返し処理して、このイベントを送信したいのですが、従来の承認を使用して、イベントを受信する必要があるかどうかを判断したいと考えています。問題は、イベントをトリガーしたユーザーのコンテキストにあるスレッド プリンシパルなどです。
私はスレッドを偽装してから承認を行うことを検討しています。その上でこんな記事を見つけました
http://msdn.microsoft.com/en-us/library/ff647248.aspx#ImpersonationDelegation5
スレッドがまだ呼び出し元のユーザーのコンテキストにある場合、何ctx = wi.Impersonate();
が間違っていますか?
更新 このコードを他のユーザーとして実行したい
必要な手順をカバーする小さなブログ投稿 http://andersmalmgren.com/2014/06/12/client-server-event-aggregation-with-role-authorization/
asp.net - ASP.NET の偽装によりログインが求められる
Windows 認証が有効になっているアプリケーションがあり、正常に動作します。Web サービスを呼び出す新しい機能があり、ユーザーの資格情報をその Web サービスにも渡したいので、Web アプリと Web サービスの両方が同じ Active Directory の下。
ただし、偽装を有効にすると、ブラウザーは Web アプリにアクセスするときにユーザーとパスワードの入力を求め、有効なものを提供しても機能しません。偽装がなければ、アプリは Windows ユーザーを正しく選択していることに注意してください。
何が問題になる可能性がありますか? 偽装のために認証済みユーザーを選択するドキュメントに従っていますが、どのステップも見逃していないと思います。Windows 認証が既に機能していることを考えると、偽装を有効にすると機能しなくなる原因は何ですか?