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
-
Mediante el siguiente script PowerShell que lista todos los App Security Principal estén en uso o no y no solo para SharePoint Online. Podéis descargaros el script desde el siguiente enlace: How to get all the App Security Principals in Office 365!
############################################################################################################################################
# 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.