java - Azure VM 中的 WASB 是否支持 Kerberos 身份验证?

标签 java azure authentication kerberos

我已经创建了 Linux Azure VM 并在其上运行 Java 应用程序。然后我创建了 HDInsight Spark Cluster,其中包含 hdfs、yarn、spark 等。

我已使用虚拟机上 core-site.xml 中的存储访问 key 将虚拟机与 Spark 集群连接起来。

核心站点.xml

<property>
  <name>fs.azure.account.key.YOUR_ACCOUNT.blob.core.windows.net</name>
  <value>Storage_Access_Key</value>
</property>

我可以通过上述方式验证我的应用程序。但我想在 Azure VM 上的 Azure Blob 存储 (WASB) 中使用 Kerberos 对我的 JAVA 应用程序进行身份验证。

是否有任何可能的选项和文档?请帮助我

最佳答案

首先,请确保已为 HDInsight 配置 Kerberos 身份验证。如果不清楚,请引用hortonworks官方文档https://docs.hortonworks.com/HDPDocuments/Ambari-2.1.2.1/bk_Ambari_Security_Guide/content/ch_configuring_amb_hdp_for_kerberos.html去做这件事。

其次,可以尝试引用Hadoop官方document使用 Kerberos 进行身份验证来配置您的 Web 应用程序。

或者您可以在编程中手动使用 Kerberos 进行身份验证,如下所示。

import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.conf.Configuration 

Configuration conf = new Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("<username>", "/path/to/kerberos.keytab"); 

然后

FileSystem fs = FileSystem.get(conf);

作为引用,您还可以引用第三方博客( 12 )了解更多详细信息。

关于java - Azure VM 中的 WASB 是否支持 Kerberos 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41427731/

相关文章:

java - 根据当前时区将 UTC 日期/时间显示为日期/时间

java - 如何在扩展 Activity 中显示 Admob 插页式广告

azure - 无法为容器创建 Web 应用程序 - 资源 ID 长度太短 :

azure - 使用 postman "url-missmatch"调用时,具有 B2C Auth 的 Entity Framework 重定向到空页面

authentication - 如何使用 PAM 对用户进行身份验证?

java - 在 Tomcat JVM 参数中为 JSTL 设置语言环境以进行测试?

java - 避免由于线程产生异常而终止应用程序

Azure - 简单的 JSON 模板和参数文件,但仍然提示输入

使用 ntlm 身份验证的 Java URLConnection 错误,但仅在 Linux 和 Java 7 上

Spring Eureka要求用户名密码认证