Consideraciones de autorización para espacios empresariales hospedados en los entornos del gobierno de Alemania, China o EE. UU.
Cuando el espacio empresarial de Office 365 está hospedado en un entorno específico, como el gobierno de Alemania, China o Estados Unidos, debe tenerlo en cuenta al desarrollar en el espacio empresarial.
Se aplica a: Office 365 hospedados en los entornos de Alemania, China o gobierno de EE. UU.
Importante
Con Azure ACS (Access Control Services) para SharePoint Online se ha retirado a partir del 27 de noviembre de 2023, consulte el anuncio de retirada completa para obtener más información. El uso de Azure ACS fuera del contexto de SharePoint ya se retiró el 7 de noviembre de 2018 y ya ha finalizado su vida útil.
La retirada significa que la característica no obtendrá inversiones nuevas, pero todavía se admite. El final del ciclo de vida significa que la característica se interrumpirá y ya no estará disponible para su uso.
Introducción
Microsoft tiene implementaciones específicas de Office 365 en Alemania, China y para que el Gobierno de EE. UU. cumpla las regulaciones específicas para esas áreas. Los vínculos siguientes proporcionan más contexto:
Si es un desarrollador que se dirige a aplicaciones para SharePoint Online hospedadas en estos entornos, tendrá que tener en cuenta que estos entornos tienen sus propios puntos de conexión de autenticación de Azure AD dedicados que debe usar como desarrollador. En los capítulos siguientes se explica cómo usar estos puntos de conexión dedicados para las opciones de personalización típicas de SharePoint Online.
Uso de Azure AD para autorizar
Puntos de conexión de Azure AD
Cuando la aplicación de Azure AD necesita autorizarla, debe usar el punto de conexión correcto. En la tabla siguiente se describen los puntos de conexión que se usarán en función de dónde se haya definido la aplicación de Azure AD:
Entorno | Punto de conexión |
---|---|
Producción | https://login.windows.net |
Alemania | https://login.microsoftonline.de |
China | https://login.chinacloudapi.cn |
Gobierno de Estados Unidos | https://login.microsoftonline.us |
Uso de PnP para autorizar el uso de Azure AD
El PnP AuthenticationManager ofrece una manera sencilla de obtener un objeto ClientContext de SharePoint cuando se usa una aplicación de Azure AD. Los métodos afectados se han ampliado con una enumeración 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
}
En el fragmento de código siguiente se muestra una autorización de solo aplicación, observe el último parámetro del 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);
Otro fragmento de código muestra un inicio de sesión de usuario interactivo mediante el 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);
Uso de Azure ACS para autorizar el complemento de SharePoint
Al crear complementos de SharePoint, suelen tener una autorización de baja confianza que depende de Azure ACS como se deriva en Creación de complementos de SharePoint que usan autorización de baja confianza.
Puntos de conexión de Azure ACS
Entorno | Prefijo de punto de conexión | Punto de conexión |
---|---|---|
Producción | cuentas | accesscontrol.windows.net |
Alemania | Iniciar sesión | microsoftonline.de |
China | cuentas | accesscontrol.chinacloudapi.cn |
Gobierno de Estados Unidos | cuentas | accesscontrol.windows.net |
El uso de este modelo con la dirección URL del punto de conexión de ACS que se va a usar tiene el formato https:// + prefijo de punto de conexión + / + punto de conexión. Por lo tanto, la dirección URL de producción será https://accounts.accesscontrol.windows.net, la de Alemania será https://login.microsoftonline.de.
Actualización de tokenhelper.cs en las aplicaciones
Si desea realizar la autorización de complementos de SharePoint mediante Azure ACS, usa tokenhelper.cs
(o tokenhelper.vb
). La clase tokenhelper predeterminada tendrá referencias codificadas de forma rígida a los puntos de conexión y métodos de Azure ACS para adquirir el punto de conexión de ACS, como se muestra a continuación:
...
private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.windows.net";
...
Actualizaciones de Tokenhelper.cs para Alemania
Actualice las variables estáticas GlobalEndPointPrefix
y AcsHostUrl
a los valores de Azure ACS de Alemania.
...
private static string GlobalEndPointPrefix = "login";
private static string AcsHostUrl = "microsoftonline.de";
...
Actualizaciones de Tokenhelper.cs para China
Actualice las variables estáticas GlobalEndPointPrefix
y AcsHostUrl
a los valores de Acs de Azure de China:
...
private static string GlobalEndPointPrefix = "accounts";
private static string AcsHostUrl = "accesscontrol.chinacloudapi.cn";
...
Uso de PnP para autorizar el complemento mediante Azure ACS
El PnP AuthenticationManager ofrece una manera sencilla de obtener un objeto ClientContext de SharePoint cuando se usa Azure ACS para autorizar. Los métodos afectados se han ampliado con una enumeración 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
}
En el fragmento de código siguiente se muestra una autorización de solo aplicación, observe el último parámetro del 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);