分享方式:


可登入使用者的 Web 應用程式:應用程式註冊

本文描述可登入使用者之 Web 應用程式的應用程式註冊步驟。

您可以使用以下方法註冊應用程式:

  • Web 應用程式快速入門。 Azure 入口網站中的快速入門不但是建立應用程式的絕佳初體驗,還包含一個名為 [Make this change for me] \(為我進行這項變更\) 的按鈕。 您可以使用這個按鈕設定需要的屬性,即使是現有的應用程式也適用。 為您自己的案例調整這些屬性值。 尤其是,您應用程式的 Web API URL 可能會與所建議預設值不同,這也會影響登出 URI。
  • 用以手動註冊應用程式的 Azure 入口網站。
  • PowerShell 和命令列工具。

使用快速入門註冊應用程式

您可以使用下列連結啟動 Web 應用程式的啟動程序:

註冊應用程式

使用 Azure 入口網站註冊應用程式

提示

根據您開始使用的不同入口網站,本文中的步驟可能略有變化。

注意

使用的入口網站會隨應用程式在 Microsoft Azure 公用雲端中執行,還是在國家雲端或主權雲端中執行而有所不同。 如需詳細資訊,請參閱國家雲端

  1. 登入 Microsoft Entra 系統管理中心。
  2. 若有權存取多個租用戶,請使用頂端功能表中的 [設定] 圖示 ,以從 [目錄 + 訂用帳戶] 功能表中切換至您想要在其中註冊應用程式的租用戶。
  3. 瀏覽至 [身分識別] > [應用程式] > [應用程式註冊],選取 [新增註冊]
  1. 當 [註冊應用程式] 頁面出現時,輸入您應用程式的註冊資訊:
    1. 輸入應用程式的名稱,例如 AspNetCore-WebApp。 您的應用程式使用者可能會看到此名稱,而且您稍後可以加以變更。
    2. 選取應用程式支援的帳戶類型。 (請參閱支援的帳戶類型。)
    3. 在 [重新導向 URI] 中,新增應用程式類型,以及在成功驗證之後會接受所傳回權杖回應的 URI 目的地。 例如,輸入 https://localhost:44321
    4. 選取註冊
  2. 選取 [管理] 下的 [驗證],然後新增下列資訊:
    1. 在 [Web] 區段中,將 https://localhost:44321/signin-oidc 新增為 [重新導向 URI]
    2. 在 [Front-channel logout URL] \(從前端通道登出 URL\) 中輸入 https://localhost:44321/signout-oidc
    3. 在 [隱含授與和混合式流程] 下,選取 [識別碼權杖]
    4. 選取 [儲存]。

使用 PowerShell 註冊應用程式

您也可以使用 New-MgApplication,向 Microsoft Graph PowerShell 註冊應用程式。

以下是程式碼的概念。 如需完整運作的程式碼,請參閱此範例

# 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)"

後續步驟

移至此案例的下一篇文章:應用程式的程式碼設定