[ 
https://issues.apache.org/jira/browse/HADOOP-10607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14011679#comment-14011679
 ] 

Larry McCay commented on HADOOP-10607:
--------------------------------------

Okay let's summarize an approach here...

If we have a ConfigurationCredentialProvider that simply looks for the 
credential in configuration then:
* this can be the default provider which will allow for passwords in clear text 
and work out of the box
* we can place a real credential provider in front of it in the provider path 
and allow for password aliases to be resolved and then fall back to 
Configuration

If we add a new method to Configuration - getPassword(String name) then:
* we essentially extend the configuration file to include the credentials 
available through the provider API
* we will leverage the CredentialProvider API to get the password whether it be 
in a store or in the configuration file without the consuming code or even the 
Configuration code knowing where it comes from

If we leverage the existing configuration property names as the aliases into 
the credential store then:
* we can simply remove the password config elements from files when not in 
clear text or
* add a value of ALIASED or something that indicates that the value is 
elsewhere (in case the property is mandatory for some elements)

Is this accurate?

> Create an API to Separate Credentials/Password Storage from Applications
> ------------------------------------------------------------------------
>
>                 Key: HADOOP-10607
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10607
>             Project: Hadoop Common
>          Issue Type: New Feature
>          Components: security
>            Reporter: Larry McCay
>            Assignee: Larry McCay
>             Fix For: 3.0.0
>
>         Attachments: 10607-2.patch, 10607-3.patch, 10607-4.patch, 
> 10607-5.patch, 10607.patch
>
>
> As with the filesystem API, we need to provide a generic mechanism to support 
> multiple credential storage mechanisms that are potentially from third 
> parties. 
> We need the ability to eliminate the storage of passwords and secrets in 
> clear text within configuration files or within code.
> Toward that end, I propose an API that is configured using a list of URLs of 
> CredentialProviders. The implementation will look for implementations using 
> the ServiceLoader interface and thus support third party libraries.
> Two providers will be included in this patch. One using the credentials cache 
> in MapReduce jobs and the other using Java KeyStores from either HDFS or 
> local file system. 
> A CredShell CLI will also be included in this patch which provides the 
> ability to manage the credentials within the stores.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to