mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	VAULT-14644 Add support for Azure WIF auth to auto-auth (for Agent and Proxy) (#22264)
* VAULT-14644 first draft of changes for WIF support * VAULT-14644 Potentially finalize Agent work for WIF support * VAULT-14644 finishing touches * VAULT-14644 finishing touches * VAULT-14644 remove extra log * VAULT-14644 better docs * VAULT-14644 changelog * VAULT-14644 review feedback
This commit is contained in:
		
							
								
								
									
										3
									
								
								changelog/22264.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								changelog/22264.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | |||||||
|  | ```release-note:improvement | ||||||
|  | auto-auth/azure: Added Azure Workload Identity Federation support to auto-auth (for Vault Agent and Vault Proxy). | ||||||
|  | ``` | ||||||
| @@ -7,9 +7,11 @@ import ( | |||||||
| 	"context" | 	"context" | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io/ioutil" | 	"io" | ||||||
| 	"net/http" | 	"net/http" | ||||||
|  |  | ||||||
|  | 	policy "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" | ||||||
|  | 	az "github.com/Azure/azure-sdk-for-go/sdk/azidentity" | ||||||
| 	cleanhttp "github.com/hashicorp/go-cleanhttp" | 	cleanhttp "github.com/hashicorp/go-cleanhttp" | ||||||
| 	hclog "github.com/hashicorp/go-hclog" | 	hclog "github.com/hashicorp/go-hclog" | ||||||
| 	"github.com/hashicorp/vault/api" | 	"github.com/hashicorp/vault/api" | ||||||
| @@ -31,7 +33,9 @@ type azureMethod struct { | |||||||
| 	logger    hclog.Logger | 	logger    hclog.Logger | ||||||
| 	mountPath string | 	mountPath string | ||||||
|  |  | ||||||
|  | 	authenticateFromEnvironment bool | ||||||
| 	role                        string | 	role                        string | ||||||
|  | 	scope                       string | ||||||
| 	resource                    string | 	resource                    string | ||||||
| 	objectID                    string | 	objectID                    string | ||||||
| 	clientID                    string | 	clientID                    string | ||||||
| @@ -84,6 +88,25 @@ func NewAzureAuthMethod(conf *auth.AuthConfig) (auth.AuthMethod, error) { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	scopeRaw, ok := conf.Config["scope"] | ||||||
|  | 	if ok { | ||||||
|  | 		a.scope, ok = scopeRaw.(string) | ||||||
|  | 		if !ok { | ||||||
|  | 			return nil, errors.New("could not convert 'scope' config value to string") | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	if a.scope == "" { | ||||||
|  | 		a.scope = fmt.Sprintf("%s/.default", a.resource) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	authenticateFromEnvironmentRaw, ok := conf.Config["authenticate_from_environment"] | ||||||
|  | 	if ok { | ||||||
|  | 		a.authenticateFromEnvironment, ok = authenticateFromEnvironmentRaw.(bool) | ||||||
|  | 		if !ok { | ||||||
|  | 			return nil, errors.New("could not convert 'authenticate_from_environment' config value to bool") | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	switch { | 	switch { | ||||||
| 	case a.role == "": | 	case a.role == "": | ||||||
| 		return nil, errors.New("'role' value is empty") | 		return nil, errors.New("'role' value is empty") | ||||||
| @@ -106,10 +129,11 @@ func (a *azureMethod) Authenticate(ctx context.Context, client *api.Client) (ret | |||||||
| 			ResourceGroupName string | 			ResourceGroupName string | ||||||
| 			SubscriptionID    string | 			SubscriptionID    string | ||||||
| 			VMScaleSetName    string | 			VMScaleSetName    string | ||||||
|  | 			ResourceID        string | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	body, err := getMetadataInfo(ctx, instanceEndpoint, "", "", "") | 	body, err := getInstanceMetadataInfo(ctx) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		retErr = err | 		retErr = err | ||||||
| 		return | 		return | ||||||
| @@ -121,22 +145,20 @@ func (a *azureMethod) Authenticate(ctx context.Context, client *api.Client) (ret | |||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Fetch JWT | 	token := "" | ||||||
| 	var identity struct { | 	if a.authenticateFromEnvironment { | ||||||
| 		AccessToken string `json:"access_token"` | 		token, err = getAzureTokenFromEnvironment(ctx, a.scope) | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	body, err = getMetadataInfo(ctx, identityEndpoint, a.resource, a.objectID, a.clientID) |  | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			retErr = err | 			retErr = err | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
|  | 	} else { | ||||||
| 	err = jsonutil.DecodeJSON(body, &identity) | 		token, err = getTokenFromIdentityEndpoint(ctx, a.resource, a.objectID, a.clientID) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 		retErr = fmt.Errorf("error parsing identity metadata response: %w", err) | 			retErr = err | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	// Attempt login | 	// Attempt login | ||||||
| 	data := map[string]interface{}{ | 	data := map[string]interface{}{ | ||||||
| @@ -145,7 +167,7 @@ func (a *azureMethod) Authenticate(ctx context.Context, client *api.Client) (ret | |||||||
| 		"vmss_name":           instance.Compute.VMScaleSetName, | 		"vmss_name":           instance.Compute.VMScaleSetName, | ||||||
| 		"resource_group_name": instance.Compute.ResourceGroupName, | 		"resource_group_name": instance.Compute.ResourceGroupName, | ||||||
| 		"subscription_id":     instance.Compute.SubscriptionID, | 		"subscription_id":     instance.Compute.SubscriptionID, | ||||||
| 		"jwt":                 identity.AccessToken, | 		"jwt":                 token, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return fmt.Sprintf("%s/login", a.mountPath), nil, data, nil | 	return fmt.Sprintf("%s/login", a.mountPath), nil, data, nil | ||||||
| @@ -161,6 +183,54 @@ func (a *azureMethod) CredSuccess() { | |||||||
| func (a *azureMethod) Shutdown() { | func (a *azureMethod) Shutdown() { | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // getAzureTokenFromEnvironment Is Azure's preferred way for authentication, and takes values | ||||||
|  | // from environment variables to form a credential. | ||||||
|  | // It uses a DefaultAzureCredential: | ||||||
|  | // https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#readme-defaultazurecredential | ||||||
|  | // Environment variables are taken into account in the following order: | ||||||
|  | // https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#readme-environment-variables | ||||||
|  | func getAzureTokenFromEnvironment(ctx context.Context, scope string) (string, error) { | ||||||
|  | 	cred, err := az.NewDefaultAzureCredential(nil) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	tokenOpts := policy.TokenRequestOptions{Scopes: []string{scope}} | ||||||
|  | 	tk, err := cred.GetToken(ctx, tokenOpts) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  | 	return tk.Token, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // getInstanceMetadataInfo calls the Azure Instance Metadata endpoint to get | ||||||
|  | // information about the Azure environment it's running in. | ||||||
|  | func getInstanceMetadataInfo(ctx context.Context) ([]byte, error) { | ||||||
|  | 	return getMetadataInfo(ctx, instanceEndpoint, "", "", "") | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // getTokenFromIdentityEndpoint is kept for backwards compatibility purposes. Using the | ||||||
|  | // newer APIs and the Azure SDK should be preferred over this mechanism. | ||||||
|  | func getTokenFromIdentityEndpoint(ctx context.Context, resource, objectID, clientID string) (string, error) { | ||||||
|  | 	var identity struct { | ||||||
|  | 		AccessToken string `json:"access_token"` | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	body, err := getMetadataInfo(ctx, identityEndpoint, resource, objectID, clientID) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", err | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	err = jsonutil.DecodeJSON(body, &identity) | ||||||
|  | 	if err != nil { | ||||||
|  | 		return "", fmt.Errorf("error parsing identity metadata response: %w", err) | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return identity.AccessToken, nil | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // getMetadataInfo calls the Azure metadata endpoint with the given parameters. | ||||||
|  | // An empty resource, objectID and clientID will return metadata information. | ||||||
| func getMetadataInfo(ctx context.Context, endpoint, resource, objectID, clientID string) ([]byte, error) { | func getMetadataInfo(ctx context.Context, endpoint, resource, objectID, clientID string) ([]byte, error) { | ||||||
| 	req, err := http.NewRequest("GET", endpoint, nil) | 	req, err := http.NewRequest("GET", endpoint, nil) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| @@ -194,7 +264,7 @@ func getMetadataInfo(ctx context.Context, endpoint, resource, objectID, clientID | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	defer resp.Body.Close() | 	defer resp.Body.Close() | ||||||
| 	body, err := ioutil.ReadAll(resp.Body) | 	body, err := io.ReadAll(resp.Body) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return nil, fmt.Errorf("error reading metadata from %s: %w", endpoint, err) | 		return nil, fmt.Errorf("error reading metadata from %s: %w", endpoint, err) | ||||||
| 	} | 	} | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								go.mod
									
									
									
									
									
								
							| @@ -26,6 +26,8 @@ require ( | |||||||
| 	cloud.google.com/go/monitoring v1.13.0 | 	cloud.google.com/go/monitoring v1.13.0 | ||||||
| 	cloud.google.com/go/spanner v1.45.0 | 	cloud.google.com/go/spanner v1.45.0 | ||||||
| 	cloud.google.com/go/storage v1.28.1 | 	cloud.google.com/go/storage v1.28.1 | ||||||
|  | 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 | ||||||
|  | 	github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 | ||||||
| 	github.com/Azure/azure-storage-blob-go v0.15.0 | 	github.com/Azure/azure-storage-blob-go v0.15.0 | ||||||
| 	github.com/Azure/go-autorest/autorest v0.11.29 | 	github.com/Azure/go-autorest/autorest v0.11.29 | ||||||
| 	github.com/Azure/go-autorest/autorest/adal v0.9.22 | 	github.com/Azure/go-autorest/autorest/adal v0.9.22 | ||||||
| @@ -122,7 +124,7 @@ require ( | |||||||
| 	github.com/hashicorp/raft-boltdb/v2 v2.0.0-20210421194847-a7e34179d62c | 	github.com/hashicorp/raft-boltdb/v2 v2.0.0-20210421194847-a7e34179d62c | ||||||
| 	github.com/hashicorp/raft-snapshot v1.0.4 | 	github.com/hashicorp/raft-snapshot v1.0.4 | ||||||
| 	github.com/hashicorp/vault-plugin-auth-alicloud v0.15.0 | 	github.com/hashicorp/vault-plugin-auth-alicloud v0.15.0 | ||||||
| 	github.com/hashicorp/vault-plugin-auth-azure v0.15.1 | 	github.com/hashicorp/vault-plugin-auth-azure v0.15.2-0.20230808174847-9dfb4f4a5ba7 | ||||||
| 	github.com/hashicorp/vault-plugin-auth-centrify v0.15.1 | 	github.com/hashicorp/vault-plugin-auth-centrify v0.15.1 | ||||||
| 	github.com/hashicorp/vault-plugin-auth-cf v0.15.0 | 	github.com/hashicorp/vault-plugin-auth-cf v0.15.0 | ||||||
| 	github.com/hashicorp/vault-plugin-auth-gcp v0.16.0 | 	github.com/hashicorp/vault-plugin-auth-gcp v0.16.0 | ||||||
| @@ -200,19 +202,19 @@ require ( | |||||||
| 	go.etcd.io/etcd/client/v3 v3.5.7 | 	go.etcd.io/etcd/client/v3 v3.5.7 | ||||||
| 	go.mongodb.org/atlas v0.28.0 | 	go.mongodb.org/atlas v0.28.0 | ||||||
| 	go.mongodb.org/mongo-driver v1.11.6 | 	go.mongodb.org/mongo-driver v1.11.6 | ||||||
| 	go.opentelemetry.io/otel v1.14.0 | 	go.opentelemetry.io/otel v1.16.0 | ||||||
| 	go.opentelemetry.io/otel/sdk v1.14.0 | 	go.opentelemetry.io/otel/sdk v1.14.0 | ||||||
| 	go.opentelemetry.io/otel/trace v1.14.0 | 	go.opentelemetry.io/otel/trace v1.16.0 | ||||||
| 	go.uber.org/atomic v1.11.0 | 	go.uber.org/atomic v1.11.0 | ||||||
| 	go.uber.org/goleak v1.2.1 | 	go.uber.org/goleak v1.2.1 | ||||||
| 	golang.org/x/crypto v0.9.0 | 	golang.org/x/crypto v0.10.0 | ||||||
| 	golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 | 	golang.org/x/exp v0.0.0-20230522175609-2e198f4a06a1 | ||||||
| 	golang.org/x/net v0.10.0 | 	golang.org/x/net v0.11.0 | ||||||
| 	golang.org/x/oauth2 v0.8.0 | 	golang.org/x/oauth2 v0.9.0 | ||||||
| 	golang.org/x/sync v0.2.0 | 	golang.org/x/sync v0.2.0 | ||||||
| 	golang.org/x/sys v0.8.0 | 	golang.org/x/sys v0.9.0 | ||||||
| 	golang.org/x/term v0.8.0 | 	golang.org/x/term v0.9.0 | ||||||
| 	golang.org/x/text v0.9.0 | 	golang.org/x/text v0.10.0 | ||||||
| 	golang.org/x/tools v0.7.0 | 	golang.org/x/tools v0.7.0 | ||||||
| 	google.golang.org/api v0.124.0 | 	google.golang.org/api v0.124.0 | ||||||
| 	google.golang.org/grpc v1.55.0 | 	google.golang.org/grpc v1.55.0 | ||||||
| @@ -238,8 +240,6 @@ require ( | |||||||
| 	github.com/99designs/keyring v1.2.2 // indirect | 	github.com/99designs/keyring v1.2.2 // indirect | ||||||
| 	github.com/Azure/azure-pipeline-go v0.2.3 // indirect | 	github.com/Azure/azure-pipeline-go v0.2.3 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go v67.2.0+incompatible // indirect | 	github.com/Azure/azure-sdk-for-go v67.2.0+incompatible // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 // indirect |  | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 // indirect |  | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v4 v4.2.1 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v4 v4.2.1 // indirect | ||||||
| 	github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.1.0 // indirect | 	github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/msi/armmsi v1.1.0 // indirect | ||||||
| @@ -298,6 +298,7 @@ require ( | |||||||
| 	github.com/cespare/xxhash/v2 v2.2.0 // indirect | 	github.com/cespare/xxhash/v2 v2.2.0 // indirect | ||||||
| 	github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible // indirect | 	github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible // indirect | ||||||
| 	github.com/circonus-labs/circonusllhist v0.1.3 // indirect | 	github.com/circonus-labs/circonusllhist v0.1.3 // indirect | ||||||
|  | 	github.com/cjlapao/common-go v0.0.39 // indirect | ||||||
| 	github.com/cloudflare/circl v1.3.3 // indirect | 	github.com/cloudflare/circl v1.3.3 // indirect | ||||||
| 	github.com/cloudfoundry-community/go-cfclient v0.0.0-20210823134051-721f0e559306 // indirect | 	github.com/cloudfoundry-community/go-cfclient v0.0.0-20210823134051-721f0e559306 // indirect | ||||||
| 	github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe // indirect | 	github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe // indirect | ||||||
| @@ -338,7 +339,7 @@ require ( | |||||||
| 	github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect | 	github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect | ||||||
| 	github.com/go-git/go-billy/v5 v5.4.1 // indirect | 	github.com/go-git/go-billy/v5 v5.4.1 // indirect | ||||||
| 	github.com/go-ldap/ldif v0.0.0-20200320164324-fd88d9b715b3 // indirect | 	github.com/go-ldap/ldif v0.0.0-20200320164324-fd88d9b715b3 // indirect | ||||||
| 	github.com/go-logr/logr v1.2.3 // indirect | 	github.com/go-logr/logr v1.2.4 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
| 	github.com/go-ole/go-ole v1.2.6 // indirect | 	github.com/go-ole/go-ole v1.2.6 // indirect | ||||||
| 	github.com/go-openapi/analysis v0.20.0 // indirect | 	github.com/go-openapi/analysis v0.20.0 // indirect | ||||||
| @@ -418,6 +419,14 @@ require ( | |||||||
| 	github.com/mattn/go-ieproxy v0.0.1 // indirect | 	github.com/mattn/go-ieproxy v0.0.1 // indirect | ||||||
| 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect | 	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect | ||||||
| 	github.com/mediocregopher/radix/v4 v4.1.2 // indirect | 	github.com/mediocregopher/radix/v4 v4.1.2 // indirect | ||||||
|  | 	github.com/microsoft/kiota-abstractions-go v1.1.0 // indirect | ||||||
|  | 	github.com/microsoft/kiota-authentication-azure-go v1.0.0 // indirect | ||||||
|  | 	github.com/microsoft/kiota-http-go v1.0.0 // indirect | ||||||
|  | 	github.com/microsoft/kiota-serialization-form-go v1.0.0 // indirect | ||||||
|  | 	github.com/microsoft/kiota-serialization-json-go v1.0.4 // indirect | ||||||
|  | 	github.com/microsoft/kiota-serialization-text-go v1.0.0 // indirect | ||||||
|  | 	github.com/microsoftgraph/msgraph-sdk-go v1.12.0 // indirect | ||||||
|  | 	github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0 // indirect | ||||||
| 	github.com/miekg/dns v1.1.43 // indirect | 	github.com/miekg/dns v1.1.43 // indirect | ||||||
| 	github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect | 	github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect | ||||||
| 	github.com/mitchellh/hashstructure v1.1.0 // indirect | 	github.com/mitchellh/hashstructure v1.1.0 // indirect | ||||||
| @@ -477,12 +486,14 @@ require ( | |||||||
| 	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect | 	github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect | ||||||
| 	github.com/xeipuuv/gojsonschema v1.2.0 // indirect | 	github.com/xeipuuv/gojsonschema v1.2.0 // indirect | ||||||
| 	github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect | 	github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect | ||||||
|  | 	github.com/yosida95/uritemplate/v3 v3.0.2 // indirect | ||||||
| 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect | 	github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect | ||||||
| 	github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 // indirect | 	github.com/yuin/gopher-lua v0.0.0-20210529063254-f4c35e4016d9 // indirect | ||||||
| 	github.com/yusufpapurcu/wmi v1.2.2 // indirect | 	github.com/yusufpapurcu/wmi v1.2.2 // indirect | ||||||
| 	github.com/zclconf/go-cty v1.12.1 // indirect | 	github.com/zclconf/go-cty v1.12.1 // indirect | ||||||
| 	go.etcd.io/etcd/api/v3 v3.5.7 // indirect | 	go.etcd.io/etcd/api/v3 v3.5.7 // indirect | ||||||
| 	go.opencensus.io v0.24.0 // indirect | 	go.opencensus.io v0.24.0 // indirect | ||||||
|  | 	go.opentelemetry.io/otel/metric v1.16.0 // indirect | ||||||
| 	go.uber.org/multierr v1.7.0 // indirect | 	go.uber.org/multierr v1.7.0 // indirect | ||||||
| 	go.uber.org/zap v1.19.1 // indirect | 	go.uber.org/zap v1.19.1 // indirect | ||||||
| 	golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a // indirect | 	golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a // indirect | ||||||
|   | |||||||
							
								
								
									
										48
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										48
									
								
								go.sum
									
									
									
									
									
								
							| @@ -548,8 +548,8 @@ github.com/Azure/azure-sdk-for-go v56.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9mo | |||||||
| github.com/Azure/azure-sdk-for-go v67.2.0+incompatible h1:Uu/Ww6ernvPTrpq31kITVTIm/I5jlJ1wjtEH/bmSB2k= | github.com/Azure/azure-sdk-for-go v67.2.0+incompatible h1:Uu/Ww6ernvPTrpq31kITVTIm/I5jlJ1wjtEH/bmSB2k= | ||||||
| github.com/Azure/azure-sdk-for-go v67.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= | github.com/Azure/azure-sdk-for-go v67.2.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= | github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0 h1:8kDqDngH+DmVBiCtIjCFTGa7MBnsIOkF9IccInFEbjk= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0 h1:8q4SaHjFsClSvuVne0ID/5Ka8u3fcIHyqkLjcFpNRHQ= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azcore v1.6.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= | github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.0/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= | ||||||
| github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= | github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= | ||||||
| @@ -899,6 +899,8 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyY | |||||||
| github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= | github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= | ||||||
| github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= | github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= | ||||||
| github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= | github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= | ||||||
|  | github.com/cjlapao/common-go v0.0.39 h1:bAAUrj2B9v0kMzbAOhzjSmiyDy+rd56r2sy7oEiQLlA= | ||||||
|  | github.com/cjlapao/common-go v0.0.39/go.mod h1:M3dzazLjTjEtZJbbxoA5ZDiGCiHmpwqW9l4UWaddwOA= | ||||||
| github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= | github.com/client9/misspell v0.3.4 h1:ta993UF76GwbvJcIo3Y68y/M3WxlpEHPWIGDkJYwzJI= | ||||||
| github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= | ||||||
| github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= | github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= | ||||||
| @@ -1316,6 +1318,8 @@ github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV | |||||||
| github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||||
| github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= | github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= | ||||||
| github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||||
|  | github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= | ||||||
|  | github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= | ||||||
| github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= | github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= | ||||||
| github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= | ||||||
| github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= | ||||||
| @@ -1878,6 +1882,10 @@ github.com/hashicorp/vault-plugin-auth-alicloud v0.15.0 h1:R2SVwOeVLG5DXzUx42UWh | |||||||
| github.com/hashicorp/vault-plugin-auth-alicloud v0.15.0/go.mod h1:YQXpa2s4rGYKm3Oa/Nkgh5SuGVfHFNEIUwDDYWyhloE= | github.com/hashicorp/vault-plugin-auth-alicloud v0.15.0/go.mod h1:YQXpa2s4rGYKm3Oa/Nkgh5SuGVfHFNEIUwDDYWyhloE= | ||||||
| github.com/hashicorp/vault-plugin-auth-azure v0.15.1 h1:CknW0l2O70326KfepWeDuPszuNherhAtVNaSLRBsS4U= | github.com/hashicorp/vault-plugin-auth-azure v0.15.1 h1:CknW0l2O70326KfepWeDuPszuNherhAtVNaSLRBsS4U= | ||||||
| github.com/hashicorp/vault-plugin-auth-azure v0.15.1/go.mod h1:qRCibAYC0AV4s2+HxEwmLMPNLENK1kx2mrq9ldnGdkY= | github.com/hashicorp/vault-plugin-auth-azure v0.15.1/go.mod h1:qRCibAYC0AV4s2+HxEwmLMPNLENK1kx2mrq9ldnGdkY= | ||||||
|  | github.com/hashicorp/vault-plugin-auth-azure v0.15.2-0.20230724181056-2fc43e182651 h1:sdhoAwti2ZVCEoLYlIZ+/tLmhFcson0cWrACMaPnoLI= | ||||||
|  | github.com/hashicorp/vault-plugin-auth-azure v0.15.2-0.20230724181056-2fc43e182651/go.mod h1:cEQZHfdfPEhjvJrYZ/Lt29T/uX0P7X0U7ECZammfLU0= | ||||||
|  | github.com/hashicorp/vault-plugin-auth-azure v0.15.2-0.20230808174847-9dfb4f4a5ba7 h1:P2qo8lcRmNzt1/vy38a2rWlFJw1XttwJJm5un5gFCh0= | ||||||
|  | github.com/hashicorp/vault-plugin-auth-azure v0.15.2-0.20230808174847-9dfb4f4a5ba7/go.mod h1:cEQZHfdfPEhjvJrYZ/Lt29T/uX0P7X0U7ECZammfLU0= | ||||||
| github.com/hashicorp/vault-plugin-auth-centrify v0.15.1 h1:6StAr5tltpySNgyUwWC8czm9ZqkO7NIZfcRmxxtFwQ8= | github.com/hashicorp/vault-plugin-auth-centrify v0.15.1 h1:6StAr5tltpySNgyUwWC8czm9ZqkO7NIZfcRmxxtFwQ8= | ||||||
| github.com/hashicorp/vault-plugin-auth-centrify v0.15.1/go.mod h1:xXs4I5yLxbQ5VHcpvSxkRhShCTXd8Zyrni8qnFrfQ4Y= | github.com/hashicorp/vault-plugin-auth-centrify v0.15.1/go.mod h1:xXs4I5yLxbQ5VHcpvSxkRhShCTXd8Zyrni8qnFrfQ4Y= | ||||||
| github.com/hashicorp/vault-plugin-auth-cf v0.15.0 h1:zIVGlYXCRBY/ElucWdFC9xF27d2QMGMQPm9wSezGREI= | github.com/hashicorp/vault-plugin-auth-cf v0.15.0 h1:zIVGlYXCRBY/ElucWdFC9xF27d2QMGMQPm9wSezGREI= | ||||||
| @@ -2211,6 +2219,22 @@ github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Cl | |||||||
| github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= | github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= | ||||||
| github.com/michaelklishin/rabbit-hole/v2 v2.12.0 h1:946p6jOYFcVJdtBBX8MwXvuBkpPjwm1Nm2Qg8oX+uFk= | github.com/michaelklishin/rabbit-hole/v2 v2.12.0 h1:946p6jOYFcVJdtBBX8MwXvuBkpPjwm1Nm2Qg8oX+uFk= | ||||||
| github.com/michaelklishin/rabbit-hole/v2 v2.12.0/go.mod h1:AN/3zyz7d++OHf+4WUo/LR0+Q5nlPHMaXasIsG/mPY0= | github.com/michaelklishin/rabbit-hole/v2 v2.12.0/go.mod h1:AN/3zyz7d++OHf+4WUo/LR0+Q5nlPHMaXasIsG/mPY0= | ||||||
|  | github.com/microsoft/kiota-abstractions-go v1.1.0 h1:X1aKlsYCRs/0RSChr/fbq4j/+kxRzbSY5GeWhtHQNYI= | ||||||
|  | github.com/microsoft/kiota-abstractions-go v1.1.0/go.mod h1:RkxyZ5x87Njik7iVeQY9M2wtrrL1MJZcXiI/BxD/82g= | ||||||
|  | github.com/microsoft/kiota-authentication-azure-go v1.0.0 h1:29FNZZ/4nnCOwFcGWlB/sxPvWz487HA2bXH8jR5k2Rk= | ||||||
|  | github.com/microsoft/kiota-authentication-azure-go v1.0.0/go.mod h1:rnx3PRlkGdXDcA/0lZQTbBwyYGmc+3POt7HpE/e4jGw= | ||||||
|  | github.com/microsoft/kiota-http-go v1.0.0 h1:F1hd6gMlLeEgH2CkRB7z13ow7LxMKMWEmms/t0VfS+k= | ||||||
|  | github.com/microsoft/kiota-http-go v1.0.0/go.mod h1:eujxJliqodotsYepIc6ihhK+vXMMt5Q8YiSNL7+7M7U= | ||||||
|  | github.com/microsoft/kiota-serialization-form-go v1.0.0 h1:UNdrkMnLFqUCccQZerKjblsyVgifS11b3WCx+eFEsAI= | ||||||
|  | github.com/microsoft/kiota-serialization-form-go v1.0.0/go.mod h1:h4mQOO6KVTNciMF6azi1J9QB19ujSw3ULKcSNyXXOMA= | ||||||
|  | github.com/microsoft/kiota-serialization-json-go v1.0.4 h1:5TaISWwd2Me8clrK7SqNATo0tv9seOq59y4I5953egQ= | ||||||
|  | github.com/microsoft/kiota-serialization-json-go v1.0.4/go.mod h1:rM4+FsAY+9AEpBsBzkFFis+b/LZLlNKKewuLwK9Q6Mg= | ||||||
|  | github.com/microsoft/kiota-serialization-text-go v1.0.0 h1:XOaRhAXy+g8ZVpcq7x7a0jlETWnWrEum0RhmbYrTFnA= | ||||||
|  | github.com/microsoft/kiota-serialization-text-go v1.0.0/go.mod h1:sM1/C6ecnQ7IquQOGUrUldaO5wj+9+v7G2W3sQ3fy6M= | ||||||
|  | github.com/microsoftgraph/msgraph-sdk-go v1.12.0 h1:/jZJ1KCtVlvxStKq31VsEPOQQ5Iy26R1pgvc+RYt7XI= | ||||||
|  | github.com/microsoftgraph/msgraph-sdk-go v1.12.0/go.mod h1:ccLv84FJFtwdSzYWM/HlTes5FLzkzzBsYh9kg93/WS8= | ||||||
|  | github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0 h1:7NWTfyXvOjoizW7PmxNp3+8wCKPgpODs/D1cUZ3fkAY= | ||||||
|  | github.com/microsoftgraph/msgraph-sdk-go-core v1.0.0/go.mod h1:tQb4q3YMIj2dWhhXhQSJ4ELpol931ANKzHSYK5kX1qE= | ||||||
| github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= | ||||||
| github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= | github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= | ||||||
| github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= | github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= | ||||||
| @@ -2774,6 +2798,8 @@ github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMx | |||||||
| github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= | ||||||
| github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= | ||||||
| github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= | github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= | ||||||
|  | github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= | ||||||
|  | github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= | ||||||
| github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= | ||||||
| github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= | github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= | ||||||
| github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= | ||||||
| @@ -2863,6 +2889,8 @@ go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRM | |||||||
| go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= | go.opentelemetry.io/otel v1.10.0/go.mod h1:NbvWjCthWHKBEUMpf0/v8ZRZlni86PpGFEMA9pnQSnQ= | ||||||
| go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= | go.opentelemetry.io/otel v1.14.0 h1:/79Huy8wbf5DnIPhemGB+zEPVwnN6fuQybr/SRXa6hM= | ||||||
| go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= | go.opentelemetry.io/otel v1.14.0/go.mod h1:o4buv+dJzx8rohcUeRmWUZhqupFvzWis188WlggnNeU= | ||||||
|  | go.opentelemetry.io/otel v1.16.0 h1:Z7GVAX/UkAXPKsy94IU+i6thsQS4nb7LviLpnaNeW8s= | ||||||
|  | go.opentelemetry.io/otel v1.16.0/go.mod h1:vl0h9NUa1D5s1nv3A5vZOYWn8av4K8Ml6JDeHrT/bx4= | ||||||
| go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= | go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= | ||||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= | go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= | ||||||
| go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0/go.mod h1:M1hVZHNxcbkAlcvrOMlpQ4YOO3Awf+4N2dxkZL3xm04= | go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0/go.mod h1:M1hVZHNxcbkAlcvrOMlpQ4YOO3Awf+4N2dxkZL3xm04= | ||||||
| @@ -2884,6 +2912,8 @@ go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9deb | |||||||
| go.opentelemetry.io/otel/metric v0.30.0/go.mod h1:/ShZ7+TS4dHzDFmfi1kSXMhMVubNoP0oIaBp70J6UXU= | go.opentelemetry.io/otel/metric v0.30.0/go.mod h1:/ShZ7+TS4dHzDFmfi1kSXMhMVubNoP0oIaBp70J6UXU= | ||||||
| go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A= | go.opentelemetry.io/otel/metric v0.31.0/go.mod h1:ohmwj9KTSIeBnDBm/ZwH2PSZxZzoOaG2xZeekTRzL5A= | ||||||
| go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= | go.opentelemetry.io/otel/metric v0.37.0/go.mod h1:DmdaHfGt54iV6UKxsV9slj2bBRJcKC1B1uvDLIioc1s= | ||||||
|  | go.opentelemetry.io/otel/metric v1.16.0 h1:RbrpwVG1Hfv85LgnZ7+txXioPDoh6EdbZHo26Q3hqOo= | ||||||
|  | go.opentelemetry.io/otel/metric v1.16.0/go.mod h1:QE47cpOmkwipPiefDwo2wDzwJrlfxxNYodqc4xnGCo4= | ||||||
| go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= | go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= | ||||||
| go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= | go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= | ||||||
| go.opentelemetry.io/otel/sdk v1.0.1/go.mod h1:HrdXne+BiwsOHYYkBE5ysIcv2bvdZstxzmCQhxTcZkI= | go.opentelemetry.io/otel/sdk v1.0.1/go.mod h1:HrdXne+BiwsOHYYkBE5ysIcv2bvdZstxzmCQhxTcZkI= | ||||||
| @@ -2902,6 +2932,8 @@ go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaT | |||||||
| go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= | go.opentelemetry.io/otel/trace v1.10.0/go.mod h1:Sij3YYczqAdz+EhmGhE6TpTxUO5/F/AzrK+kxfGqySM= | ||||||
| go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= | go.opentelemetry.io/otel/trace v1.14.0 h1:wp2Mmvj41tDsyAJXiWDWpfNsOiIyd38fy85pyKcFq/M= | ||||||
| go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= | go.opentelemetry.io/otel/trace v1.14.0/go.mod h1:8avnQLK+CG77yNLUae4ea2JDQ6iT+gozhnZjy/rw9G8= | ||||||
|  | go.opentelemetry.io/otel/trace v1.16.0 h1:8JRpaObFoW0pxuVPapkgH8UhHQj+bJW8jJsCZEu5MQs= | ||||||
|  | go.opentelemetry.io/otel/trace v1.16.0/go.mod h1:Yt9vYq1SdNz3xdjZZK7wcXv1qv2pwLkqr2QVwea0ef0= | ||||||
| go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= | go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= | ||||||
| go.opentelemetry.io/proto/otlp v0.9.0/go.mod h1:1vKfU9rv61e9EVGthD1zNvUbiwPcimSsOPU9brfSHJg= | go.opentelemetry.io/proto/otlp v0.9.0/go.mod h1:1vKfU9rv61e9EVGthD1zNvUbiwPcimSsOPU9brfSHJg= | ||||||
| go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= | go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= | ||||||
| @@ -2992,6 +3024,8 @@ golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58 | |||||||
| golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= | golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= | ||||||
| golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= | golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g= | ||||||
| golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= | golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= | ||||||
|  | golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= | ||||||
|  | golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= | ||||||
| golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= | ||||||
| @@ -3150,6 +3184,8 @@ golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= | |||||||
| golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= | golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= | ||||||
| golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= | golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= | ||||||
| golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= | golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= | ||||||
|  | golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= | ||||||
|  | golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= | ||||||
| golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= | ||||||
| golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20190130055435-99b60b757ec1/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
| golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= | ||||||
| @@ -3182,6 +3218,8 @@ golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec | |||||||
| golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= | golang.org/x/oauth2 v0.5.0/go.mod h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I= | ||||||
| golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= | golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= | ||||||
| golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= | golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= | ||||||
|  | golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs= | ||||||
|  | golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw= | ||||||
| golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= | ||||||
| @@ -3365,6 +3403,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | |||||||
| golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= | golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU= | ||||||
| golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
|  | golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= | ||||||
|  | golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= | ||||||
| golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= | ||||||
| golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= | ||||||
| @@ -3379,6 +3419,8 @@ golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= | |||||||
| golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= | golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= | ||||||
| golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= | golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols= | ||||||
| golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= | ||||||
|  | golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28= | ||||||
|  | golang.org/x/term v0.9.0/go.mod h1:M6DEAAIenWoTxdKrOltXcmDY3rSplQUkrvaDU5FcQyo= | ||||||
| golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= | ||||||
| @@ -3397,6 +3439,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= | |||||||
| golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||||
| golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= | golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= | ||||||
| golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= | ||||||
|  | golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= | ||||||
|  | golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= | ||||||
| golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
| golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= | ||||||
|   | |||||||
| @@ -16,7 +16,19 @@ on the value of the `resource` parameter. | |||||||
|  |  | ||||||
| - `role` `(string: required)` - The role to authenticate against on Vault | - `role` `(string: required)` - The role to authenticate against on Vault | ||||||
|  |  | ||||||
| - `resource` `(string: required)` - The resource name to use when getting instance information | - `authenticate_from_environment` `(boolean: false)` - If set to true, will attempt to make an Azure | ||||||
|  |   identity object through Azure specific environment variables, in priority order and as specified [in | ||||||
|  |   Azure documentation][environment-variables]. Will work seamlessly with Azure | ||||||
|  |   [Workload Identity][workload-identity] and others. | ||||||
|  |  | ||||||
|  | ~> Note: If `authenticate_from_environment` is set to true, `object_id`, and `client_id` will be ignored | ||||||
|  | in favour of that authentication approach. | ||||||
|  |  | ||||||
|  | - `scope` `(string: optional)` - The scope to use when obtaining a token. If not supplied, will default to | ||||||
|  |   the value used for `resource` appended with "`/.default`" appended as a suffix. For more information on | ||||||
|  |   scopes in Azure, see [this document][scopes]. | ||||||
|  |  | ||||||
|  | - `resource` `(string: required)` - The resource name to use when getting identity information. | ||||||
|  |  | ||||||
| - `object_id` `(string: optional)` - The object ID of the user-assigned managed identity to use | - `object_id` `(string: optional)` - The object ID of the user-assigned managed identity to use | ||||||
|   when acquiring an [access token][azure-access-token]. Only one of `object_id` or `client_id` |   when acquiring an [access token][azure-access-token]. Only one of `object_id` or `client_id` | ||||||
| @@ -26,4 +38,26 @@ on the value of the `resource` parameter. | |||||||
|   when acquiring an [access token][azure-access-token]. Only one of `object_id` or `client_id` |   when acquiring an [access token][azure-access-token]. Only one of `object_id` or `client_id` | ||||||
|   may be provided. |   may be provided. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ## Example configuration | ||||||
|  |  | ||||||
|  | Example client auto-auth configuration block for an [Azure Workload Identity][workload-identity]: | ||||||
|  |  | ||||||
|  | ```hcl | ||||||
|  | auto_auth { | ||||||
|  |   method { | ||||||
|  |     type = "azure" | ||||||
|  |     config = { | ||||||
|  |       authenticate_from_environment = true | ||||||
|  |       role = "dev-role" | ||||||
|  |       resource = "https://management.azure.com/" | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  |  | ||||||
| [azure-access-token]: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token#get-a-token-using-http | [azure-access-token]: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/how-to-use-vm-token#get-a-token-using-http | ||||||
|  | [environment-variables]: https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/azidentity#readme-environment-variables | ||||||
|  | [workload-identity]: https://learn.microsoft.com/en-us/azure/aks/workload-identity-overview | ||||||
|  | [scopes]: https://learn.microsoft.com/en-us/azure/active-directory/develop/scopes-oidc | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Violet Hynes
					Violet Hynes