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;
            }
        }
Esempio n. 2
0
        private void ProvisionSTS()
        {
            FederationProvision federationProvision = FederationProvision.Create(this.federationTrust, this);

            try
            {
                federationProvision.OnAddFederatedDomain(this.DomainName);
            }
            catch (LocalizedException exception)
            {
                base.WriteError(exception, ErrorCategory.InvalidResult, null);
            }
        }
Esempio n. 3
0
        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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 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();
 }