in pkg/cloud/azureclient.go [144:176]
func getClient(env azure.Environment, subscriptionID string, credential azcore.TokenCredential, client *http.Client) (*AzureClient, error) {
auth, err := kiotaauth.NewAzureIdentityAuthenticationProviderWithScopes(credential, []string{getGraphScope(env)})
if err != nil {
return nil, errors.Wrap(err, "failed to create authentication provider")
}
adapter, err := msgraphsdk.NewGraphRequestAdapterWithParseNodeFactoryAndSerializationWriterFactoryAndHttpClient(auth, nil, nil, client)
if err != nil {
return nil, errors.Wrap(err, "failed to create request adapter")
}
roleAssignmentsClient, err := armauthorization.NewRoleAssignmentsClient(subscriptionID, credential, nil)
if err != nil {
return nil, errors.Wrap(err, "failed to create role assignments client")
}
roleDefinitionsClient, err := armauthorization.NewRoleDefinitionsClient(credential, nil)
if err != nil {
return nil, errors.Wrap(err, "failed to create role definitions client")
}
azClient := &AzureClient{
environment: env,
subscriptionID: subscriptionID,
graphServiceClient: msgraphsdk.NewGraphServiceClient(adapter),
roleAssignmentsClient: roleAssignmentsClient,
roleDefinitionsClient: roleDefinitionsClient,
}
return azClient, nil
}