private Tuple<IAccessToken, string> GetToken(IAuthenticationFactory authFactory, AzureContext context) { if (context.Subscription == null) { throw new ArgumentException(Resources.InvalidCurrentSubscription); } if (context.Account == null) { throw new ArgumentException(Resources.InvalidSubscriptionState); } if (context.Account.Type != AzureAccount.AccountType.User) { throw new ArgumentException(string.Format(Resources.UnsupportedAccountType, context.Account.Type)); } var tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) .FirstOrDefault(); if (tenant == null) { throw new ArgumentException(Resources.InvalidSubscriptionState); } try { var accesstoken = authFactory.Authenticate(context.Account, context.Environment, tenant, null, ShowDialog.Auto, ResourceIdEndpoint); return Tuple.Create(accesstoken, context.Environment.Endpoints[ResourceIdEndpoint]); } catch (Exception ex) { throw new ArgumentException(Resources.InvalidSubscriptionState, ex); } }
public static IHDInsightSubscriptionCredentials GetAccessTokenCredentials(this IAzureHDInsightCommonCommandBase command, AzureSubscription currentSubscription, AzureAccount azureAccount, AzureEnvironment environment) { ProfileClient profileClient = new ProfileClient(); AzureContext azureContext = new AzureContext { Subscription = currentSubscription, Environment = environment, Account = azureAccount }; var cloudCredentials = AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(azureContext) as AccessTokenCredential; if (cloudCredentials != null) { var field= typeof(AccessTokenCredential).GetField("token", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance); var accessToken = field.GetValue(cloudCredentials) as IAccessToken; if (accessToken != null) { return new HDInsightAccessTokenCredential() { SubscriptionId = currentSubscription.Id, AccessToken = accessToken.AccessToken }; } } return null; }
public KeyVaultDataServiceClient(IAuthenticationFactory authFactory, AzureContext context, HttpClient httpClient) { if (authFactory == null) { throw new ArgumentNullException("authFactory"); } if (context == null) { throw new ArgumentNullException("context"); } if (context.Environment == null) { throw new ArgumentException(Resources.InvalidAzureEnvironment); } if (httpClient == null) { throw new ArgumentNullException("httpClient"); } var credential = new DataServiceCredential(authFactory, context); this.keyVaultClient = new Client.KeyVaultClient( credential.OnAuthentication, SendRequestCallback, ReceiveResponseCallback, httpClient); this.vaultUriHelper = new VaultUriHelper( context.Environment.Endpoints[AzureEnvironment.Endpoint.AzureKeyVaultDnsSuffix]); }
/// <summary> /// Creates new ActiveDirectoryClient using WindowsAzureSubscription. /// </summary> /// <param name="context"></param> public ActiveDirectoryClient(AzureContext context) { AccessTokenCredential creds = (AccessTokenCredential)AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(context); GraphClient = AzureSession.ClientFactory.CreateCustomClient<GraphRbacManagementClient>( creds.TenantID, creds, context.Environment.GetEndpointAsUri(AzureEnvironment.Endpoint.Graph)); }
/// <summary> /// Creates new ResourceManagementClient /// </summary> /// <param name="subscription">Subscription containing resources to manipulate</param> public ResourcesClient(AzureContext context) : this( AzureSession.ClientFactory.CreateClient<ResourceManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager), new GalleryTemplatesClient(context), // TODO: http://vstfrd:8080/Azure/RD/_workitems#_a=edit&id=3247094 //AzureSession.ClientFactory.CreateClient<EventsClient>(context, AzureEnvironment.Endpoint.ResourceManager), AzureSession.ClientFactory.CreateClient<AuthorizationManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager)) { }
static AzureSession() { ClientFactory = new ClientFactory(); AuthenticationFactory = new AuthenticationFactory(); CurrentContext = new AzureContext(); CurrentContext.Environment = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; AzureSession.OldProfileFile = "WindowsAzureProfile.xml"; AzureSession.OldProfileFileBackup = "WindowsAzureProfile.xml.bak"; AzureSession.ProfileDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Resources.AzureDirectoryName); ; AzureSession.ProfileFile = "AzureProfile.json"; AzureSession.TokenCacheFile = "TokenCache.dat"; }
public DataServiceCredential(IAuthenticationFactory authFactory, AzureContext context) { if (authFactory == null) { throw new ArgumentNullException("authFactory"); } if (context == null) { throw new ArgumentNullException("context"); } var bundle = GetToken(authFactory, context); this.token = bundle.Item1; this.resourceId = bundle.Item2; }
public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context) { if (context.Subscription == null) { throw new ApplicationException(Resources.InvalidCurrentSubscription); } if (context.Account == null) { throw new ArgumentException(Resources.InvalidSubscriptionState); } if (context.Account.Type == AzureAccount.AccountType.Certificate) { var certificate = ProfileClient.DataStore.GetCertificate(context.Account.Id); return new CertificateCloudCredentials(context.Subscription.Id.ToString(), certificate); } var tenant = context.Subscription.GetPropertyAsArray(AzureSubscription.Property.Tenants) .Intersect(context.Account.GetPropertyAsArray(AzureAccount.Property.Tenants)) .FirstOrDefault(); if (tenant == null) { throw new ArgumentException(Resources.InvalidSubscriptionState); } try { var token = Authenticate(context.Account, context.Environment, tenant, null, ShowDialog.Never); return new AccessTokenCredential(context.Subscription.Id, token); } catch (Exception ex) { throw new ArgumentException(Resources.InvalidSubscriptionState, ex); } }
/// <summary> /// Creates PoliciesClient using WindowsAzureSubscription instance. /// </summary> /// <param name="subscription">The WindowsAzureSubscription instance</param> public AuthorizationClient(AzureContext context) { ActiveDirectoryClient = new ActiveDirectoryClient(context); AuthorizationManagementClient = AzureSession.ClientFactory.CreateClient<AuthorizationManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager); }
public static void SetCurrentContext(AzureSubscription subscription, AzureEnvironment environment, AzureAccount account) { if (environment == null) { if (subscription != null && CurrentContext != null && subscription.Environment == CurrentContext.Environment.Name) { environment = CurrentContext.Environment; } else { environment = AzureEnvironment.PublicEnvironments[EnvironmentName.AzureCloud]; } if (subscription != null) { subscription.Environment = environment.Name; } } if (account == null) { if (subscription != null && CurrentContext != null && subscription.Account != null) { if (CurrentContext.Account != null && subscription.Account == CurrentContext.Account.Id) { account = CurrentContext.Account; } else { throw new ArgumentException(Resources.AccountIdDoesntMatchSubscription, "account"); } subscription.Account = account.Id; } } if (subscription != null && subscription.Environment != environment.Name) { throw new ArgumentException(Resources.EnvironmentNameDoesntMatchSubscription, "environment"); } CurrentContext = new AzureContext { Subscription = subscription, Account = account, Environment = environment }; }
public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context) { return new CertificateCloudCredentials(context.Subscription.Id.ToString(), Certificate); }
public SubscriptionCloudCredentials GetSubscriptionCloudCredentials(AzureContext context) { return new AccessTokenCredential(context.Subscription.Id, Token); }
public GalleryTemplatesClient(AzureContext context) : this(AzureSession.ClientFactory.CreateClient<GalleryClient>(context, AzureEnvironment.Endpoint.Gallery)) { }
public DataFactoryClient(AzureContext context) { DataPipelineManagementClient = AzureSession.ClientFactory.CreateClient<DataPipelineManagementClient>( context, AzureEnvironment.Endpoint.ResourceManager); }
/// <summary> /// Creates new ResourceManagementClient /// </summary> /// <param name="subscription">Context with subscription containing a batch account to manipulate</param> public BatchClient(AzureContext context) : this(AzureSession.ClientFactory.CreateClient<BatchManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager), AzureSession.ClientFactory.CreateClient<ResourceManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager)) { }
public StreamAnalyticsClient(AzureContext context) { StreamAnalyticsManagementClient = AzureSession.ClientFactory.CreateClient<StreamAnalyticsManagementClient>( context, AzureEnvironment.Endpoint.ResourceManager); }
public RedisCacheClient(AzureContext context) { _client = AzureSession.ClientFactory.CreateClient<RedisManagementClient>(context, AzureEnvironment.Endpoint.ResourceManager); }