1

kerberos (v1.0.1) 認証を使用して Web アプリケーションを開発しています。

私の目的は、Windows 認証 Active Directory (Windows Server 2008 R2) を介してログインを提供することです。

問題は、ブラウザーが Kerberos チケットではなくバックエンド NTLM チケットに送信することです。Wireshak を使用して、通信ワークフローを確認しました。

  1. バックエンドで休息の電話をかける
  2. 私へのアプリケーションサーバーの応答401
  3. ブラウザがアクティブ ディレクトリで kerberos サービスを呼び出し、TGS_REP を受信しました
  4. ブラウザーが Kerberos トークンを使用して REST サービスを呼び出すことを期待していましたが、代わりに NTLM トークンを受け取りました

JAVA で開発された私のバックエンド サービスは、次の例外をスローします。

GSSException: Defective token detected

編集1:

最初の問題は、IP を使用して SPN と KEYTAB を生成したことです。したがって、次の方法でキータブを作成しました。

ktpass /out c:\keytab\myuser.keytab /mapuser myuser@company.com /princ HTTP/myuser.company.com@WELLD.CH /pass mypassword /ptype KRB5_NT_PRINCIPAL /crypto All

次に、BE サーバーを DNS に追加しました

<ip_server>  myuser.company.com

現時点では kerberos でログインでき、BE (Spring Boot) は kerberos のトークンの検証に成功していますが、 でユーザー情報をダウンロードできないため、回避策を講じてBeanKerberosLdapContextSourceを使用しました。DefaultSpringSecurityContextSource


誰かが信頼できるアイデアや参考文献を持っていますか?

ありがとう

4

0 に答える 0