
# 创建Kerberos跨源认证
#### 操作场景
通过在DLI控制台创建的Kerberos类型的跨源认证，将数据源的认证信息存储到DLI，无需在SQL作业中配置账号密码，安全访问数据源。
![](https://support.huaweicloud.com/usermanual-dli/public_sys-resources/note_3.0-zh-cn.png)
- MRS Kafka开启Kerberos认证，未开启SSL认证时，创建Kerberos类型的认证。建表时通过krb_auth_name关联跨源认证。
- MRS Kafka开启Kerberos认证，同时开启了SSL认证时，需要同时创建Kerberos和Kafka_SSL类型的认证。建表时分别通过krb_auth_name和ssl_auth_name关联跨源认证。
- MRS Kafka未开启Kerberos认证，仅开启了SASL认证时（例如使用账号密码认证PlainLoginModule场景），无需使用跨源认证。
- MRS Kafka未开启Kerberos认证，仅开启了SSL认证时，创建Kafka_SSL类型的认证。建表时通过ssl_auth_name关联跨源认证。
- MRS Kafka未开启Kerberos认证，开启了SASL认证和SSL认证时，创建Kafka_SSL类型的认证。建表时通过ssl_auth_name关联跨源认证。
 
#### Kerberos类型跨源认证支持连接的数据源
Kerberos类型跨源认证支持连接的数据源如[表1]所示。
 表1Kerberos类型跨源认证支持连接的数据源 
| 作业类型                 | 表类型 | 数据源   | 约束与限制                  |
|:---|:---|:---|:---|
| Flink OpenSource SQL | 源表  | HBase | MRS安全集群已开启Kerberos认证。  |
| Flink OpenSource SQL | 源表  | Kafka | MRS Kafka开启Kerberos认证。 |
| Flink OpenSource SQL | 结果表 | HBase | MRS安全集群已开启Kerberos认证。  |
| Flink OpenSource SQL | 结果表 | Kafka | MRS Kafka开启Kerberos认证。 |
| Flink OpenSource SQL | 维表  | HBase | MRS安全集群已开启Kerberos认证。  |
   
#### 操作步骤
1. 下载数据源的认证凭证。
   1. 登录MRS Manager界面。
   
   2. 选择"系统 \> 权限 \> 用户"。
   
   3. 单击"更多 \> 下载认证凭据"，保存后解压得到用户的keytab文件与krb5.conf文件。
    
2. 上传认证凭证到OBS桶。 关于如何创建OBS桶并上传数据，请参考《[对象存储服务快速入门](https://support.huaweicloud.com/qs-obs/obs_qs_0001.html)》。
   
3. 创建跨源认证。
   1. 登录DLI管理控制台。
   
   2. 选择"跨源管理 \> 跨源认证"。
   
   3. 单击"创建"。 填写Kerberos认证信息，详细参数说明请参考[表2]。
       表2参数说明 
      | 参数          | 参数说明                                                                                                                                                                                                                                                                                                                                                                      |
      |:---|:---|
      | 类型          | 选择kerberos。                                                                                                                                                                                                                                                                                                                                                               |
      | 认证信息名称      | 所创建的跨源认证信息名称。 - 名称只能包含数字、英文字母和下划线，但不能是纯数字，且不能以下划线开头。  - 输入长度不能超过128个字符。  - 建议名称中包含MRS安全集群的名称，便于区分不同集群的安全认证信息。   |
      | 用户名         | 安全集群的登录用户名。                                                                                                                                                                                                                                                                                                                                                               |
      | krb5_conf路径 | 上传"krb5.conf"文件的OBS路径。 说明： "krb5.conf"中需移除\[libdefaults\]下的"renew_lifetime"配置项，否则可能会遇到"Message stream modified (41)"问题。                                                                                                                                                                                      |
      | keytab路径    | 上传"user.keytab"文件的OBS路径。                                                                                                                                                                                                                                                                                                                                                  |
         
      图1创建认证信息-Kerberos   
      ![](https://support.huaweicloud.com/usermanual-dli/zh-cn_image_0000001637458461.png "点击放大") 
    
4. 访问MRS的表。 跨源认证创建成功后，在创建访问数据源时只需关联跨源认证即可安全访问数据源。
   建表时关联跨源认证的字段请参考[表3]。
    表3建表时与Kerberos类型跨源认证关联的字段 
   | 作业类型                 | 数据源   | 参数            | 是否必选 | 数据类型   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|:---|:---|:---|:---|
   | Flink OpenSource SQL | HBase | krb_auth_name | 否    | String | 创建源表、结果表、维表时均使用该字段关联跨源认证。                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | Flink OpenSource SQL | Kafka | krb_auth_name | 否    | String | 创建源表、结果表时均使用该字段关联跨源认证。 创建的Kerberos类型的跨源认证名称。 如果使用SASL_PLAINTEXT类型，且使用Kerberos认证，则需要同时配置以下参数： - 'properties.sasl.mechanism' = 'GSSAPI'  - 'properties.security.protocol' = 'SASL_PLAINTEXT'   |
      
   具体的建表操作指导请参考DLI 语法参考。
   - Flink OpenSource SQL语法参考：[创建HBase源表](https://support.huaweicloud.com/sqlref-flink-dli/dli_08_0384.html)
    
 
