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);