PrincipalId webapp Azure

PrincipalId webapp Azure

El acceso a propiedades de objeto Identity desde línea de comandos en PowerShell para Azure debería obtenerse mediante:

Get-AzWebApp -ResourceGroupName "NombreDeRecursos" -Name "NombreAplicacionWeb"
--$appId=(Get-AzWebApp -ResourceGroupName $resourcegroupname -Name $webappname).Identity.PrincipalId
--$appId=(Get-AzureRmWebApp $resourcegroupname -Name $webappname).Identity.PrincipalId

No tenemos acceso a estos identificadores, podemos utilizar en su lugar el acceso mediante Service Managed Identity:

az webapp identity assign -g $resourcegroupname -n $webappname 

Del que obtendremos el identificador necesario:

{- Finished ..
  "principalId": "b1dd98c4-eae0-4fea-8e46-efzs563dc9630",
  "tenantId": "504c8804-c8a6-9090-8fzs-e35841104187",
  "type": "SystemAssigned",
  "userAssignedIdentities": null
}

Con la administración de identidades administradas habilitadas y permitiendo al acceso a los recursos a la aplicación, ya podemos utilizar tokens de acceso Oauth. De este modo solo se puede acceder a este extremo desde el código que se ejecuta en el servicio de la aplicación, por ejemplo, solo nuestro sitio web puede obtener tokens de acceso.

Enrutamiento y acceso remoto no inicia – 8007042a

Bajo algunas versiones de Windows Server 2016 / 2019 el servicio de enrutamiento y acceso remoto no se inicia correctamente después de un reinicio, aparecen mensajes de error relacionados con el servicios de directivas de redes (NPS):

NPS no puede registrar información de cuentas en el almacén de datos principal (C:\Windows\system32\LogFiles\iaslog0.log). Debido a este error de registro, NPS descartará todas las solicitudes de conexión. Información del error: 22.

Si se intentan iniciar manualmente desde la consola o la interfaz gráficas el resultado es el mismo:

En este caso el orden de inicio de los servicios es importante, deberemos parar el servicio de directivas de redes primero, desde consola y conociendo el nombre interno del servicio ejecutamos:

net stop "ias"
net start "remoteAccess"
net start "ias"
Descargar archivos grandes desde Azure Storage con Firmas de acceso compartido (SAS) – SDK v12

Descargar archivos grandes desde Azure Storage con Firmas de acceso compartido (SAS) – SDK v12

Si bien el funcionamiento es similar a la v11, se utiliza la librería Azure.Storage.Blobs de código abierto en lugar del paquete WindowsAzure.Storage:

AccountSasBuilder sasBuilder = new AccountSasBuilder()
{
    Services = AccountSasServices.Blobs | AccountSasServices.Files,
    ResourceTypes = AccountSasResourceTypes.All,
    ExpiresOn = DateTimeOffset.UtcNow.AddHours(1),
    Protocol = SasProtocol.Https
};

sasBuilder.SetPermissions(AccountSasPermissions.Read); // | AccountSasPermissions.Write

StorageSharedKeyCredential key = new StorageSharedKeyCredential("MiNombreDeCuenta","MiClaveDeCuenta"));

// Generar a partir de la clave de acceso, el token SAS:
string sasToken = sasBuilder.ToSasQueryParameters(key).ToString();

// Generar la dirección URL completa incluyendo el token SAS:
UriBuilder fullUri = new UriBuilder()
{
    Scheme = "https",
    Host = string.Format("{0}.blob.core.windows.net", CloudConfigurationManager.GetSetting("accountName")),
    Path = string.Format("{0}/{1}", nombreContainer, nombreArchivo),
    Query = sasToken
};
				
Response.Redirect(fullUri.Uri)

De este modo mantenemos de forma más segura el acceso a ficheros dentro de containers con control de tiempo de expiración y permisos de usuario.

.NET 5: un Framework para todo

.NET 5: un Framework para todo

En 2002 apareció la primera versión de .NET, han pasado casi 20 años y el escenario de desarrollo de aplicaciones monolíticas ha ido diversificándose: microservicios distribuidos, aplicaciones multiplataforma, dispositivos IoT, inteligencia artificial, virtualización, contenedores… El contexto y requerimientos ha cambiado, como todo en informática, ¿Quién se imaginaría a comienzos de siglo que Microsoft sería miembro de Linux Foundation y .NET pasaría a ser Open Source?

Leer más
Errores jQuery en WordPress 4.5.X-5.5.X

Errores jQuery en WordPress 4.5.X-5.5.X

Algunos parches para temas y plugins no aplican correcciones jQuery que se van amontonando hasta romper por completo el estilo visual o la funcionalidad de algunos sitios web. En este caso desde la 4.5 se avisa al respecto:

Uncaught Error: Syntax error, unrecognized expression: .wpb_column[data-hover-bg^=#]
    at Function.ea.error (jquery.js?ver=1.12.4-wp:2)
    at ea.tokenize (jquery.js?ver=1.12.4-wp:2)
    at ea.select (jquery.js?ver=1.12.4-wp:2)
    at Function.ea [as find] (jquery.js?ver=1.12.4-wp:2)
    at n.fn.init.find (jquery.js?ver=1.12.4-wp:2)
    at new n.fn.init (jquery.js?ver=1.12.4-wp:2)
    at n (jquery.js?ver=1.12.4-wp:2)
    at columnHoverBG (init.js?ver=4.8.1:1348)
    at HTMLDocument.<anonymous> (init.js?ver=4.8.1:1359)
    at i (jquery.js?ver=1.12.4-wp:2)

La función columnHoverBG() en el fichero: «\themes\salient\js\init.js» sin las comillas dobles para #, aunque en la versión 5.3.6 era funcional al actualizar a 5.5.3 deja de funcionar definitivamente. Con añadir las comillas dobles alrededor de la almohadilla volvemos a tener el sitio operativo: data-hover-bg^=«#«

function columnHoverBG() {	
	$('.wpb_column[data-hover-bg^="#"]').each(function(){
		var $originalBG = $(this).css('background-color');
		$(this).hover(function(){
			$(this).stop(true,true).css('background-color',$(this).attr('data-hover-bg'));
		},function(){
			$(this).stop(true,true).css('background-color',$originalBG);
		});
	});
}

Quien no se haya dejado unas comillas, un punto y coma o un paréntesis que tire la primera piedra ;D