クライアントサーバーがKerberosサーバーを介してWebサービス(私の場合はOpenSSH)に対して認証する単純なKerberos環境をセットアップしようとしています。
KDCでkeytabファイルを生成しましたが、ファイルのコピー先のサーバーがよくわかりません。サービスを提供しているマシンにコピーするだけですか、それともサービスへの認証を希望するクライアントマシンにもコピーする必要がありますか?
通常の状況では、作成したkeytabファイル(通常、ssh/hostnameなどのサービスアカウントプリンシパル(またはインスタンス)を使用)「クライアント」に配置する必要がありますそのKerberosサービス。
このクライアントでは、このキータブ(アカウントの資格情報をキャッシュする)を使用して、KDCに対してサービスを認証します、このようなコマンドを使用します(サービスの場合、これは通常、起動時のサービス(コード内またはスクリプト経由):
kinit -kt /path/to/keytab.file principal/name
キータブには、アカウント(またはサービスアカウント)の資格情報(プリンシパルとパスワードなど)が含まれているため、手動で認証する必要はありませんが、このキータブを使用して自動的に認証できます(当然、キータブには厳密な権限が必要です)
それが役立つことを願っています
注:KDCもキータブを使用します。このキータブをクライアントにアップロードしないように注意してください。 KDC/kadmin情報が含まれています!
正しいものを使用していることを確認するには、kadminを使用してクライアントからKDCに接続し、そこからキータブを作成します。次に例を示します。
client$ kadmin -p your_admin_login/admin # login to the KDC
client$ kadmin> ktadd -kt /path/to/keytab.keytab <principal_name> # generate a keytab locally for account principal_name
client$ kadmin> exit
client$ kinit -kt /path/to/keytab.keytab <principal_name> # test it
client$ <configure the keytab path in your app>
よろしく、