private void ProvisionSTS() { int num = 0; num += 30; base.WriteProgress(Strings.ProgressActivityNewFederationTrust, Strings.ProgressActivityGetFederationMetadata, num); Uri uri = this.MetadataUrl; if (uri == null) { uri = LiveConfiguration.GetLiveIdFederationMetadataEpr(this.NamespaceProvisionerType); } try { PartnerFederationMetadata partnerFederationMetadata = LivePartnerFederationMetadata.LoadFrom(uri, new WriteVerboseDelegate(base.WriteVerbose)); LivePartnerFederationMetadata.InitializeDataObjectFromMetadata(this.DataObject, partnerFederationMetadata, new WriteWarningDelegate(this.WriteWarning)); } catch (FederationMetadataException exception) { base.WriteError(exception, ErrorCategory.MetadataError, null); } this.DataObject.TokenIssuerType = FederationTrust.PartnerSTSType.LiveId; this.DataObject.MetadataEpr = null; this.DataObject.MetadataPutEpr = null; this.DataObject.MetadataPollInterval = LiveConfiguration.DefaultFederatedMetadataTimeout; num += 30; base.WriteProgress(Strings.ProgressActivityNewFederationTrust, Strings.NewFederationTrustProvisioningService(FederationTrust.PartnerSTSType.LiveId.ToString()), num); base.WriteVerbose(Strings.NewFederationTrustProvisioningService(FederationTrust.PartnerSTSType.LiveId.ToString())); num += 30; base.WriteProgress(Strings.ProgressActivityNewFederationTrust, Strings.ProgressActivityCreateAppId, num); FederationProvision federationProvision = FederationProvision.Create(this.DataObject, this); try { federationProvision.OnNewFederationTrust(this.DataObject); } catch (LocalizedException ex) { base.WriteError(new ProvisioningFederatedExchangeException(ex.Message, ex), ErrorCategory.NotSpecified, null); } base.WriteProgress(Strings.ProgressActivityNewFederationTrust, Strings.ProgressStatusFinished, 100); switch (this.NamespaceProvisionerType) { case FederationTrust.NamespaceProvisionerType.LiveDomainServices: this.WriteWarning(Strings.ManageDelegationProvisioningInDNS(this.DataObject.ApplicationIdentifier)); return; case FederationTrust.NamespaceProvisionerType.LiveDomainServices2: this.WriteWarning(Strings.ManageDelegation2ProvisioningInDNS); return; default: return; } }
private void ProvisionSTS() { FederationProvision federationProvision = FederationProvision.Create(this.federationTrust, this); try { federationProvision.OnAddFederatedDomain(this.DomainName); } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.InvalidResult, null); } }
private void ProvisionSTS() { FederationProvision federationProvision = FederationProvision.Create(this.federationTrust, this); try { federationProvision.OnSetFederatedOrganizationIdentifier(this.federationTrust, this.AccountNamespace); } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.InvalidResult, null); } if (this.federationTrust.ObjectState == ObjectState.Changed) { base.DataSession.Save(this.federationTrust); } }
private void RemoveFederatedDomainFromSTS() { if (this.federationTrust == null) { return; } FederationProvision federationProvision = FederationProvision.Create(this.federationTrust, this); try { if (this.DomainName.Equals(this.DataObject.AccountNamespace)) { federationProvision.OnRemoveAccountNamespace(this.DataObject.AccountNamespaceWithWellKnownSubDomain, this.Force); } else { federationProvision.OnRemoveFederatedDomain(this.DomainName, this.Force); } } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.InvalidResult, null); } }
private FederatedOrganizationIdWithDomainStatus CreatePresentationObject(FederatedOrganizationId fedOrgId, bool includeExtendedDomainInfo) { FederatedOrganizationIdWithDomainStatus federatedOrganizationIdWithDomainStatus = new FederatedOrganizationIdWithDomainStatus(fedOrgId); if (fedOrgId.DelegationTrustLink == null) { return(federatedOrganizationIdWithDomainStatus); } FederationTrust federationTrust = this.ConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink); if (federationTrust == null) { fedOrgId.DelegationTrustLink = ADObjectIdResolutionHelper.ResolveDN(fedOrgId.DelegationTrustLink); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(), OrganizationId.ForestWideOrgId, null, false); ITopologyConfigurationSession topologyConfigurationSession = DirectorySessionFactory.Default.CreateTopologyConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 147, "CreatePresentationObject", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\SystemConfigurationTasks\\Federation\\GetFederatedOrganizationIdentifier.cs"); federationTrust = topologyConfigurationSession.Read <FederationTrust>(fedOrgId.DelegationTrustLink); if (federationTrust == null) { return(federatedOrganizationIdWithDomainStatus); } } List <AcceptedDomain> allFederatedDomains = this.GetAllFederatedDomains(fedOrgId); if (allFederatedDomains.Count == 0) { return(federatedOrganizationIdWithDomainStatus); } foreach (AcceptedDomain acceptedDomain in allFederatedDomains) { if (acceptedDomain.IsDefaultFederatedDomain) { federatedOrganizationIdWithDomainStatus.DefaultDomain = new SmtpDomain(acceptedDomain.DomainName.Domain); break; } } MultiValuedProperty <FederatedDomain> multiValuedProperty = new MultiValuedProperty <FederatedDomain>(); if (!includeExtendedDomainInfo) { foreach (AcceptedDomain acceptedDomain2 in allFederatedDomains) { multiValuedProperty.Add(new FederatedDomain(new SmtpDomain(acceptedDomain2.DomainName.Domain))); } federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty; return(federatedOrganizationIdWithDomainStatus); } FederationProvision federationProvision = FederationProvision.Create(federationTrust, this); base.WriteVerbose(Strings.GetFedDomainStatusInfo(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain))); DomainState state = DomainState.Unknown; try { state = federationProvision.GetDomainState(FederatedOrganizationId.AddHybridConfigurationWellKnownSubDomain(fedOrgId.AccountNamespace.Domain)); } catch (LocalizedException ex) { this.WriteError(new CannotGetDomainStatusFromPartnerSTSException(fedOrgId.AccountNamespace.ToString(), federationTrust.ApplicationIdentifier, ex.Message), ErrorCategory.ResourceUnavailable, null, false); } multiValuedProperty.Add(new FederatedDomain(fedOrgId.AccountNamespace, state)); foreach (AcceptedDomain acceptedDomain3 in allFederatedDomains) { SmtpDomain smtpDomain = new SmtpDomain(acceptedDomain3.DomainName.Domain); if (!smtpDomain.Equals(fedOrgId.AccountNamespace)) { multiValuedProperty.Add(new FederatedDomain(smtpDomain)); } } federatedOrganizationIdWithDomainStatus.Domains = multiValuedProperty; return(federatedOrganizationIdWithDomainStatus); }
private void InternalProcessRecordInternal() { if (this.PublishFederationCertificate) { FederationProvision federationProvision = FederationProvision.Create(this.DataObject, this); try { federationProvision.OnPublishFederationCertificate(this.DataObject); } catch (LocalizedException exception) { base.WriteError(exception, ErrorCategory.InvalidResult, null); } } if (null != this.applicationUri) { this.DataObject.ApplicationUri = this.applicationUri; } if (this.Thumbprint != null) { if (!StringComparer.InvariantCultureIgnoreCase.Equals(this.DataObject.OrgNextPrivCertificate, this.Thumbprint)) { this.DataObject.OrgNextCertificate = this.nextCertificate; this.DataObject.OrgNextPrivCertificate = this.Thumbprint; try { FederationCertificate.PushCertificate(new Task.TaskProgressLoggingDelegate(base.WriteProgress), new Task.TaskWarningLoggingDelegate(this.WriteWarning), this.Thumbprint); } catch (InvalidOperationException exception2) { base.WriteError(exception2, ErrorCategory.InvalidArgument, null); } catch (LocalizedException exception3) { base.WriteError(exception3, ErrorCategory.InvalidArgument, null); } if (this.DataObject.NamespaceProvisioner == FederationTrust.NamespaceProvisionerType.LiveDomainServices2) { this.WriteWarning(Strings.UpdateManageDelegation2ProvisioningInDNS); } } else { base.WriteVerbose(Strings.IgnoringSameNextCertificate); } } if (this.PublishFederationCertificate) { this.DataObject.OrgPrevCertificate = this.DataObject.OrgCertificate; this.DataObject.OrgPrevPrivCertificate = this.DataObject.OrgPrivCertificate; this.DataObject.OrgCertificate = this.DataObject.OrgNextCertificate; this.DataObject.OrgPrivCertificate = this.DataObject.OrgNextPrivCertificate; this.DataObject.OrgNextCertificate = null; this.DataObject.OrgNextPrivCertificate = null; if (this.DataObject.NamespaceProvisioner == FederationTrust.NamespaceProvisionerType.LiveDomainServices2) { this.WriteWarning(Strings.PublishManageDelegation2ProvisioningInDNS); } } if (this.partnerFederationMetadata != null) { try { LivePartnerFederationMetadata.InitializeDataObjectFromMetadata(this.DataObject, this.partnerFederationMetadata, new WriteWarningDelegate(this.WriteWarning)); } catch (FederationMetadataException exception4) { base.WriteError(exception4, ErrorCategory.MetadataError, null); } } base.InternalProcessRecord(); }