public override void ExecuteCmdlet() { ExecutionBlock(() => { if (!string.IsNullOrEmpty(ApplicationId)) { ObjectId = ActiveDirectoryClient.GetObjectIdFromApplicationId(ApplicationId); } if (!string.IsNullOrEmpty(Password)) { // Create object for password credential var passwordCredential = new PasswordCredential() { EndDate = EndDate, StartDate = StartDate, KeyId = Guid.NewGuid().ToString(), Value = Password }; if (ShouldProcess(target: ObjectId, action: string.Format("Adding a new password to application with objectId {0}", ObjectId))) { WriteObject(ActiveDirectoryClient.CreateAppPasswordCredential(ObjectId, passwordCredential)); } } else if (!string.IsNullOrEmpty(CertValue)) { // Create object for key credential var keyCredential = new KeyCredential() { EndDate = EndDate, StartDate = StartDate, KeyId = Guid.NewGuid().ToString(), Value = CertValue, Type = "AsymmetricX509Cert", Usage = "Verify" }; if (ShouldProcess(target: ObjectId, action: string.Format("Adding a new certificate to application with objectId {0}", ObjectId))) { WriteObject(ActiveDirectoryClient.CreateAppKeyCredential(ObjectId, keyCredential)); } } else { throw new InvalidOperationException("No valid keyCredential or passowrdCredential to update!!"); } }); }
public PasswordCredential CreatePasswordCredential() { string DirectoryAccessKey; using (RNGCryptoServiceProvider provider = new RNGCryptoServiceProvider()) { byte[] key = new byte[32]; provider.GetBytes(key); DirectoryAccessKey = Convert.ToBase64String(key); } PasswordCredential cred = new PasswordCredential(); cred.StartDate = DateTime.Now; cred.EndDate = DateTime.Now.AddMonths(12); cred.KeyId = Guid.NewGuid(); cred.Value = DirectoryAccessKey; return cred; }
public Application CreateApplication(PasswordCredential passwordCredential = null, KeyCredential keyCredential = null, string applicationName = null) { var appName = applicationName ?? TestUtilities.GenerateName("adApplication"); var url = string.Format("http://{0}/home", appName); var parameters = new ApplicationCreateParameters(); parameters.AvailableToOtherTenants = false; parameters.DisplayName = appName; parameters.Homepage = url; parameters.IdentifierUris = new[] { url }; parameters.ReplyUrls = new[] { url }; if (passwordCredential != null) { parameters.PasswordCredentials = new PasswordCredential[] { passwordCredential }; } if (keyCredential != null) { parameters.KeyCredentials = new KeyCredential[] { keyCredential }; } return GraphClient.Application.Create(parameters).Application; }
public PSADCredential CreateSpPasswordCredential(string spObjectId, PasswordCredential credential) { ValidatePasswordCredential(credential); var passwordCredsList = GetSpPasswordCredentials(spObjectId); // Add new PasswordCredential to existing KeyCredential list passwordCredsList.Add(credential); PatchSpPasswordCredentials(spObjectId, passwordCredsList); return credential.ToPSADCredential(); }
private void ValidatePasswordCredential(PasswordCredential credential) { if (credential == null || string.IsNullOrEmpty(credential.KeyId) || string.IsNullOrEmpty(credential.Value) || credential.StartDate == null || credential.EndDate == null) { throw new InvalidOperationException(ProjectResources.PasswordCredentialNotValid); } }