From d44425f86f21c5becff313514133a8e6776d9c6d Mon Sep 17 00:00:00 2001 From: Gerardo Saca Date: Thu, 15 Feb 2018 12:19:07 -0800 Subject: [PATCH 1/4] Support multiple AcsEngineClientIDs --- pkg/armhelpers/azureclient.go | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/pkg/armhelpers/azureclient.go b/pkg/armhelpers/azureclient.go index 09a562279c..6e1c55d230 100644 --- a/pkg/armhelpers/azureclient.go +++ b/pkg/armhelpers/azureclient.go @@ -31,9 +31,6 @@ import ( ) const ( - // AcsEngineClientID is the AAD ClientID for the CLI native application - AcsEngineClientID = "76e0feec-6b7f-41f0-81a7-b1b944520261" - // ApplicationDir is the name of the dir where the token is cached ApplicationDir = ".acsengine" ) @@ -74,11 +71,14 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) return nil, err } + // AcsEngineClientID is the AAD ClientID for the CLI native application + acsEngineClientID = getAcsEngineClientId(env.Name) + home, err := homedir.Dir() if err != nil { return nil, fmt.Errorf("Failed to get user home directory to look for cached token: %q", err) } - cachePath := filepath.Join(home, ApplicationDir, "cache", fmt.Sprintf("%s_%s.token.json", tenantID, AcsEngineClientID)) + cachePath := filepath.Join(home, ApplicationDir, "cache", fmt.Sprintf("%s_%s.token.json", tenantID, acsEngineClientID)) rawToken, err := tryLoadCachedToken(cachePath) if err != nil { @@ -87,7 +87,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) var armSpt *adal.ServicePrincipalToken if rawToken != nil { - armSpt, err = adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, AcsEngineClientID, env.ServiceManagementEndpoint, *rawToken, tokenCallback(cachePath)) + armSpt, err = adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, acsEngineClientID, env.ServiceManagementEndpoint, *rawToken, tokenCallback(cachePath)) if err != nil { return nil, err } @@ -95,7 +95,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) if err != nil { log.Warnf("Refresh token failed. Will fallback to device auth. %q", err) } else { - graphSpt, err := adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, AcsEngineClientID, env.GraphEndpoint, armSpt.Token) + graphSpt, err := adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, acsEngineClientID, env.GraphEndpoint, armSpt.Token) if err != nil { return nil, err } @@ -107,7 +107,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) client := &autorest.Client{} - deviceCode, err := adal.InitiateDeviceAuth(client, *oauthConfig, AcsEngineClientID, env.ServiceManagementEndpoint) + deviceCode, err := adal.InitiateDeviceAuth(client, *oauthConfig, acsEngineClientID, env.ServiceManagementEndpoint) if err != nil { return nil, err } @@ -117,7 +117,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) return nil, err } - armSpt, err = adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, AcsEngineClientID, env.ServiceManagementEndpoint, *deviceToken, tokenCallback(cachePath)) + armSpt, err = adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, acsEngineClientID, env.ServiceManagementEndpoint, *deviceToken, tokenCallback(cachePath)) if err != nil { return nil, err } @@ -125,7 +125,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) adRawToken := armSpt.Token adRawToken.Resource = env.GraphEndpoint - graphSpt, err := adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, AcsEngineClientID, env.GraphEndpoint, adRawToken) + graphSpt, err := adal.NewServicePrincipalTokenFromManualToken(*oauthConfig, acsEngineClientID, env.GraphEndpoint, adRawToken) if err != nil { return nil, err } @@ -252,6 +252,16 @@ func getOAuthConfig(env azure.Environment, subscriptionID string) (*adal.OAuthCo return oauthConfig, tenantID, nil } +func getAcsEngineClientId(envName string) string { + switch envName { + case "AzureUSGovernmentCloud": + // TODO: Replace with AppId for Azure US Government Cloud + return "76e0feec-6b7f-41f0-81a7-b1b944520261" + default: + return "76e0feec-6b7f-41f0-81a7-b1b944520261" + } +} + func getClient(env azure.Environment, subscriptionID, tenantID string, armSpt *adal.ServicePrincipalToken, graphSpt *adal.ServicePrincipalToken) *AzureClient { c := &AzureClient{ environment: env, From f4e65e8d22a0eafa58bb66f9f17110c6352ae5e0 Mon Sep 17 00:00:00 2001 From: Gerardo Saca Date: Fri, 16 Feb 2018 00:40:04 +0000 Subject: [PATCH 2/4] Fix acsEngineClientID assignment --- pkg/armhelpers/azureclient.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/armhelpers/azureclient.go b/pkg/armhelpers/azureclient.go index 6e1c55d230..37099abf55 100644 --- a/pkg/armhelpers/azureclient.go +++ b/pkg/armhelpers/azureclient.go @@ -72,7 +72,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) } // AcsEngineClientID is the AAD ClientID for the CLI native application - acsEngineClientID = getAcsEngineClientId(env.Name) + acsEngineClientID := getAcsEngineClientId(env.Name) home, err := homedir.Dir() if err != nil { From 1c96a037ee0233d2fc080f66c2e54501bb6787bc Mon Sep 17 00:00:00 2001 From: Gerardo Saca Date: Thu, 15 Feb 2018 17:35:12 -0800 Subject: [PATCH 3/4] Fix formatting azureclient.go --- pkg/armhelpers/azureclient.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/armhelpers/azureclient.go b/pkg/armhelpers/azureclient.go index 37099abf55..dd954aec27 100644 --- a/pkg/armhelpers/azureclient.go +++ b/pkg/armhelpers/azureclient.go @@ -254,11 +254,11 @@ func getOAuthConfig(env azure.Environment, subscriptionID string) (*adal.OAuthCo func getAcsEngineClientId(envName string) string { switch envName { - case "AzureUSGovernmentCloud": - // TODO: Replace with AppId for Azure US Government Cloud - return "76e0feec-6b7f-41f0-81a7-b1b944520261" - default: - return "76e0feec-6b7f-41f0-81a7-b1b944520261" + case "AzureUSGovernmentCloud": + // TODO: Replace with AppId for Azure US Government Cloud + return "76e0feec-6b7f-41f0-81a7-b1b944520261" + default: + return "76e0feec-6b7f-41f0-81a7-b1b944520261" } } From 3c4a0275553b7b8cdbc6f0670c54f7f39421efab Mon Sep 17 00:00:00 2001 From: Gerardo Saca Date: Thu, 15 Feb 2018 17:36:41 -0800 Subject: [PATCH 4/4] Fix2 formatting azureclient.go --- pkg/armhelpers/azureclient.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/armhelpers/azureclient.go b/pkg/armhelpers/azureclient.go index dd954aec27..592fb842c9 100644 --- a/pkg/armhelpers/azureclient.go +++ b/pkg/armhelpers/azureclient.go @@ -72,7 +72,7 @@ func NewAzureClientWithDeviceAuth(env azure.Environment, subscriptionID string) } // AcsEngineClientID is the AAD ClientID for the CLI native application - acsEngineClientID := getAcsEngineClientId(env.Name) + acsEngineClientID := getAcsEngineClientID(env.Name) home, err := homedir.Dir() if err != nil { @@ -252,7 +252,7 @@ func getOAuthConfig(env azure.Environment, subscriptionID string) (*adal.OAuthCo return oauthConfig, tenantID, nil } -func getAcsEngineClientId(envName string) string { +func getAcsEngineClientID(envName string) string { switch envName { case "AzureUSGovernmentCloud": // TODO: Replace with AppId for Azure US Government Cloud