Aplicación web que inicia sesión de usuarios: Registro de aplicación

En este artículo se explican los pasos del registro de la aplicación para una aplicación web que inicia la sesión de los usuarios.

Para registrar la aplicación, puede usar lo siguiente:

  • Los inicios rápidos de aplicación web. Además de ser una excelente primera experiencia con la creación de una aplicación, las guías de inicio rápido de Azure Portal incluyen un botón denominado Hacer este cambio por mí. Puede usar este botón para establecer las propiedades que necesita, incluso para una aplicación existente. Adapte los valores de estas propiedades a su propio caso. En concreto, la dirección URL de la API web para la aplicación probablemente será diferente de la URL propuesta de forma predeterminada, lo cual afectará también al URI de cierre de sesión.
  • Azure Portal para registrar la aplicación manualmente.
  • PowerShell y herramientas de línea de comandos.

Registro de una aplicación con las guías de inicio rápido

Puede usar el vínculo siguiente para el arranque de la creación de la aplicación web:

Registrar una aplicación

Registro de una aplicación mediante Azure Portal

Sugerencia

Los pasos de este artículo podrían variar ligeramente en función del portal desde donde comienza.

Nota:

El portal que se debe usar varía en función de si la aplicación se ejecuta en la nube pública de Microsoft Azure o en una nube soberana o nacional. Para obtener más información, consulte Nubes nacionales.

  1. Inicie sesión en el centro de administración de Microsoft Entra.
  2. Si tiene acceso a varios inquilinos, use el icono Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación desde el menú Directorios y suscripciones.
  3. Vaya a Identity>Aplicaciones>Registros de aplicaciones, seleccione Nuevo registro.
  1. Cuando aparece la página Registrar una aplicación, escriba la información de registro de la aplicación:
    1. Escriba el Nombre de la aplicación, por ejemplo AspNetCore-WebApp. Los usuarios de la aplicación pueden ver este nombre, el cual se puede cambiar más tarde.
    2. Elija los tipos de cuenta admitidos para la aplicación. (Consulte Tipos de cuenta admitidos).
    3. En URI de redireccionamiento, agregue el tipo de aplicación y el destino de URI que aceptará las respuestas de token devueltas después de una autenticación correcta. Por ejemplo, escriba https://localhost:44321.
    4. Seleccione Registrar.
  2. En Administrar, seleccione Autenticación y, a continuación, agregue la siguiente información:
    1. En la sección Web, agregue https://localhost:44321/signin-oidc como URI de redirección.
    2. En Dirección URL de cierre de sesión del canal frontal, escriba https://localhost:44321/signout-oidc.
    3. En Flujos de concesión implícita e híbridos, seleccione Tokens de id.
    4. Seleccione Guardar.

Registro de una aplicación mediante PowerShell

También puede registrar una aplicación con PowerShell de Microsoft Graph mediante New-MgApplication.

Esto es una muestra del código. Para obtener código totalmente funcional, consulte este ejemplo.

# Connect to the Microsoft Graph API, non-interactive is not supported for the moment (Oct 2021)
Write-Host "Connecting to Microsoft Graph"
if ($tenantId -eq "") {
   Connect-MgGraph -Scopes "User.Read.All Organization.Read.All Application.ReadWrite.All" -Environment $azureEnvironmentName
}
else {
   Connect-MgGraph -TenantId $tenantId -Scopes "User.Read.All Organization.Read.All Application.ReadWrite.All" -Environment $azureEnvironmentName
}
   
$context = Get-MgContext
$tenantId = $context.TenantId

# Get the user running the script
$currentUserPrincipalName = $context.Account
$user = Get-MgUser -Filter "UserPrincipalName eq '$($context.Account)'"

# get the tenant we signed in to
$Tenant = Get-MgOrganization
$tenantName = $Tenant.DisplayName
   
$verifiedDomain = $Tenant.VerifiedDomains | where {$_.Isdefault -eq $true}
$verifiedDomainName = $verifiedDomain.Name
$tenantId = $Tenant.Id

Write-Host ("Connected to Tenant {0} ({1}) as account '{2}'. Domain is '{3}'" -f  $Tenant.DisplayName, $Tenant.Id, $currentUserPrincipalName, $verifiedDomainName)

# Create the webApp AAD application
Write-Host "Creating the AAD application (WebApp)"
# create the application 
$webAppAadApplication = New-MgApplication -DisplayName "WebApp" `
                                                   -Web `
                                                   @{ `
                                                         RedirectUris = "https://localhost:44321/", "https://localhost:44321/signin-oidc"; `
                                                         HomePageUrl = "https://localhost:44321/"; `
                                                         LogoutUrl = "https://localhost:44321/signout-oidc"; `
                                                      } `
                                                      -SignInAudience AzureADandPersonalMicrosoftAccount `
                                                   #end of command

$currentAppId = $webAppAadApplication.AppId
$currentAppObjectId = $webAppAadApplication.Id

$tenantName = (Get-MgApplication -ApplicationId $currentAppObjectId).PublisherDomain
#Update-MgApplication -ApplicationId $currentAppObjectId -IdentifierUris @("https://$tenantName/WebApp")
   
# create the service principal of the newly created application     
$webAppServicePrincipal = New-MgServicePrincipal -AppId $currentAppId -Tags {WindowsAzureActiveDirectoryIntegratedApp}

# add the user running the script as an app owner if needed
$owner = Get-MgApplicationOwner -ApplicationId $currentAppObjectId
if ($owner -eq $null)
{
   New-MgApplicationOwnerByRef -ApplicationId $currentAppObjectId  -BodyParameter = @{"@odata.id" = "htps://graph.microsoft.com/v1.0/directoryObjects/$user.ObjectId"}
   Write-Host "'$($user.UserPrincipalName)' added as an application owner to app '$($webAppServicePrincipal.DisplayName)'"
}
Write-Host "Done creating the webApp application (WebApp)"

Pasos siguientes

Avance al siguiente artículo de este escenario, Configuración del código de la aplicación.