Adding support for Azure Stack ADFS case.

This commit is contained in:
Rohit 2019-07-31 19:39:52 -07:00
parent 377104418d
commit 159e5034cf

View File

@ -21,6 +21,7 @@ import (
"crypto/x509" "crypto/x509"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"strings"
"github.com/Azure/go-autorest/autorest/adal" "github.com/Azure/go-autorest/autorest/adal"
"github.com/Azure/go-autorest/autorest/azure" "github.com/Azure/go-autorest/autorest/azure"
@ -31,6 +32,8 @@ import (
var ( var (
// ErrorNoAuth indicates that no credentials are provided. // ErrorNoAuth indicates that no credentials are provided.
ErrorNoAuth = fmt.Errorf("no credentials provided for Azure cloud provider") ErrorNoAuth = fmt.Errorf("no credentials provided for Azure cloud provider")
// Tenenatid value for Azure Stack ADFS case.
ADFSIdentitySystem = "ADFS"
) )
// AzureAuthConfig holds auth related part of cloud config // AzureAuthConfig holds auth related part of cloud config
@ -55,10 +58,19 @@ type AzureAuthConfig struct {
UserAssignedIdentityID string `json:"userAssignedIdentityID,omitempty" yaml:"userAssignedIdentityID,omitempty"` UserAssignedIdentityID string `json:"userAssignedIdentityID,omitempty" yaml:"userAssignedIdentityID,omitempty"`
// The ID of the Azure Subscription that the cluster is deployed in // The ID of the Azure Subscription that the cluster is deployed in
SubscriptionID string `json:"subscriptionId,omitempty" yaml:"subscriptionId,omitempty"` SubscriptionID string `json:"subscriptionId,omitempty" yaml:"subscriptionId,omitempty"`
// Identity system value for the deployment. This gets populate for Azure Stack case.
IdentitySystem string `json:"identitySystem,omitempty" yaml:"identitySystem,omitempty"`
} }
// GetServicePrincipalToken creates a new service principal token based on the configuration // GetServicePrincipalToken creates a new service principal token based on the configuration
func GetServicePrincipalToken(config *AzureAuthConfig, env *azure.Environment) (*adal.ServicePrincipalToken, error) { func GetServicePrincipalToken(config *AzureAuthConfig, env *azure.Environment) (*adal.ServicePrincipalToken, error) {
var tenantId string
if strings.EqualFold(config.IdentitySystem, ADFSIdentitySystem) {
tenantId = "adfs"
} else {
tenantId = config.TenantID
}
if config.UseManagedIdentityExtension { if config.UseManagedIdentityExtension {
klog.V(2).Infoln("azure: using managed identity extension to retrieve access token") klog.V(2).Infoln("azure: using managed identity extension to retrieve access token")
msiEndpoint, err := adal.GetMSIVMEndpoint() msiEndpoint, err := adal.GetMSIVMEndpoint()
@ -77,7 +89,7 @@ func GetServicePrincipalToken(config *AzureAuthConfig, env *azure.Environment) (
env.ServiceManagementEndpoint) env.ServiceManagementEndpoint)
} }
oauthConfig, err := adal.NewOAuthConfig(env.ActiveDirectoryEndpoint, config.TenantID) oauthConfig, err := adal.NewOAuthConfig(env.ActiveDirectoryEndpoint, tenantId)
if err != nil { if err != nil {
return nil, fmt.Errorf("creating the OAuth config: %v", err) return nil, fmt.Errorf("creating the OAuth config: %v", err)
} }