ユーザーをサインインさせる Web アプリ:アプリの登録

この記事では、ユーザーをサインインさせる Web アプリにおけるアプリの登録の手順について説明しています。

アプリケーションを登録するには、次を使用することができます。

  • Web アプリ クイックスタート。 アプリケーションを初めて作成するすばらしい体験に加えて、Azure portal のクイックスタートには、 [この変更を行う] という名前のボタンが含まれます。 既存のアプリであっても、このボタンを使用して必要なプロパティを設定できます。 これらのプロパティの値を自分のケースに適応させます。 具体的には、自分のアプリ用の Web API URL は、提案された既定値とは異なる可能性があり、URI のサインアウトにも影響があります。
  • 手動でアプリケーションを登録する Azure portal。
  • PowerShell とコマンドライン ツール。

クイックスタートを使用してアプリを登録する

次のリンクを使用して、Web アプリケーションの作成をブートストラップできます。

アプリケーションの登録

Azure portal を使用してアプリを登録する

ヒント

この記事の手順は、開始するポータルに応じて若干異なる場合があります。

Note

使用するポータルは、アプリケーションが Microsoft Azure パブリック クラウド、各国のクラウドまたはソブリン クラウドのいずれで実行されるかによって異なります。 詳細については、各国のクラウドに関する記事をご覧ください。

  1. Microsoft Entra 管理センターにサインインします。
  2. 複数のテナントにアクセスできる場合は、上部のメニューの [設定] アイコン を使い、[ディレクトリとサブスクリプション] メニューからアプリケーションを登録するテナントに切り替えます。
  3. [ID]>[アプリケーション]>[アプリ登録] の順に進み、[新規登録] を選択します。
  1. [アプリケーションの登録] ページが表示されたら、以下のアプリケーションの登録情報を入力します。
    1. アプリケーションの名前を入力します (例: AspNetCore-WebApp)。 この名前は、アプリのユーザーに表示される場合があります。また、後で変更することができます。
    2. 自分のアプリケーションでサポートされているアカウントの種類を選択します。 (「サポートされているアカウントの種類」を参照してください。)
    3. [リダイレクト URI] に、アプリケーションの種類と認証に成功した後に返されたトークンの応答を受け入れる URI の接続先を追加します。 たとえば、「https://localhost:44321」と入力します。
    4. [登録] を選択します。
  2. [管理] の下で [認証] を選択し、次の情報を追加します。
    1. [Web] セクションで、リダイレクト URI として https://localhost:44321/signin-oidc を追加します。
    2. [フロントチャネルのログアウト URL] に「https://localhost:44321/signout-oidc」と入力します。
    3. [Implicit grant and hybrid flows](暗黙的な許可およびハイブリッド フロー) で、 [ID トークン] を選択します。
    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)"

次のステップ

このシナリオの次の記事であるアプリのコードの構成に関する記事に進みます。