Compartilhar via


Considerações de autorização para locatários hospedados em ambientes na Alemanha, na China ou pelo Governo dos EUA

Quando seu locatário Office 365 estiver hospedado em um ambiente específico como os ambientes da Alemanha, China ou governo dos EUA, você precisará levar isso em conta quando estiver desenvolvendo em relação ao seu locatário.

Aplica-se a: Office 365 hospedados nos ambientes da Alemanha, China ou governo dos EUA

Importante

O uso do Azure ACS (Controle de Acesso Services) para o SharePoint Online foi desativado a partir de 27 de novembro de 2023, confira o comunicado completo de aposentadoria para saber mais. O uso do ACS do Azure fora do contexto do SharePoint já foi desativado em 7 de novembro de 2018 e agora é o fim da vida útil.

A aposentadoria significa que o recurso não receberá novos investimentos, mas ainda tem suporte. O fim da vida útil significa que o recurso será descontinuado e não está mais disponível para uso.

Introdução

A Microsoft tem implantações de Office 365 específicas na Alemanha, China e para o Governo dos EUA para cumprir as regulamentações específicas para essas áreas. Os links abaixo fornecem mais contexto:

Se você for um desenvolvedor que visa aplicativos para o SharePoint Online hospedado nesses ambientes, precisará levar em conta que esses ambientes têm seus próprios pontos de extremidade dedicados Azure AD autenticação que você como desenvolvedor precisa usar. Os capítulos a seguir explicam como usar esses pontos de extremidade dedicados para as opções típicas de personalização do SharePoint Online.

Usando Azure AD para autorizar

Azure AD pontos de extremidade

Quando seu aplicativo Azure AD precisar autorizar, ele precisa usar o ponto de extremidade correto. A tabela abaixo descreve os pontos de extremidade a serem usados dependendo de onde seu aplicativo Azure AD foi definido:

Ambiente Ponto de extremidade
Produção https://login.windows.net
Alemanha https://login.microsoftonline.de
China https://login.chinacloudapi.cn
Governo dos EUA https://login.microsoftonline.us

Usar o PnP para autorizar o uso de Azure AD

O PnP AuthenticationManager oferece uma maneira fácil de obter um objeto ClientContext do SharePoint quando você estiver usando um aplicativo Azure AD. Os métodos afetados foram estendidos com um enumeração opcional AzureEnvironment

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

O snippet abaixo mostra uma autorização somente de aplicativo, observe o último parâmetro no GetAzureADAppOnlyAuthenticatedContext método:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "079d8797-cebc-4cda-a3e0-xxxx"; 
string pfxPassword = "my password";
ClientContext cc = new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext(siteUrl, 
			aadAppId, "contoso.onmicrosoft.de", @"C:\contoso.pfx", pfxPassword, AzureEnvironment.Germany);

Outro snippet está mostrando um logon interativo do usuário usando o GetAzureADNativeApplicationAuthenticatedContext método:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string aadAppId = "ff76a9f4-430b-4ee4-8602-xxxx"; 
ClientContext cc = new AuthenticationManager().GetAzureADNativeApplicationAuthenticatedContext(siteUrl, 
			aadAppId, "https://contoso.com/test", environment: AzureEnvironment.Germany);

Usando o ACS do Azure para autorizar seu suplemento do SharePoint

Ao criar suplementos do SharePoint, eles normalmente terão autorização de baixa confiança, o que depende do ACS do Azure como descrived na criação de suplementos do SharePoint que usam autorização de baixa confiança.

Pontos de extremidade ACS do Azure

Ambiente Prefixo de ponto de extremidade Ponto de extremidade
Produção contas accesscontrol.windows.net
Alemanha Login microsoftonline.de
China contas accesscontrol.chinacloudapi.cn
Governo dos EUA contas accesscontrol.windows.net

Usando esse modelo, a url de ponto de extremidade ACS a ser usada é formatada como https:// + prefixo de ponto de extremidade + / + ponto de extremidade. Portanto, a URL para produção será https://accounts.accesscontrol.windows.net, a da Alemanha será https://login.microsoftonline.de.

Atualizando tokenhelper.cs em seus aplicativos

Quando você deseja fazer a autorização de suplemento do SharePoint usando o ACS do Azure, você está usando tokenhelper.cs (ou tokenhelper.vb). A classe tokenhelper padrão terá referências codificadas para os pontos de extremidade e métodos do ACS do Azure para adquirir o ponto de extremidade ACS, conforme mostrado abaixo:

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.windows.net";

...

Atualizações de Tokenhelper.cs para a Alemanha

Atualize as variáveis estáticas GlobalEndPointPrefix e AcsHostUrl para os valores de ACS do Azure da Alemanha.

...

private static string GlobalEndPointPrefix = "login";
private static string AcsHostUrl = "microsoftonline.de";

...

Atualizações de Tokenhelper.cs para a China

Atualize as variáveis estáticas GlobalEndPointPrefix e AcsHostUrl para os valores de ACS do Azure da China:

...

private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.chinacloudapi.cn";

...

Usar o PnP para autorizar seu suplemento usando o ACS do Azure

O PnP AuthenticationManager oferece uma maneira fácil de obter um objeto ClientContext do SharePoint quando você estiver usando o ACS do Azure para autorizar. Os métodos afetados foram estendidos com um enumeração opcional AzureEnvironment

/// <summary>
/// Enum to identify the supported Office 365 hosting environments
/// </summary>
public enum AzureEnvironment
{
    Production=0,
    PPE=1,
    China=2,
    Germany=3,
    USGovernment=4
}

O snippet abaixo mostra uma autorização somente de aplicativo, observe o último parâmetro no GetAppOnlyAuthenticatedContext método:

string siteUrl = "https://contoso.sharepoint.de/sites/test";
string acsAppId = "955c10f2-7072-47f8-8bc1-xxxxx"; 
string acsAppSecret = "jgTolmGXU9DW8hUKgletoxxxxx"; 
ClientContext cc = new AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl, acsAppId, 
				acsAppSecret, AzureEnvironment.Germany);

Confira também