private VaultGetResponse CreateVault(KeyVaultManagementClient mgmtClient, string location, string tenantId, ServicePrincipalGetResult servicePrincipal) { var createResponse = mgmtClient.Vaults.CreateOrUpdate( resourceGroupName: rgName, vaultName: vaultName, parameters: new VaultCreateOrUpdateParameters { Location = location, Tags = new Dictionary <string, string>(), Properties = new VaultProperties { EnabledForDeployment = true, Sku = new Sku { Family = "A", Name = "Premium" }, TenantId = Guid.Parse(tenantId), VaultUri = "", AccessPolicies = new[] { new AccessPolicyEntry { TenantId = Guid.Parse(tenantId), ObjectId = Guid.Parse(servicePrincipal.ServicePrincipal.ObjectId), PermissionsToKeys = new string[] { "all" }, PermissionsToSecrets = new string[] { "all" } } } } } ); return(createResponse); }
public void QueryServicePrincipalTest() { using (UndoContext context = UndoContext.Current) { context.Start(); var client = (new GraphTestBase()).GraphClient; //test general 'list' var servicePrincipals = client.ServicePrincipal.List(null); Assert.NotNull(servicePrincipals); Assert.NotNull(servicePrincipals.StatusCode == HttpStatusCode.OK); Assert.NotNull(servicePrincipals.ServicePrincipals); string testServicePrincipalName = servicePrincipals.ServicePrincipals.ElementAt(0).ServicePrincipalNames[0]; string testObjcetId = servicePrincipals.ServicePrincipals.ElementAt(0).ObjectId; //test query by 'service principal name' ServicePrincipalListResult listResult = client.ServicePrincipal.GetByServicePrincipalName(testServicePrincipalName); ServicePrincipal servicePrincipal = listResult.ServicePrincipals[0]; Assert.True(listResult.ServicePrincipals.Count == 1); Assert.True(listResult.StatusCode == HttpStatusCode.OK); Assert.NotNull(servicePrincipal); Assert.True(servicePrincipal.ObjectId == testObjcetId); Assert.NotNull(servicePrincipal.DisplayName); Assert.NotNull(servicePrincipal.ObjectType); Assert.True(servicePrincipal.ServicePrincipalNames.Contains(testServicePrincipalName)); //test query by 'object id' ServicePrincipalGetResult getResult = client.ServicePrincipal.Get(testObjcetId); servicePrincipal = getResult.ServicePrincipal; Assert.NotNull(getResult); Assert.True(getResult.StatusCode == HttpStatusCode.OK); Assert.NotNull(getResult.ServicePrincipal); Assert.True(servicePrincipal.ObjectId == testObjcetId); Assert.NotNull(servicePrincipal.DisplayName); Assert.NotNull(servicePrincipal.ObjectType); Assert.True(servicePrincipal.ServicePrincipalNames.Contains(testServicePrincipalName)); //test query by 'displayName' listResult = client.ServicePrincipal.List(servicePrincipal.DisplayName); servicePrincipal = listResult.ServicePrincipals[0]; Assert.NotNull(listResult); Assert.True(listResult.StatusCode == HttpStatusCode.OK); Assert.True(servicePrincipal.ObjectId == testObjcetId); Assert.NotNull(servicePrincipal.DisplayName); Assert.NotNull(servicePrincipal.ObjectType); Assert.True(servicePrincipal.ServicePrincipalNames.Contains(testServicePrincipalName)); } }
//Get ApplicationId for the given ObjectId. private Guid GetApplicationId() { Guid tenantId = GetTenantId(AadTenantId); SubscriptionCloudCredentials cred = AzureSession.AuthenticationFactory.GetSubscriptionCloudCredentials(DefaultProfile.Context); GraphRbacManagementClient graphClient = new GraphRbacManagementClient(tenantId.ToString(), cred); ServicePrincipalGetResult res = graphClient.ServicePrincipal.Get(ObjectId.ToString()); var applicationId = Guid.Empty; Guid.TryParse(res.ServicePrincipal.AppId, out applicationId); Debug.Assert(applicationId != Guid.Empty); return(applicationId); }