Stephen Reichling created BEAM-1070:
---------------------------------------

             Summary: Service Account Based Authentication Broken
                 Key: BEAM-1070
                 URL: https://issues.apache.org/jira/browse/BEAM-1070
             Project: Beam
          Issue Type: Bug
          Components: sdk-py
         Environment: CentOS Linux release 7.1.1503 (Core) 
Python 2.7.5
            Reporter: Stephen Reichling
            Assignee: Frances Perry
            Priority: Critical


{{sdks/python/apache_beam/internal/auth.py}} calls into the 
{{oauth2client.service_account.ServiceAccountCredentials.from_p12_keyfile}} 
method with invalid and incorrectly-ordered parameters. Compare the [function 
signature of 
ServiceAccountCredentials.from_p12_keyfile|https://github.com/google/oauth2client/blob/ae73312942d3cf0e98f097dfbb40f136c2a7c463/oauth2client/service_account.py#L300-L303]
 with [how it is 
invoked|https://github.com/apache/incubator-beam/blob/9ded359daefc6040d61a1f33c77563474fcb09b6/sdks/python/apache_beam/internal/auth.py#L150-L154].
 This causes a runtime error when one attempts to use a service account to 
authenticate with the Google Dataflow APIs.

The specific problems are:
 - the {{client_scopes}} variable (a list) is passed as a positional parameter 
where the function signature expects the {{private_key_password}} parameter (a 
string).
 - a keyed parameter, {{user_agent}}, is passed but no such parameter is 
defined in the function signature.
 - no value is provided for {{private_key_password}}. All p12 key files for 
service accounts issued by Google Cloud have the password {{notasecret}} as 
documented 
[here|https://support.google.com/cloud/answer/6158849?hl=en#serviceaccounts], 
so it's currently not possible to use a Google-issued p12 key file with this 
implementation. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to