SharePoint Online: Cómo obtener los App Security Principal para Aplicaciones (I)!

Cómo sabéis, cuando estamos trabajando con aplicaciones de tipo Provider-Hosted para SharePoint y queremos que las mismas se ejecuten en SharePoint es necesario proceder a registrar el correspondiente App Security Principal. Lo mismo sucede, en general, cuando queremos registrar cualquier tipo de App (puede ser una Aplicación de Consola o un Script PowerShell) para que interactúe con SharePoint Online sin necesidad de especificar credencial alguna. Puede ser que en el proceso de realizar pruebas de Apps, perdamos la perspectiva de los App Security Principal que se han creado…¿Cómo podemos sacar un listado de los mismos? En este post os voy a enseñar dos de las técnicas disponibles:

  • Para obtener el listado de App Security Principals e n uso en un cierto sitio de SharePoint Online, acedemos a la siguiente página de aplicación _layouts/15/appprincipals.aspx, qué nos da los App Security Principals en uso

image

############################################################################################################################################

# Script that allows to get all the App Security Principals for an Office 365 tenant

# Required Parameters:

#  -> $sUserName: User Name to connect to the SharePoint Online Site Collection.

#  -> $sPassword: Password for the user.

#  -> $sMessage: Message to be shown when prompting for user credentials.

############################################################################################################################################

 

$host.Runspace.ThreadOptions = "ReuseThread"

 

#Definition of the function that allows to get all the App Security Principals for an Office 365 tenant

function Get-SPOAppPrincipals

{

    param ($sUserName,$sPassword,$sMessage)

    try

    {    

        $msolcred = Get-Credential -UserName $sUserName -Message $sMessage

        Connect-MsolService -Credential $msolcred

        Get-MsolServicePrincipal | Select DisplayName,AppPrincipalId,AccountEnabled | Format-Table   

    }

    catch [System.Exception]

    {

        write-host -f red $_.Exception.ToString()   

    }    

}

 

$sUserName="jcgonzalez@itechcs.onmicrosoft.com"

$sMessage="Introduce your O365 Credentials"

Get-SPOAppPrincipals -sSPOSiteUrl $sSPOSiteCollection -sUserName $sUserName -sMessage $sMessage

  • El resultado por pantalla es que tendremos todos los App Security Principal para nuestro tenant de Office 365.

image