Supporto di più domini per la federazione con Azure ADMultiple Domain Support for Federating with Azure AD

La documentazione seguente fornisce indicazioni su come usare più domini di primo livello e sottodomini durante la federazione con domini di Office 365 o Azure AD.The following documentation provides guidance on how to use multiple top-level domains and sub-domains when federating with Office 365 or Azure AD domains.

Supporto di più domini di primo livelloMultiple top-level domain support

Per la federazione di più domini di primo livello con Azure AD sono necessarie alcune operazioni di configurazione aggiuntive che non sono obbligatorie per la federazione con un dominio di primo livello.Federating multiple, top-level domains with Azure AD requires some additional configuration that is not required when federating with one top-level domain.

Quando un dominio è federato con Azure AD, alcune proprietà vengono impostate nel dominio in Azure.When a domain is federated with Azure AD, several properties are set on the domain in Azure. Una proprietà importante è IssuerUri.One important one is IssuerUri. Si tratta di un URI usato da Azure AD per identificare il dominio a cui è associato il token.This is a URI that is used by Azure AD to identify the domain that the token is associated with. Non è necessario che l'URI venga risolto, ma deve essere un URI valido.The URI doesn’t need to resolve to anything but it must be a valid URI. Per impostazione predefinita, Azure AD lo imposta sul valore dell'identificatore del servizio federativo nella configurazione locale di AD FS.By default, Azure AD sets this to the value of the federation service identifier in your on-premises AD FS configuration.

Nota

L'identificatore del servizio federativo è un URI che identifica in modo univoco un servizio federativo.The federation service identifier is a URI that uniquely identifies a federation service. Il servizio federativo è un'istanza di AD FS che funge da servizio token di sicurezza.The federation service is an instance of AD FS that functions as the security token service.

È possibile visualizzare il IssuerUri usando il comando PowerShell Get-MsolDomainFederationSettings -DomainName <your domain>.You can view the IssuerUri by using the PowerShell command Get-MsolDomainFederationSettings -DomainName <your domain>.

Get-MsolDomainFederationSettings

Si verifica un problema quando si vogliono aggiungere più domini di primo livello.A problem arises when we want to add more than one top-level domain. Ad esempio, si supponga di avere configurato la federazione tra Azure AD e l'ambiente locale.For example, let's say you have setup federation between Azure AD and your on-premises environment. Per questo documento si usa bmcontoso.com. Viene quindi aggiunto un secondo dominio di primo livello, bmfabrikam.com.For this document I am using bmcontoso.com. Now I have added a second, top-level domain, bmfabrikam.com.

Domini

Quando si prova a convertire il dominio bmfabrikam.com in modo che sia federato, viene visualizzato un errore.When we attempt to convert our bmfabrikam.com domain to be federated, we receive an error. La causa dell'errore è un vincolo di Azure AD che non consente alla proprietà IssuerUri di avere lo stesso valore per più di un dominio.The reason for this is, Azure AD has a constraint that does not allow the IssuerUri property to have the same value for more than one domain.

Errore della federazione

Parametro SupportMultipleDomainSupportMultipleDomain Parameter

Per risolvere il problema, è necessario aggiungere una proprietà IssuerUri diversa, usando il parametro -SupportMultipleDomain .To workaround this, we need to add a different IssuerUri which can be done by using the -SupportMultipleDomain parameter. Questo parametro viene usato con i cmdlet seguenti:This parameter is used with the following cmdlets:

  • New-MsolFederatedDomain
  • Convert-MsolDomaintoFederated
  • Update-MsolFederatedDomain

Questo parametro consente ad Azure AD di configurare IssuerUri in modo che sia basata sul nome del dominio.This parameter makes Azure AD configure the IssuerUri so that it is based on the name of the domain. Questo valore sarà univoco nelle directory di Azure AD.This will be unique across directories in Azure AD. L'uso del parametro consente il completamento corretto del comando di PowerShell.Using the parameter allows the PowerShell command to complete successfully.

Errore della federazione

Se si esaminano le impostazioni del nuovo dominio bmfabrikam.com, si può notare quanto segue:Looking at the settings of our new bmfabrikam.com domain you can see the following:

Errore della federazione

Si noti che -SupportMultipleDomain non modifica gli altri endpoint, che sono ancora configurati in modo da fare riferimento al servizio federativo su adfs.bmcontoso.com.Note that -SupportMultipleDomain does not change the other endpoints which are still configured to point to our federation service on adfs.bmcontoso.com.

-SupportMultipleDomain consente anche di assicurare che il sistema AD FS includa il valore Issuer appropriato nei token emessi per Azure AD,Another thing that -SupportMultipleDomain does is that it ensures that the AD FS system includes the proper Issuer value in tokens issued for Azure AD. selezionando la porzione relativa al dominio del valore UPN degli utenti e impostandola come dominio in IssuerUri, ovvero https://{upn suffix}/adfs/services/trust.It does this by taking the domain portion of the users UPN and setting this as the domain in the IssuerUri, i.e. https://{upn suffix}/adfs/services/trust.

In questo modo durante l'autenticazione in Azure AD oppure Office 365 l'elemento IssuerUri nel token dell'utente viene usato per individuare il dominio in Azure AD.Thus during authentication to Azure AD or Office 365, the IssuerUri element in the user’s token is used to locate the domain in Azure AD. Se non viene rilevata una corrispondenza, l'autenticazione non riuscirà.If a match cannot be found the authentication will fail.

Se ad esempio l'UPN di un utente è bsimon@bmcontoso.com, l'elemento IssuerUri nel token emesso da AD FS sarà impostato su http://bmcontoso.com/adfs/services/trust.For example, if a user’s UPN is bsimon@bmcontoso.com, the IssuerUri element in the token AD FS issues will be set to http://bmcontoso.com/adfs/services/trust. Se questo corrisponde alla configurazione di Azure AD, l'autenticazione avrà esito positivo.This will match the Azure AD configuration, and authentication will succeed.

Di seguito è riportata la regola attestazioni personalizzata che implementa questa logica:The following is the customized claim rule that implements this logic:

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)", "http://${domain}/adfs/services/trust/"));

Importante

Per usare l'opzione -SupportMultipleDomain quando si prova ad aggiungere o convertire domini già aggiunti, è necessario che il trust federativo sia stato configurato per supportarli in origine.In order to use the -SupportMultipleDomain switch when attempting to add new or convert already added domains, you need to have setup your federated trust to support them originally.

Come aggiornare il trust tra AD FS e Azure ADHow to update the trust between AD FS and Azure AD

Se il trust federativo non è stato configurato tra AD FS e l'istanza di Azure AD, potrebbe essere necessario crearlo di nuovo,If you did not setup the federated trust between AD FS and your instance of Azure AD, you may need to re-create this trust. perché, quando viene configurato in origine senza il parametro -SupportMultipleDomain, il valore IssuerUri viene impostato con il valore predefinito.This is because, when it is originally setup without the -SupportMultipleDomain parameter, the IssuerUri is set with the default value. Nella schermata seguente è possibile vedere che IssuerUri è impostato su https://adfs.bmcontoso.com/adfs/services/trust.In the screenshot below you can see the IssuerUri is set to https://adfs.bmcontoso.com/adfs/services/trust.

Se un nuovo dominio è stato aggiunto correttamente al portale di Azure AD e si prova a convertirlo usando Convert-MsolDomaintoFederated -DomainName <your domain>, verrà visualizzato l'errore seguente.So now, if we have successfully added an new domain in the Azure AD portal and then attempt to convert it using Convert-MsolDomaintoFederated -DomainName <your domain>, we get the following error.

Errore della federazione

Se si prova ad aggiungere l'opzione -SupportMultipleDomain , verrà visualizzato l'errore seguente:If you try to add the -SupportMultipleDomain switch we will receive the following error:

Errore della federazione

Se si prova semplicemente a eseguire Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain nel dominio originale, verrà visualizzato un errore.Simply trying to run Update-MsolFederatedDomain -DomainName <your domain> -SupportMultipleDomain on the original domain will also result in an error.

Errore della federazione

Usare la procedura seguente per aggiungere un dominio di primo livello aggiuntivo.Use the steps below to add an additional top-level domain. Se è già stato aggiunto un dominio e non è stato usato il parametro -SupportMultipleDomain , iniziare dalla procedura per la rimozione e l'aggiornamento del dominio originale.If you have already added a domain and did not use the -SupportMultipleDomain parameter start with the steps for removing and updating your original domain. Se il dominio di primo livello non è stato ancora aggiunto, è possibile iniziare dalla procedura per l'aggiunta di un dominio usando comandi PowerShell di Azure AD Connect.If you have not added a top-level domain yet you can start with the steps for adding a domain using PowerShell of Azure AD Connect.

Usare la procedura seguente per rimuovere il trust di Microsoft Online e aggiornare il dominio originale.Use the following steps to remove the Microsoft Online trust and update your original domain.

  1. Nel server federativo di AD FS aprire Gestione AD FSOn your AD FS federation server open AD FS Management.
  2. Sulla sinistra espandere Relazioni di attendibilità e Attendibilità componenteOn the left, expand Trust Relationships and Relying Party Trusts
  3. Sulla destra eliminare la voce Piattaforma delle identità di Microsoft Office 365 .On the right, delete the Microsoft Office 365 Identity Platform entry. Rimozione di Microsoft OnlineRemove Microsoft Online
  4. Nel computer in cui è installato il Modulo di Microsoft Azure Active Directory per Windows PowerShell eseguire il comando seguente: $cred=Get-Credential.On a machine that has Azure Active Directory Module for Windows PowerShell installed on it run the following: $cred=Get-Credential.
  5. Immettere il nome utente e la password di un amministratore globale di Azure AD con cui si esegue la federazione.Enter the username and password of a global administrator for the Azure AD domain you are federating with
  6. In PowerShell immettere Connect-MsolService -Credential $credIn PowerShell enter Connect-MsolService -Credential $cred
  7. In PowerShell immettere Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain.In PowerShell enter Update-MSOLFederatedDomain -DomainName <Federated Domain Name> -SupportMultipleDomain. Questa impostazione è relativa al dominio originale.This is for the original domain. Usando i domini precedenti, si ottiene quindi: Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomainSo using the above domains it would be: Update-MsolFederatedDomain -DomainName bmcontoso.com -SupportMultipleDomain

Usare la procedura seguente per aggiungere il nuovo dominio di primo livello tramite PowerShellUse the following steps to add the new top-level domain using PowerShell

  1. Nel computer in cui è installato il Modulo di Microsoft Azure Active Directory per Windows PowerShell eseguire il comando seguente: $cred=Get-Credential.On a machine that has Azure Active Directory Module for Windows PowerShell installed on it run the following: $cred=Get-Credential.
  2. Immettere il nome utente e la password di un amministratore globale di Azure AD con cui si esegue la federazione.Enter the username and password of a global administrator for the Azure AD domain you are federating with
  3. In PowerShell immettere Connect-MsolService -Credential $credIn PowerShell enter Connect-MsolService -Credential $cred
  4. In PowerShell immettere New-MsolFederatedDomain –SupportMultipleDomain –DomainNameIn PowerShell enter New-MsolFederatedDomain –SupportMultipleDomain –DomainName

Usare la procedura seguente per aggiungere il nuovo dominio di primo livello tramite Azure AD Connect.Use the following steps to add the new top-level domain using Azure AD Connect.

  1. Avviare Azure AD Connect dal desktop o dal menu Start.Launch Azure AD Connect from the desktop or start menu
  2. Scegliere "Aggiunta di un altro dominio di Azure AD" Aggiunta di un altro dominio di Azure ADChoose “Add an additional Azure AD Domain” Add an additional Azure AD domain
  3. Immettere le credenziali di Azure AD e Active Directory.Enter your Azure AD and Active Directory credentials
  4. Selezionare il secondo dominio da configurare per la federazione.Select the second domain you wish to configure for federation. Aggiunta di un altro dominio di Azure ADAdd an additional Azure AD domain
  5. Fare clic su Installa.Click Install

Verificare il nuovo dominio di primo livelloVerify the new top-level domain

Usando il comando Get-MsolDomainFederationSettings -DomainName <your domain>di PowerShell, è possibile visualizzare la proprietà IssuerUri aggiornata.By using the PowerShell command Get-MsolDomainFederationSettings -DomainName <your domain>you can view the updated IssuerUri. La schermata seguente mostra le impostazioni di federazione aggiornate sul dominio originale http://bmcontoso.com/adfs/services/trustThe screenshot below shows the federation settings were updated on our original domain http://bmcontoso.com/adfs/services/trust

Get-MsolDomainFederationSettings

E IssuerUri sul nuovo dominio è stato impostato su https://bmfabrikam.com/adfs/services/trustAnd the IssuerUri on our new domain has been set to https://bmfabrikam.com/adfs/services/trust

Get-MsolDomainFederationSettings

Supporto per sottodominiSupport for Sub-domains

A causa della modalità di gestione dei domini in Azure AD, eventuali sottodomini aggiunti erediteranno le impostazioni del dominio padre.When you add a sub-domain, because of the way Azure AD handled domains, it will inherit the settings of the parent. La proprietà IssuerUri deve quindi corrispondere a quella degli elementi padre.This means that the IssuerUri needs to match the parents.

Si supponga ad esempio che sia presente il dominio bmcontoso.com e che quindi si aggiunga corp.bmcontoso.com. Ciò significa che IssuerUri per un utente di corp.bmcontoso.com dovrà essere http://bmcontoso.com/adfs/services/trust.So lets say for example that I have bmcontoso.com and then add corp.bmcontoso.com. This means that the IssuerUri for a user from corp.bmcontoso.com will need to be http://bmcontoso.com/adfs/services/trust. Tuttavia la regola standard implementata sopra per Azure AD genererà un token con un emittente come http://corp.bmcontoso.com/adfs/services/trust.However the standard rule implemented above for Azure AD, will generate a token with an issuer as http://corp.bmcontoso.com/adfs/services/trust. che non corrisponderà al valore di dominio obbligatorio e l'autenticazione avrà esito negativo.which will not match the domain's required value and authentication will fail.

Come abilitare il supporto per sottodominiHow To enable support for sub-domains

Per risolvere questo problema, è necessario che il trust della relying party di AD FS per Microsoft Online venga aggiornato.In order to work around this the AD FS relying party trust for Microsoft Online needs to be updated. Per eseguire questa operazione, è necessario configurare una regola attestazioni personalizzata, in modo che vengano rimossi tutti i sottodomini dal suffisso UPN di un utente durante la creazione del valore Issuer personalizzato.To do this, you must configure a custom claim rule so that it strips off any sub-domains from the user’s UPN suffix when constructing the custom Issuer value.

L'attestazione seguente consente di eseguire questa operazione:The following claim will do this:

c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));

[!NOTE] L'ultimo numero dell'espressione regolare imposta il numero di domini padre presente nel dominio radice.The last number in the regular expression set the how many parent domains there is in your root domain. In bmcontoso.com sono necessari due domini padre.Here i have bmcontoso.com so two parent domains are necessary. Se fossero necessari tre domini padre (ad esempio: corp.bmcontoso.com), il numero sarebbe tre.If three parent domains were to be kept (i.e.: corp.bmcontoso.com), then the number would have been three. Infine un intervallo possono essere indicati, verrà eseguita sempre la corrispondenza in modo che corrisponda il numero massimo di domini.Eventually a range can be indicated, the match will always be made to match the maximum of domains. "{2,3}" corrisponde a due o tre domini (ad esempio: bmfabrikam.com e corp.bmcontoso.com)."{2,3}" will match two to three domains (i.e.: bmfabrikam.com and corp.bmcontoso.com).

Usare la procedura seguente per aggiungere un'attestazione personalizzata per il supporto dei sottodomini.Use the following steps to add a custom claim to support sub-domains.

  1. Aprire Gestione AD FS.Open AD FS Management
  2. Fare clic con il pulsante destro del mouse sul trust della relying party di Microsoft Online RP quindi scegliere Modifica regole attestazione.Right click the Microsoft Online RP trust and choose Edit Claim rules
  3. Selezionare la terza regola attestazioni e sostituire Modifica dell'attestazioneSelect the third claim rule, and replace Edit claim
  4. Sostituire l'attestazione corrente:Replace the current claim:

     c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, ".+@(?<domain>.+)","http://${domain}/adfs/services/trust/"));
    
    with
    
     c:[Type == "http://schemas.xmlsoap.org/claims/UPN"] => issue(Type = "http://schemas.microsoft.com/ws/2008/06/identity/claims/issuerid", Value = regexreplace(c.Value, "^.*@([^.]+\.)*?(?<domain>([^.]+\.?){2})$", "http://${domain}/adfs/services/trust/"));
    

    Sostituzione dell'attestazione

  5. Fare clic su Ok.Click Ok. Fare clic su Applica.Click Apply. Fare clic su Ok.Click Ok. Chiudere Gestione ADFS.Close AD FS Management.