Compartir a través de


Configurar una aplicación multigeográfica de ejemplo

Al desarrollar para un inquilino multigeográfico, es importante comprender el modelo de seguridad. Afortunadamente, el modelo usado para un inquilino multigeográfico es el mismo que el modelo que se usa para un inquilino normal.

En este artículo se muestra cómo configurar las siguientes aplicaciones de ejemplo:

Leer y actualizar perfiles para todos los usuarios mediante el Graph API

Como se explica en el artículo Trabajo con perfiles de usuario en un inquilino multigeográfico, el modelo preferido para leer y actualizar las propiedades de perfil de usuario es el Graph API. En esta sección se explican los permisos que debe conceder a la aplicación para realizar las lecturas y actualizaciones del perfil de usuario en todo el inquilino.

Hay una larga lista de permisos posibles que puede conceder a una aplicación definida en Azure AD, pero para manipular perfiles, puede limitar los permisos a lo siguiente.

Permiso Tipo Descripción Administración consentimiento necesario
User.ReadWrite.All Permisos de aplicación Permite a la aplicación leer y escribir el conjunto completo de propiedades de perfil, pertenencia a grupos, informes y administradores de otros usuarios de la organización, sin que un usuario haya iniciado sesión.

También permite que la aplicación cree y elimine usuarios no administrativos.

No permite el restablecimiento de contraseñas de usuario.
Sites.ReadWrite.All Permisos de aplicación Permite a la aplicación leer y escribir documentos y enumerar elementos en todas las colecciones de sitios sin que un usuario haya iniciado sesión.

Este permiso solo es necesario si la aplicación va a recuperar la ubicación del sitio personal del usuario (por ejemplo, https://graph.microsoft.com/v1.0/users/UserB@contoso.onmicrosoft.com?$select=mySite).

Los ejemplos multigeográfico basados en Microsoft Graph usan la Biblioteca de autenticación de Microsoft (MSAL) para conectarse con Microsoft Graph en el punto de conexión v2. En comparación con ADAL, que se conecta mediante el punto de conexión v1, MSAL permite la conexión a Microsoft Graph mediante cuentas de Microsoft, Azure AD y Azure AD B2C. Las siguientes instrucciones le ayudarán a configurar la aplicación para el punto de conexión v2, pero también puede usar el enfoque "anterior" en función de los puntos de conexión v1.

Registrar su aplicación

  1. Para usar permisos de aplicación en Microsoft Graph, registre la aplicación en https://apps.dev.microsoft.com.

  2. Una vez que haya iniciado sesión, elija Agregar una aplicación y, a continuación, elija Agregar una nueva aplicación convergente.

  3. Asigne un nombre a la aplicación y, a continuación, elija Crear aplicación.

  4. Aparecerá la pantalla de configuración de la aplicación.

Registro de la aplicación en Azure AD

  1. Genere una nueva contraseña y anote junto con el identificador de la aplicación.

  2. Elija Agregar plataforma y, a continuación, elija Aplicación nativa como destino de la plataforma porque la aplicación no tiene una página de aterrizaje.

Configuración de la aplicación en Azure AD, parte 1

  1. Agregue los permisos de aplicación necesarios. En esta aplicación de ejemplo, hemos agregado los permisos de aplicación Sites.ReadWrite.All y User.ReadWrite.All.

  2. Desactive la casilla SDK de Live soporte técnico.

Configuración de la aplicación en Azure AD, parte 2

  1. Guarde los cambios.
  1. En este ejemplo, los permisos de aplicación User.ReadWrite.All y Sites.ReadWrite.All requieren el consentimiento del administrador en un inquilino antes de que se puedan usar. Cree una dirección URL de consentimiento como la siguiente:
https://login.microsoftonline.com/<tenant>/adminconsent?client_id=<clientid>&state=<something>
  1. Use el identificador de cliente de la aplicación registrada y dé su consentimiento a la aplicación desde mi inquilino contoso.onmicrosoft.com; la dirección URL tiene este aspecto:
https://login.microsoftonline.com/contoso.onmicrosoft.com/adminconsent?client_id=6e4433ca-7011-4a11-85b6-1195b0114fea&state=12345
  1. Vaya a la dirección URL creada, inicie sesión como administrador de inquilinos y dé su consentimiento a la aplicación. Puede ver que la pantalla de consentimiento muestra el nombre de la aplicación, así como los ámbitos de permisos que ha configurado.

Consentimiento del inquilino para la aplicación de Azure AD

Leer y actualizar perfiles para todos los usuarios mediante la API de perfil de usuario de CSOM

Al usar la API de CSOM para manipular las propiedades de perfil, solo lo hace para las propiedades creadas personalizadas, ya que las propiedades integradas se controlan mejor a través de microsoft Graph API. Para obtener más información, consulte el artículo Trabajo con perfiles de usuario en un inquilino multigeográfico.

Desde el punto de vista del permiso hay dos modos:

  • Uso de credenciales de usuario

    Esto requiere la configuración de un ClientContext objeto mediante la dirección URL de administrador del inquilino y las credenciales de administrador de SharePoint Online. Dado que solo hay una instancia de Azure AD que contiene usuarios, esto implica que un administrador de SharePoint Online es el administrador de todas las ubicaciones geográficas.

    string tenantAdminSiteForMyGeoLocation = "https://contoso-europe-admin.sharepoint.com";
    
    using (ClientContext cc = new ClientContext(tenantAdminSiteForMyGeoLocation))
    {
        SecureString securePassword = GetSecurePassword("password");
        cc.Credentials = new SharePointOnlineCredentials("admin@contoso.onmicrosoft.com", securePassword);
    
        // user profile logic
    }
    
    static SecureString GetSecurePassword(string Password)
    {
        SecureString sPassword = new SecureString();
        foreach (char c in Password.ToCharArray()) sPassword.AppendChar(c);
        return sPassword;
    }
    
  • Uso de una entidad de seguridad de solo aplicación

    Al usar solo la aplicación, debe conceder el control total de la entidad de seguridad de la aplicación creada para el ámbito de http://sharepoint/social/tenant permisos.

En las instrucciones siguientes se muestra cómo usar appregnew.aspx y appinv.aspx para registrar una entidad de seguridad de aplicación y dar su consentimiento.

Creación de la entidad de seguridad

  1. Vaya a un sitio del inquilino (por ejemplo, ) y, a continuación, https://contoso.sharepoint.comllame a la página appregnew.aspx (por ejemplo, https://contoso.sharepoint.com/_layouts/15/appregnew.aspx).

  2. En esta página, elija el botón Generar para generar un identificador de cliente y un secreto de cliente.

  3. Complete los campos restantes de la siguiente manera:

  • Título: Multi-Geo demo
  • Dominio de aplicación: www.localhost.com
  • URI de redireccionamiento: https://www.localhost.com

Registro de la entidad de seguridad de la aplicación de ACS

Nota:

Almacene la información recuperada (identificador de cliente y secreto de cliente) porque las necesitará en el paso siguiente.

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.

Concesión de permisos a la entidad de seguridad creada

El siguiente paso es conceder permisos a la entidad de seguridad recién creada. Dado que se conceden permisos de ámbito de inquilino, esta concesión solo se puede realizar a través de la página appinv.aspx del sitio de administración de inquilinos.

  1. Puede acceder a este sitio a través de https://contoso-admin.sharepoint.com/_layouts/15/appinv.aspx.

  2. Una vez cargada la página, agregue el identificador de cliente y busque la entidad de seguridad creada.

Concesión de permisos a la entidad de seguridad de la aplicación

  1. Para conceder permisos, debe proporcionar el XML de permisos que describe los permisos necesarios. Dado que el analizador de experiencia de interfaz de usuario debe poder acceder a todos los sitios y usar la búsqueda solo con la aplicación, requiere los permisos siguientes:
<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/social/tenant" Right="FullControl" />
</AppPermissionRequests>
  1. Al elegir Crear, se le presenta un cuadro de diálogo de consentimiento de permisos. Elija Confiar en él para conceder los permisos.

Consentimiento de la entidad de seguridad de la aplicación

Uso de la entidad de seguridad en el código

Una vez creada y consentida la entidad de seguridad, puede usar el identificador y el secreto de la entidad de seguridad para solicitar acceso. La TokenHelper.cs clase toma el identificador y el secreto del archivo de configuración de la aplicación.

string tenantAdminSiteForMyGeoLocation = "https://contoso-europe-admin.sharepoint.com";

//Get the realm for the URL.
string realm = TokenHelper.GetRealmFromTargetUrl(siteUri);

//Get the access token for the URL.  
string accessToken = TokenHelper.GetAppOnlyAccessToken(TokenHelper.SharePointPrincipal, siteUri.Authority, realm).AccessToken;

//Create a client context object based on the retrieved access token.
using (ClientContext cc = TokenHelper.GetClientContextWithAccessToken(tenantAdminSiteForMyGeoLocation, accessToken))
{
    // user profile logic
}

Un app.config de ejemplo tiene este aspecto:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <!-- Use AppRegNew.aspx and AppInv.aspx to register client id with proper secret -->
    <add key="ClientId" value="[Your Client ID]" />
    <add key="ClientSecret" value="[Your Client Secret]" />
  </appSettings>
</configuration>

Nota:

Puede insertar fácilmente la clase en el TokenHelper.cs proyecto agregando el paquete NuGet [AppForSharePointOnlineWebToolkit] (https://www.nuget.org/packages/AppForSharePointOnlineWebToolkit/) a la solución.

Detección de la configuración multigeográfica

La única API compatible que puede usar para detectar las ubicaciones geográficas de un inquilino multigeográfico es la Graph API. En esta sección se explican los permisos que debe conceder a la aplicación para detectar información multigeográfica.

Hay una larga lista de permisos posibles que puede conceder a una aplicación definida en Azure AD, pero para leer la información de configuración del inquilino multigeográfico, puede limitar los permisos a lo siguiente.

Permiso Tipo Descripción Administración consentimiento necesario
Sites.ReadWrite.All Permisos de aplicación Permite a la aplicación leer y escribir documentos y enumerar elementos en todas las colecciones de sitios sin que un usuario haya iniciado sesión.

Use los pasos de creación de aplicaciones de Azure AD, tal como se describe en la sección Perfiles de lectura y actualización para todos los usuarios .

Creación y eliminación de colecciones de sitios y establecimiento de propiedades de colección de sitios de inquilino

Uso de la API de Microsoft Graph

En el artículo Sitios multigeográfica se proporcionan más detalles sobre cómo crear sitios de grupo (también conocidos como sitios de grupo "modernos") mediante microsoft Graph API. En esta sección, solo se abordan los permisos. En la tabla siguiente se enumeran los permisos necesarios.

Permiso Tipo Descripción Administración consentimiento necesario
Group.ReadWrite.All Permisos de aplicación Permite que la aplicación cree y elimine grupos y lea y actualice pertenencias a grupos.

La aplicación puede realizar todas esas operaciones sin que un usuario haya iniciado sesión.

Tenga en cuenta que no todas las API de grupo admiten el acceso mediante permisos solo de aplicación.

Los ejemplos multigeográfico basados en Microsoft Graph usan la Biblioteca de autenticación de Microsoft (MSAL) para conectarse con Microsoft Graph en el punto de conexión v2. En comparación con ADAL, que se conecta mediante el punto de conexión v1, MSAL permite la conexión a Microsoft Graph mediante cuentas de Microsoft, Azure AD y Azure AD B2C.

Use los pasos de creación de aplicaciones de Azure AD, tal como se describe en la sección Perfiles de lectura y actualización para todos los usuarios .

Uso de la API de inquilino de CSOM

El uso de la API de inquilino de CSOM es muy similar a la guía de CSOM descrita anteriormente; de hecho, las instrucciones para usar las credenciales de usuario son idénticas. Para usar una entidad de seguridad de solo aplicación, las instrucciones son las mismas, pero debe conceder permisos diferentes (inquilino y control total).

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>

Vea también