ビッグデータのセキュリティ管理 -- ユーザーの認証と承認 1

1. JaaSの紹介

Java Security Framework は当初、コードの出所 (URL) とコードの作成者 (証明書) に基づいてモバイル コードを承認することにより、潜在的に信頼できないコードを実行することからユーザーを保護することに重点を置いていました。Java 2 SDK 1.3 では JAAS (Java Authentication and Authorization Service) が導入され、ユーザーベースのアクセス制御機能が追加されました。つまり、誰がコードを実行しているかに基づいて承認します。

以上がバイドゥ百科事典のJaaSの解説です。KDC をデータベースと見なすと、JaaS は JDBC にいくらか似ています。JDBC はデータベースに接続します。テンプレートに似た一連のコードがあります。MySQL データベースに接続する必要がある場合は、これらのコードを適用できます。JaaS も同じで、一連のテンプレート コードもあり、それを直接適用して Kerberos のユーザー認証を完了することができます (JaaS は Kerberos でのみ使用されるわけではありません)。JaaS の使用を見てみましょう。

2. JaaSの利用

JDK は完全な JAAS ソリューションを提供しています。完全な JAAS ログイン コードと構成を見てみましょう。

2.1 JaaS ログインのサンプル

次のコードは、クライアントが Kerberos 認証を実行するためのコードです。2行しかない

public class JaasTest {
    public static void main(String[] args) {    
        try {
            LoginContext lc = new LoginContext("JaaSSampleTest", new TextCallbackHandler());
            lc.login();
            Subject sub = lc.getSubject();
        } catch (LoginException le) {
            System.err.println("Authentication failed:");
            System.exit(-1);
        }
        System.out.println("Authentication succeeded!");
    }
}

構成ファイル jaas_test.conf は次のとおりです。

JaaSSampleTest {
 com.sun.security.auth.module.Krb5LoginModule required;
};

-Djava.security.auth.login.config
=f:\kerberos\jaas.conf -Djava.security.krb5.realm=EXAMPLE.COM -Djava.security.krb5.kdc=freeipa56. example.com の実行結果は
次のとおりです。
ここに写真の説明を書きます

2.2 JaaS 構成ファイル

上記の例では、kerberos 認証を実行するときに、ユーザー名とパスワードを使用します。しかし、実際の使用では、このインタラクティブな方法を使用する代わりに、keytab ファイルの方法を使用することがよくあります。これは、jaas.conf の構成パラメーターに関連しています。次の client.conf 構成ファイルは、HMaster によって採用されています。これには、私たちがよく使用する情報が含まれています。

[root@ysbdh03 0]# cat /usr/hdp/current/hbase-master/conf/hbase_master_jaas.conf

Client {   # 这一值"Client"是在代码中设定的,就是new LoginContext()中的第一个参数
com.sun.security.auth.module.Krb5LoginModule required # 一般都是使用默认的Krb5LoginModule
useKeyTab=true  # 认证的时候,是否采用keytab文件
storeKey=true   
debug=true  #是否打印debug日志
useTicketCache=false #是否采用kinit后直cache值
keyTab="/etc/security/keytabs/hbase.service.keytab" # keytab的位置
principal="hbase/[email protected]";   # keytab对应的princal的值
};

これらのパラメータは Krb5LoginModule によって設定されることに注意してください。また、いくつかの他のパラメーターも提供します。しかし、それらはより便利だと感じるものです。

おすすめ

転載: blog.csdn.net/eyoulc123/article/details/78781226