問題タブ [gssapi]
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.
c - gss_import_name を正しく使用するには?
クライアント側で GSS_C_NT_HOSTBASED_SERVICE を使用して gss_import_name を使用し、service/server-host@realm のようなプリンシパルを取得しています。
こんな風に呼んでいますが、
gss_import_name(ステータス、「サービス」、GSS_C_HOSTBASED_SERVICE、出力名);
しかし、service/local-machine@realm のようなプリンシパルを取得します。man ページから、ホスト名を取得するために内部的に krb5_sname_to_principal を使用していることを知りました。NULL の場合は、localhost 名を取得します。ここで私の質問は、正しいホスト名 (server-host) を gss-api に渡してプリンシパルを作成する方法です。
apache - SPNEGOをmod_auth_kerbで動作させるにはどうすればよいですか?
これが私の問題です:
コンテキスト:2種類のWebアプリケーションのKerberos認証。1つはApache mod_auth_kerbを使用し、もう1つはTomcat用のSPNEGO(GSSAPI)を使用します。TomcatをApacheに接続するためにmod_jkを使用します。
問題:クライアントTomcatからのKerberosヘッダーがApacheによって変更されているようで、認証の失敗につながります(メカニズムレベル:チェックサムが失敗しました)。
質問:SPNEGO Webアプリケーションのmod_auth_kerb(またはmod_jk)を構成/無効にして、他のWebアプリで機能し続けるにはどうすればよいですか?他に解決策はありますか?
ありがとうございました!
java - Java/VNCでのシングルサインオン
バックグラウンド
私が取り組んでいるプロジェクトでは、いくつかの異なるサーバーでGUIアプリケーションを実行しています。それらのユーザーインターフェイスの類似性のために、私はそれらのOMIを単一の統合されたインターフェイスに結合することを調査しています。現在、これらのアプリケーションはすべてVNCを介してリモートで表示できます。マスターディスプレイにいくつかのVNCビューアを隠して実行させ、これらのVNCセッションのインターフェイスをラップして、ネイティブアプリケーションのように見せることで、これを利用する予定です。
問題
シングルサインオンソリューションを設計するための指針を探しています。各アプリケーションの個別のログインを削除し、代わりにユーザーに統合ディスプレイのみにログインさせたいと考えています。そうすると、個々のアプリのそれぞれに自動的にログインします。
制約
- アプリケーションはすべて、Linux上で実行されるSwingベースのJavaアプリです。
- 認証は、ActiveDirectoryを備えたWindows2003Serverマシンによって実行されます。
- 私は、特注のソリューションよりも既成のソリューションを強く望んでいます。
アイデア
私の調査では、 KerberosとGSSAPIに向かっていることがわかりました。Kerberosのチケットベースのメカニズムは、このタスクに適しているようです。
トリッキーな点の1つは、これらのアプリケーションが常に実行されていることです。ユーザーがログインしたときに何らかの形で「通知」するための統合ディスプレイが必要です。起動時にKerberosログインを実行する通常のKerberosプログラムとは異なります。
Kerberosを使用している場合、さまざまなアプリケーションサーバーにチケットを転送する方法がわかりません。それらを転送する標準的な方法はありますか?「scp」などを使用しますか?または、独自のソケットベースのネットワークプロトコルを開発し、Javaプログラムを相互に接続して、その方法でチケットを転送しますか?
でも、細部にこだわるのは嫌だ。「テクノロジーXを検討したことがありますか?」などの一般的なアイデアでもありがたいです。または「VNCの代わりにXYZを試してください。これが自動的に行われます。」
更新
ここで回答と説明を編集します...
とにかく何らかの認証を行う必要があり、VNCは実行中のプログラムにのみビューをエクスポートするため、VNCセッションはチケットを転送できないと考えましたか?
はい、確かに。Java+VNCは私たちが今持っているものです。アプリをリモートで表示するためのより良い方法があれば、VNCを別のものに変更することができます。それらを書き直さずに、つまり。理想的な解決策は、それらを別個のクライアントとサーバーに分割し、すべてのGUIコードをクライアントに配置することですが、それは5つ星の難しさであり、1つまたは2つ星が必要です。
2人のユーザーが同時にログインする場合を考えましたか?彼らは同じアプリを見ますか?それともこれは禁止されますか?
ええ、私はそれを考慮しました。同じアプリが表示されるか、禁止されます。この特定のシステムに関する限り、どちらのソリューションでも問題ないため、これは大したことではありません。
ローカルホストでXサーバーを使用して、クライアントアプリケーションウィンドウをエクスポートすることを検討しましたか?
ええ、これは素晴らしいでしょう。これは、すでに実行されているアプリで実行できますか?これらのアプリは、すでに起動した後で接続する必要があります。誰かが中央ビューアを起動したときに、オンデマンドでそれらを開始することはできません。
java - クロスドメイン/レルム認証
ここに私の問題があります: java+kerberos を使用したクロスドメイン認証に関するドキュメントが見つかりません。他のレルムの遠隔 LDAP に対して認証する必要があります。Javaでどうやってそれを行うことができますか?
ありがとうございました
編集:
ここに私のkrb5.confがあります:
[libdefaults]
default_realm = REALM1
dns_lookup_realm = false
dns_lookup_kdc = false
転送可能 = true
[レルム]
レルム1 = {
kdc = kerberos.my.url.domain1:88
admin_server = kerberos.my.url.domain1:749
default_domain = .
}
レルム2 = {
kdc = kerberos.my.url.domain2:88
admin_server = kerberos.my.url.domain2:749
}
[ドメイン_レルム]
.my.url.domain1 = REALM1
.my.url.domain2 = REALM2
ドメイン1で実行すると、コマンドラインでクロスレルムが機能します
ldapsearch -H "ldap:/my.url.domain2"
だから私のkrb5.confは良いと思います
java - Java で実装された Kerberos SSO
Windowsユーザーの資格情報を取得し、UNIXボックスのkerberosに接続して認証し、LDAPサーバーなどのサービスを使用できるようにするJAVAプログラムを作成しようとしています。
私が見つけたすべての例は、実行時にパスワードを要求する傾向があります。これは必要ありません。プログラムを実行し、「魔法の場合」im kerberos 認証できるようにしたいのです。
リンクと例は大歓迎です。
linux - sshd および秘密鍵認証のための GSSAPI のサーバー側
SSH デーモンに接続するユーザーを認証する方法を検討しています。私が尋ねていることには大きな誤解があるかもしれませんが、私が知っていることから、GSSAPI は SSH デーモンの認証プロバイダー バックエンドとして使用できます。
そのようにユーザーの公開鍵を提供する方法はありますか? 秘密鍵/公開鍵認証スキームを保持したいのですが、外部プロセスから特定の方法でユーザーの詳細と鍵を提供したいと考えています。
また、プログラミング情報を提供する GSSAPI ガイドはありますか? 私がこれまでに見つけた唯一のガイドは、管理者向けの非常に低レベルのプロトコルの説明またはサーバー構成ガイドです... GSSAPI へのアプローチ方法とそれを使用して何かを作成する方法 (またはこれが可能です)。
java - OpenLDAP パスワードの復号化
OpenLDAP に一連のユーザーがいて、"cn" や "userPassword" などの情報を取得したいと考えています。
ただし、これらの詳細を取得すると、LDAPサーバーでこれに設定されていても、パスワードはプレーンテキストではありません。
これを解決する方法はありますか?
c++ - NTLM認証用のGSSAPI
NTLM v1 / v2認証にGSSAPIを使用することは可能ですか?squid / apacheのようなWebサーバーを構築しようとしていますが、NTLM / Negotiateプロトコルを使用して、IE/FireFoxを使用している可能性のあるクライアントを認証したいと思います。heimdalライブラリを使用しようとしましたが、gss_accept_sec_contextを機能させることができません。「サポートされていないメカニズムが要求されました」で失敗するだけです。gss_accept_sec_contextが試行される前にgss_acquire_credが呼び出されたときに、サービスプリンシパル名、spnegoのOIDなどが正しく発生したことを確認できます。はい、もちろん、承認ヘッダーをbase64でデコードして、クライアントから受け取ったトークンを抽出しました。私はC++を使用しており、これをdebianで実験しています。このあたりの素晴らしいハックの1つがもっと知っていると確信しており、いくつかの重要な手がかりを共有することを願っています。
前もって感謝します。
java - Java Kerberos 認証は機能しているように見えますが、それでも拒否されます
Java クライアント アプリと Java サーバー アプリがあり、Kerberos 経由でサーバーへの認証を試みています。クライアントは基本的に http-components と SPNEGO を使用して HTTP GET 呼び出しを行いますが、常に401 Unauthorized
結果として得られます。
以下の Kerberos ログイン シーケンスでエラーを見つけることができません。
c - GSSで複数サーバーマシンに接続する方法は?
いくつかのマシンがあります:クライアントC1、サーバー:マスター、s1、s2
C1がマスターに接続して認証を行うと、ジョブランナーがs1とs2に作成され、C1とs1、s2にはセキュリティ通信が必要です。Kerberos/GSS-APIを介してこれを行う方法。master、s1、s2はセキュリティで接続されています。
ありがとう
Dma