問題タブ [kerberos]
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.
kerberos - Kerberos、委任、およびこれを正しく行う方法は?
相互に通信する必要がある 2 つの個別の自家製アプリケーションがあります。1 つはフロントエンド アプリケーション (実際には asp.net) で、もう 1 つは会計アプリケーションへのバックエンド インターフェイスです。バックエンド インターフェイスは、このフロントエンド専用に作成されたものではありません。これは、他の多くのアプリケーションが製品と統合するために使用する汎用インターフェイスです。
ユーザーの利便性のために、フロントエンド アプリケーションで Windows 認証を提供したいと考えています。ただし、これは、認証情報を確認する必要があるバックエンド アプリケーションに認証情報を渡す必要があることを意味します。
フロントエンドを、自分自身を任意のユーザーとして認証できるバックエンドへの「信頼できる」アプリケーションとして設定したくありません。フロントエンドがハッキングされると、バックエンド システムも侵害されます。
私が理解しているように、Windows 認証でそれを行う 1 つの方法は Kerberos 委任です。ただし、これは、委任されるユーザーと、委任を行うマシン (フロントエンドを備えたサーバー) に対して明示的に有効にする必要があります。デフォルトでは、これらのオプションは Active Directory で無効になっています。多くのシステム管理者は、すべてのユーザーに対してこれらのオプションを有効にすることに躊躇していると思います。
また、これが Kerberos Delegation の意図したものであるかどうかはよくわかりません。接続しているユーザーを偽装するためにフロントエンドは必要ありません。このユーザーが自分自身を認証したことを証明する必要があるだけです。
これをどのように行いますか?
wcf - Web Services Security Kerberos Token Profile 1.1 を使用するように WCF クライアントを構成する
朝、
WCFを構成する方法を知っている人はいますか(任意のバインディングタイプ、現在WSHttpBindingを使用していますが、必要に応じてCustomBindingまたは代替に喜んで移行します)
Web サービス セキュリティ Kerberos トークン プロファイル 1.1
詳細は次の場所にあります。
http://www.oasis-open.org/committees/download.php/16788/wss-v1.1-spec-os-KerberosTokenProfile.pdf
特に、Security BinarySecurityToken セクションと SecurityTokenReference セクションを SOAP ヘッダーに含める方法を知りたいです。以下の例 (上記のドキュメントから抜粋):
前もってありがとう、ポール。
internet-explorer - SSRSレポートにアクセスするときにIEが間違ったセキュリティゾーンを取得する
Internet
SSRSレポートにアクセスすると、またはUnknown Zone(Mixed)
の代わりに表示されるマシンがいくつかありLocal Intranet
ます。この問題を報告しないユーザーもいれば、一貫しているように見えるユーザーもいます。これらのマシンはすべて同じようにセットアップする必要があります。SSRS
のようなURLでレポートにアクセスしますhttp://test-intranet.example.com
。のセキュリティ設定を確認しました。これによりIE
、すべての*.example.com
ページがと見なされlocal intranet
ます。この問題は非常に厄介ですが、ここでうまく機能しないコンポーネントの手がかりを持っている人はいますか?
java - Microsoft IE から Java サーバーへの Active Directory SSO を使用すると、GSSException が発生するのはなぜですか?
Java Web アプリケーション (SPNEGO/Kerberos を使用) 用の Active Directory シングル サインオン認証システムを構築していましたが、すべてが Firefox または (報告によると) Safari で正常に動作しますが、Internet Explorer では例外が発生します。
実際、Windows のパッチがインストールされる前は、IE は機能していると思っていました。
.net - WSE 3.0 Webサービスを取得してクライアントのIDを偽装するにはどうすればよいですか?
IIS6.0のWindowsServer2003で実行されているWSE3.0ベースのWebサービスがあります。Webサービス要求を送信するクライアントユーザーをWebサービスプロセスで偽装したいのですが、サービスはクライアントを偽装していません。
Webアプリケーションには独自のアプリプールがあり、現在、ネットワークサービスIDで実行するように設定されています。Windows Server 2003マシンアカウントは、Active Directoryでの委任が有効になっています(少なくとも私のIT担当者によると)。サービスWSEポリシー(wse3policyCache.config内)は次のようになります。
このサービスのweb.configには、(とりわけ)次のエントリがあります。
アプリケーションに対して匿名アクセスが有効になっています(これは、トランスポートレベルのセキュリティがサービスによって使用されていないため、メッセージレベルが使用されているために必要です)。マシンアカウントには、次のSPNが登録されています。
クライアントのwse3policyCache.configには次のものがあります。
クライアントコードは次のようになります。
ただし、このサービスはクライアントIDを偽装していません。サービスでlog4netを使用してい%username
ますが、ASP.NETトレースログに出力するように要求するNT AUTHORITY\NETWORK SERVICE
と、クライアントユーザーIDではなく常にログになります。私が間違っていることはありますか?WSEがなりすましを実行しようとして失敗しているのかどうかを確認できる場所はありますか?イベントログに次のエントリが表示されます(MYDOMAINとMYUSERはここでは隠されています)。
そして、私のWSEトレースファイルには次のように表示されます。
少なくとも、Kerberos拡張機能がKerberosヘッダーを処理していることはわかっています。
編集:次に、私のWebサービスは独自のクライアント通信ライブラリを使用してSSPI / IWAを使用して別のサーバーを呼び出します(この3番目のサーバーをfooサーバーと呼びましょう)。fooサーバーへのこの2回目の呼び出しを行うときに、クライアントのIDを使用するようにします。これは、このクライアント通信ライブラリがfooサーバーのSPNと別のサービスを呼び出しAcquireCredentialsHandle
て使用することを意味します。InitializeSecurityContext
この特定のケースでは、fooサーバーは実際にはWSE Webサービスと同じマシンで実行されています(したがって、SPNを使用しています)mycompany/rd260-2
)。この2番目のホップは同じマシンに対するものなので、NTLMを使用することを期待しますが、それでもWebサービスクライアントのユーザーIDを偽装する必要がありますね。fooサーバーのログでは、接続を受け入れ、提供されたIWAセキュリティコンテキストを使用し、このセキュリティコンテキストに基づいてrd36-2$
、WSE WebサービスがIISで実行されているため、接続しているユーザーがマシンアカウントであることがわかります。ネットワークサービスID(マシンアカウントに関連付けられている)の下。fooサーバーのログで、IWAセキュリティコンテキストを受信した後、最終的にWebサービス要求を送信したユーザーのIDを確認したいと思います。fooサーバーを別のマシンに移動して、それがこれに何らかの関係があるかどうかを確認すると便利ですか?
c - GSS-API を使用するプログラムは? まともなサンプルプログラムはありますか?
GSS-API を使用したいと思っていましたが、簡単なクライアント/サーバー ペアの適切なサンプル コードを見つけるのに苦労しているため、今はよくわかりません。Sun にはサンプル コードを含むドキュメントがありますが、それはGNU GSS-APIなどにはないいくつかの独自関数を使用して、GSS API 実装用に特別に書かれています(GNU 実装に対してそれらを再実装する方法がすぐにはわかりません)。 )。さらに、これは ANSI C よりも前の言語で書かれており、K&R 関数宣言なども含まれています (宣言を変換するのに問題はありませんでしたが、Sun のサンプル コードは古すぎて意味がないのではないかと思いました)。
過去 10 年間、アプリケーションで GSS-API を使用したことがありますか? 読む価値のあるサンプル プログラムを含む自己完結型のチュートリアルを知っていますか?
または、間違った方向に進んでいる可能性があり、代わりに SASL を試す必要があります。GNU GSS-API の作成者自身も同様のことを示唆しています。
価値のあることとして、私は Linux で GCC を使用しており、他の目的のために Kerberos を既にセットアップしています。
iis - Active Directory と NTLM 認証
AD ユーザーを管理する IIS アプリケーションを作成しています。この目的のために、Negotiate AuthenticationProvider を使用するようにサイトを構成しました。すべてが機能します。
NTLM は Active Directory での操作 (ユーザー アカウントの作成など) に適しているのでしょうか。
それとも、AD は Kerberos 認証のみを受け入れますか?
apache - Kerberos SSO ログイン失敗時に apache リダイレクトまたはカスタム 401 ドキュメントをセットアップする方法
私は動作中の Kerberos SSO セットアップを持っています。mod_jk で apache と jboss を使用しています。Apache は、次の構成で auto-login.htm ページを (kerberos によって) 保護しています。
これは 100% 機能し、Kerberos/SSO でログインして、Java アプリケーションで remote_user 変数を読み取ることができます。
問題は、ユーザーが Kerberos/SSO 経由でログインできなかった場合に、保護されていない login.htm にリダイレクトすることです。私が念頭に置いていた解決策は、401 ErrorDocument を設定することでしたが、上記のコードで #ErrorDocument 401 のコメントを外してこれを設定すると、ユーザー資格情報を要求するために 401 を返すことは本質的に Kerberos の一部であるため、常に login.htm にリダイレクトされます。 /SSO 認証プロセス。したがって、結果として、ユーザーは常に login.htm に行き着き、Kerberos/SSO ログイン プロセスを完了することはありません。
任意のヘルプまたは代替ソリューションをいただければ幸いです。
よろしくお願いします
ピエール
wcf - 混合認証モード: WCF を使用して HTTPS 経由で Kerberos トークンとユーザー名トークンの両方を送信する
WCF を使用して HTTPS 経由でユーザー名トークンと kerberos トークンの両方を送信することは可能ですか?
認証モードが「UserNameOverTransport」に設定されたカスタム バインディングを使用できます。これにより、OASIS Web サービス セキュリティ標準に従って、SOAP ヘッダーにユーザー名トークンが含まれます。
または、認証モードを「KerberosOverTransport」に設定することもできます。これにより、SOAP ヘッダーに Kerberos トークンが含まれます。
ただし、通信しようとしているサービスには、kerberos トークンとユーザー名トークンの両方を使用して認証する必要があります。既存の認証モードではできないようです。
sharepoint - Kerberos over SSL を使用して SharePoint から Reporting Services Web サービスを呼び出す
MOSS2007 に統合されている Reporting Service 2008 にアクセスする必要がある複数の SharePoint Web パーツがあります。
使用するエンドポイントは 2 つあります。ReportService2006 と ReportExecution2005 です。
Web サービスを呼び出すすべてのロジックを、Web パーツを含む同じ WSP 内にパッケージ化される 1 つの共通アセンブリ (クラス ライブラリ) に配置したいと考えています。
共通クラス ライブラリ プロジェクトからサービス参照を追加しようとしましたが、プロキシが正しく生成されず、設計時に IntelliSense を使用できません。そのため、svcutil.exe を使用してプロキシを生成しています。
残念ながら、Microsoft は、この記事で svcutil.exe は Kerberos 認証に問題があると述べています。
Svcutil.exe は、サービスから受信した Web サービス記述言語 (WSDL) またはポリシー ファイルに基づいてクライアントを生成します。ユーザー プリンシパル名 (UPN) は、ユーザー名を "@" で連結し、完全修飾ドメイン名 (FQDN) を追加することによって生成されます。ただし、Active Directory に登録したユーザーの場合、この形式は有効ではなく、ツールが生成する UPN によって Kerberos 認証が失敗し、次のエラー メッセージが表示されます。この問題を解決するには、ツールが生成したクライアント ファイルを手動で修正します。
私の環境は、Kerberos over SSL を使用するように設定されています。これを解決するにはどうすればよいですか?