方法:リソースにアクセスできる Azure AD アプリケーションとサービス プリンシパルをポータルで作成するHow to: Use the portal to create an Azure AD application and service principal that can access resources

この記事では、ロール ベースのアクセス制御で使用できる、新しい Azure Active Directory (Azure AD) のアプリケーションとサービス プリンシパルを作成する方法について説明します。This article shows you how to create a new Azure Active Directory (Azure AD) application and service principal that can be used with the role-based access control. リソースへのアクセスや変更を行う必要があるアプリケーション、ホステッド サービス、または自動化されたツールがある場合は、アプリの ID を作成できます。When you have applications, hosted services, or automated tools that needs to access or modify resources, you can create an identity for the app. この ID は、サービス プリンシパルと呼ばれます。This identity is known as a service principal. リソースへのアクセスはサービス プリンシパルに割り当てられているロールによって制限されるため、どのリソースに、どのレベルでアクセスできるかを制御することができます。Access to resources is restricted by the roles assigned to the service principal, giving you control over which resources can be accessed and at which level. セキュリティ上の理由から、自動化ツールにはユーザー ID でのログインを許可するのではなく、常にサービス プリンシパルを使用することを推奨します。For security reasons, it's always recommended to use service principals with automated tools rather than allowing them to log in with a user identity.

この記事では、Azure portal でサービス プリンシパルを作成するためのポータルの使用方法を示します。This article shows you how to use the portal to create the service principal in the Azure portal. ここでは、シングル テナント アプリケーション (1 つの組織内でのみ実行することを目的としたアプリケーション) に焦点を絞って説明します。It focuses on a single-tenant application where the application is intended to run within only one organization. 一般に、組織内で実行される基幹業務アプリケーションには、シングル テナント アプリケーションが使用されます。You typically use single-tenant applications for line-of-business applications that run within your organization. Azure PowerShell を使用して、サービス プリンシパルを作成することもできます。You can also use Azure PowerShell to create a service principal.

重要

サービス プリンシパルを作成する代わりに、アプリケーション ID 用に Azure リソースのマネージド ID を使用することを検討します。Instead of creating a service principal, consider using managed identities for Azure resources for your application identity. コードが、マネージド ID をサポートするサービス上で実行され、Azure AD 認証をサポートするリソースにアクセスする場合、マネージド ID は優れた選択肢となります。If your code runs on a service that supports managed identities and accesses resources that support Azure AD authentication, managed identities are a better option for you. Azure リソースのマネージド ID の詳細 (どのサービスが現在マネージド ID をサポートしているかなど) については、「Azure リソースのマネージド ID とは」を参照してください。To learn more about managed identities for Azure resources, including which services currently support it, see What is managed identities for Azure resources?.

アプリの登録、アプリ オブジェクト、サービス プリンシパルApp registration, app objects, and service principals

Azure portal を使用してサービス プリンシパルを直接作成することはできません。There is no way to directly create a service principal using the Azure portal. Azure portal 経由でアプリケーションを登録するときに、アプリケーション オブジェクトとサービス プリンシパルは自動的にホーム ディレクトリまたはテナントに作成されます。When you register an application through the Azure portal, an application object and service principal are automatically created in your home directory or tenant. アプリの登録、アプリケーション オブジェクト、サービス プリンシパルの関係について詳しくは、「Azure Active Directory のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」を参照してください。For more information on the relationship between app registration, application objects, and service principals, read Application and service principal objects in Azure Active Directory.

アプリの登録に必要なアクセス許可Permissions required for registering an app

アプリケーションを Azure AD テナントに登録し、Azure サブスクリプションでそのアプリケーションにロールを割り当てるために、十分なアクセス許可を持っている必要があります。You must have sufficient permissions to register an application with your Azure AD tenant, and assign to the application a role in your Azure subscription.

Azure AD のアクセス許可を確認するCheck Azure AD permissions

  1. [Azure Active Directory] を選択します。Select Azure Active Directory .

  2. 自分のロールを確認します。Note your role. [ユーザー] ロールを持っている場合は、管理者以外のユーザーがアプリケーションを登録できることを確認する必要があります。If you have the User role, you must make sure that non-administrators can register applications.

    自分のロールを見つける。

  3. 左側のウィンドウで、 [ユーザー設定] を選択します。In the left pane, select User settings .

  4. [アプリの登録] 設定を確認します。Check the App registrations setting. この値は、管理者だけが設定できます。This value can only be set by an administrator. [はい] に設定されている場合は、Azure AD テナント内のすべてのユーザーがアプリを登録できます。If set to Yes , any user in the Azure AD tenant can register an app.

アプリの登録の設定が [いいえ] に設定されている場合は、管理者ロールを持つユーザーのみが、これらの種類のアプリケーションを登録できます。If the app registrations setting is set to No , only users with an administrator role may register these types of applications. 使用可能な管理者ロールと各ロールに与えられている Azure AD での具体的なアクセス許可については、利用可能なロールロールのアクセス許可に関するページを参照してください。See available roles and role permissions to learn about available administrator roles and the specific permissions in Azure AD that are given to each role. アカウントにユーザー ロールが割り当てられているが、アプリの登録の設定が管理者ユーザーに制限されている場合は、アプリの登録のすべての側面について作成と管理が可能な管理者ロールの 1 つを、登録を行うユーザーに割り当てるか、ユーザーがアプリを登録できるようにするよう、管理者に依頼してください。If your account is assigned the User role, but the app registration setting is limited to admin users, ask your administrator to either assign you one of the administrator roles that can create and manage all aspects of app registrations, or to enable users to register apps.

Azure サブスクリプションのアクセス許可を確認するCheck Azure subscription permissions

Azure サブスクリプションで AD アプリにロールを割り当てるには、アカウントが Microsoft.Authorization/*/Write アクセス権を持っている必要があります。In your Azure subscription, your account must have Microsoft.Authorization/*/Write access to assign a role to an AD app. このアクションは、所有者ロールまたはユーザー アクセス管理者ロールを通じて許可されます。This action is granted through the Owner role or User Access Administrator role. アカウントに 共同作成者 ロールが割り当てられている場合は、適切なアクセス許可がありません。If your account is assigned the Contributor role, you don't have adequate permission. この場合、サービス プリンシパルにロールを割り当てようとすると、エラーが発生します。You will receive an error when attempting to assign the service principal a role.

サブスクリプションのアクセス許可を確認するには、次の手順に従います。To check your subscription permissions:

  1. [サブスクリプション] を検索して選択するか、 ホーム ページの [サブスクリプション] を選択します。Search for and select Subscriptions , or select Subscriptions on the Home page.

    検索

  2. サービス プリンシパルを作成するサブスクリプションを選択します。Select the subscription you want to create the service principal in.

    割り当てのためのサブスクリプションを選択する

    探しているサブスクリプションが表示されない場合は、 グローバル サブスクリプション フィルター を選択します。If you don't see the subscription you're looking for, select global subscriptions filter . 必要なサブスクリプションがポータルで選択されていることを確認してください。Make sure the subscription you want is selected for the portal.

  3. [アクセス許可] を選択します。Select My permissions . 次に、 [Click here to view complete access details for this subscription] (このサブスクリプションの完全なアクセスの詳細を表示するにはここをクリック) を選択します。Then, select Click here to view complete access details for this subscription .

    サービス プリンシパルを作成するサブスクリプションを選択する

  4. [ロールの割り当て][表示] を選択して割り当て済みのロールを表示し、AD アプリにロールを割り当てるための適切なアクセス許可があるかどうかを確認します。Select View in Role assignments to view your assigned roles, and determine if you have adequate permissions to assign a role to an AD app. ない場合は、サブスクリプション管理者に連絡して、ユーザー アクセス管理者ロールに追加してもらいます。If not, ask your subscription administrator to add you to User Access Administrator role. 次の図では、ユーザーには所有者ロールが割り当てられているので、このユーザーには適切なアクセス許可があります。In the following image, the user is assigned the Owner role, which means that user has adequate permissions.

    この例では、ユーザーには所有者ロールが割り当てられています

Azure AD にアプリケーションを登録し、サービス プリンシパルを作成するRegister an application with Azure AD and create a service principal

では早速、ID の作成を開始しましょう。Let's jump straight into creating the identity. 問題が発生した場合は、「必要なアクセス許可」をチェックして、使用しているアカウントで ID を作成できることを確認してください。If you run into a problem, check the required permissions to make sure your account can create the identity.

  1. Azure Portal で Azure アカウントにサインインします。Sign in to your Azure Account through the Azure portal.

  2. [Azure Active Directory] を選択します。Select Azure Active Directory .

  3. [アプリの登録] を選択します。Select App registrations .

  4. [新規登録] を選択します。Select New registration .

  5. アプリケーションに名前を付けるName the application. サポートされているアカウントを選択します。これにより、アプリケーションを使用できるユーザーを決定します。Select a supported account type, which determines who can use the application. [リダイレクト URI] で、作成するアプリケーションの種類で [Web] を選択します。Under Redirect URI , select Web for the type of application you want to create. アクセス トークンの送信先の URI を入力します。Enter the URI where the access token is sent to. ネイティブ アプリケーションの資格情報を作成することはできません。You can't create credentials for a Native application. そのタイプを自動化されたアプリケーションに使用することはできません。You can't use that type for an automated application. 値を設定したら、 [登録] を選択します。After setting the values, select Register .

    アプリケーションの名前を入力する

Azure AD アプリケーションとサービス プリンシパルが作成されました。You've created your Azure AD application and service principal.

アプリケーションにロールを割り当てるAssign a role to the application

サブスクリプション内のリソースにアクセスするには、アプリケーションにロールを割り当てる必要があります。To access resources in your subscription, you must assign a role to the application. どのロールがそのアプリケーションに適切なアクセス許可を提供するかを判断します。Decide which role offers the right permissions for the application. 利用できるロールの詳細については、「Azure 組み込みロール」を参照してください。To learn about the available roles, see Azure built-in roles.

スコープは、サブスクリプション、リソース グループ、またはリソースのレベルで設定できます。You can set the scope at the level of the subscription, resource group, or resource. アクセス許可は、スコープの下位レベルに継承されます。Permissions are inherited to lower levels of scope. たとえば、アプリケーションをリソース グループの 閲覧者 ロールに追加すると、そのリソース グループと、その中にあるどのリソースも読み取りができることになります。For example, adding an application to the Reader role for a resource group means it can read the resource group and any resources it contains.

  1. Azure portal で、アプリケーションを割り当てるスコープのレベルを選択します。In the Azure portal, select the level of scope you wish to assign the application to. たとえば、サブスクリプションのスコープでロールを割り当てるには、 [サブスクリプション] を検索して選択するか、 [ホーム] ページで [サブスクリプション] を選択します。For example, to assign a role at the subscription scope, search for and select Subscriptions , or select Subscriptions on the Home page.

    たとえば、サブスクリプションのスコープでロールを割り当て

  2. アプリケーションを割り当てる特定のサブスクリプションを選択します。Select the particular subscription to assign the application to.

    割り当てのためのサブスクリプションを選択する

    探しているサブスクリプションが表示されない場合は、 グローバル サブスクリプション フィルター を選択します。If you don't see the subscription you're looking for, select global subscriptions filter . 必要なサブスクリプションがポータルで選択されていることを確認してください。Make sure the subscription you want is selected for the portal.

  3. [アクセス制御 (IAM)] を選択します。Select Access control (IAM) .

  4. [ロールの割り当ての追加] を選択します。Select Add role assignment .

  5. アプリケーションに割り当てるロールを選択します。Select the role you wish to assign to the application. たとえば、アプリケーションがインスタンスの 再起動開始停止 などのアクションを実行できるようにするには、 [共同作成者] ロールを選択します。For example, to allow the application to execute actions like reboot , start and stop instances, select the Contributor role. 使用可能なロールの詳細を参照してください。既定では、Azure AD アプリケーションは、使用可能なオプションに表示されません。Read more about the available roles By default, Azure AD applications aren't displayed in the available options. アプリケーションを見つけるには、名前を検索し、その名前を選択します。To find your application, search for the name and select it.

    アプリケーションに割り当てるロールを選択します。

  6. [保存] を選択して、ロールの割り当てを完了します。Select Save to finish assigning the role. 該当のスコープのロールを持つユーザーの一覧に、アプリケーションが表示されます。You see your application in the list of users with a role for that scope.

サービス プリンシパルが設定されました。Your service principal is set up. それを使用してスクリプトまたはアプリの実行を開始できます。You can start using it to run your scripts or apps. サービス プリンシパル (アクセス許可、ユーザーが承諾したアクセス許可、承諾したユーザーの参照、アクセス許可の確認、サインイン情報の参照など) を管理するには、 エンタープライズ アプリケーション に移動します。To manage your service principal (permissions, user consented permissions, see which users have consented, review permissions, see sign in information, and more), go to Enterprise applications .

次のセクションでは、プログラムでサインインするときに必要な値を取得する方法を示します。The next section shows how to get values that are needed when signing in programmatically.

サインインするためのテナントとアプリ ID の値を取得するGet tenant and app ID values for signing in

プログラムでサインインするときは、認証要求およびアプリケーション ID と共にテナント ID を渡す必要があります。When programmatically signing in, you need to pass the tenant ID with your authentication request and the application ID. 証明書または認証キーも必要です (次のセクションで説明します)。You also need a certificate or an authentication key (described in the following section). これらの値を取得するには、次の手順に従います。To get those values, use the following steps:

  1. [Azure Active Directory] を選択します。Select Azure Active Directory .

  2. Azure AD の [アプリの登録] から、アプリケーションを選択します。From App registrations in Azure AD, select your application.

  3. ディレクトリ (テナント) ID をコピーし、アプリケーション コードに保存します。Copy the Directory (tenant) ID and store it in your application code.

    ディレクトリ (テナント ID) をコピーし、自分のアプリ コードに保存する

    ディレクトリ (テナント) ID は、既定のディレクトリの概要ページでも確認できます。The directory (tenant) ID can also be found in the default directory overview page.

  4. アプリケーション ID をコピーし、アプリケーション コードに保存します。Copy the Application ID and store it in your application code.

    アプリケーション (クライアント) ID をコピーする

認証: 2 つのオプションAuthentication: Two options

サービス プリンシパルで使用できる認証には、パスワードベースの認証 (アプリケーション シークレット) と証明書ベースの認証の 2 種類があります。There are two types of authentication available for service principals: password-based authentication (application secret) and certificate-based authentication. " 証明書を使用することをお勧めします " が、アプリケーション シークレットを作成することもできます。We recommend using a certificate , but you can also create an application secret.

オプション 1: 証明書のアップロードOption 1: Upload a certificate

既存の証明書がある場合は、それを使用できます。You can use an existing certificate if you have one. 必要に応じて、 テスト目的でのみ 自己署名証明書を作成できます。Optionally, you can create a self-signed certificate for testing purposes only . 自己署名証明書を作成するには、PowerShell を開き、次のパラメーターを使用して New-SelfSignedCertificate を実行し、コンピューター上のユーザー証明書ストアに証明書を作成します。To create a self-signed certificate, open PowerShell and run New-SelfSignedCertificate with the following parameters to create the cert in the user certificate store on your computer:

$cert=New-SelfSignedCertificate -Subject "CN=DaemonConsoleCert" -CertStoreLocation "Cert:\CurrentUser\My"  -KeyExportPolicy Exportable -KeySpec Signature

Windows コントロール パネルからアクセスできる [Manage User Certificate](ユーザー証明書の管理) MMC スナップインを使用して、この証明書をファイルにエクスポートします。Export this certificate to a file using the Manage User Certificate MMC snap-in accessible from the Windows Control Panel.

  1. [スタート] メニューから [ファイル名を指定して実行] メニューを選択し、「 certmgr.msc 」と入力します。Select Run from the Start menu, and then enter certmgr.msc .

    現在のユーザーの証明書マネージャー ツールが表示されます。The Certificate Manager tool for the current user appears.

  2. 証明書を表示するには、左ペインの [証明書 - 現在のユーザー] の下の [個人] ディレクトリを展開します。To view your certificates, under Certificates - Current User in the left pane, expand the Personal directory.

  3. 作成した証明書を右クリックし、 [すべてのタスク] -> [エクスポート] を選択します。Right-click on the cert you created, select All tasks->Export .

  4. 証明書のエクスポート ウィザードに従います。Follow the Certificate Export wizard. 秘密キーをエクスポートしたり、.CER ファイルにエクスポートしたりしないでください。Do not export the private key, and export to a .CER file.

証明書をアップロードするには、次の手順に従います。To upload the certificate:

  1. [Azure Active Directory] を選択します。Select Azure Active Directory .

  2. Azure AD の [アプリの登録] から、アプリケーションを選択します。From App registrations in Azure AD, select your application.

  3. [証明書とシークレット] を選択します。Select Certificates & secrets .

  4. [証明書のアップロード] を選択し、証明書 (既存の証明書、またはエクスポートした自己署名証明書) を選択します。Select Upload certificate and select the certificate (an existing certificate or the self-signed certificate you exported).

    [証明書のアップロード] を選択して、追加するものを選択する

  5. [追加] を選択します。Select Add .

アプリケーション登録ポータルで証明書をアプリケーションに登録したら、クライアント アプリケーションで証明書を使用できるようにする必要があります。After registering the certificate with your application in the application registration portal, you need to enable the client application code to use the certificate.

オプション 2:新しいアプリケーション シークレットを作成するOption 2: Create a new application secret

証明書を使用しないように選択した場合は、新しいアプリケーション シークレットを作成できます。If you choose not to use a certificate, you can create a new application secret.

  1. [Azure Active Directory] を選択します。Select Azure Active Directory .

  2. Azure AD の [アプリの登録] から、アプリケーションを選択します。From App registrations in Azure AD, select your application.

  3. [証明書とシークレット] を選択します。Select Certificates & secrets .

  4. [クライアント シークレット] -> [新しいクライアント シークレット] を選択します。Select Client secrets -> New client secret .

  5. シークレットの説明と期間を指定します。Provide a description of the secret, and a duration. 完了したら、 [追加] をクリックします。When done, select Add .

    クライアント シークレットを保存すると、クライアント シークレットの値が表示されます。After saving the client secret, the value of the client secret is displayed. キーは後で取得できないため、この値をコピーしておきます。Copy this value because you won't be able to retrieve the key later. キーの値は、アプリケーションとしてサインインするためにアプリケーション ID と共に指定します。You will provide the key value with the application ID to sign in as the application. アプリケーションが取得できる場所にキー値を保存します。Store the key value where your application can retrieve it.

    後からこれを取得することはできないので、このシークレット値をコピーする

リソースに対するアクセス ポリシーを構成するConfigure access policies on resources

アプリケーションからアクセスする必要があるリソースに対する追加のアクセス許可の構成が必要になる場合があることに注意してください。Keep in mind, you might need to configure additional permissions on resources that your application needs to access. たとえば、キー、シークレット、または証明書へのアクセス権をアプリケーションに付与するには、キー コンテナーのアクセス ポリシーも更新する必要があります。For example, you must also update a key vault's access policies to give your application access to keys, secrets, or certificates.

  1. Azure portal で、キー コンテナーに移動し、 [アクセス ポリシー] を選択します。In the Azure portal, navigate to your key vault and select Access policies .
  2. [アクセス ポリシーの追加] を選択し、アプリケーションに付与するキー、シークレット、証明書のアクセス許可を選択します。Select Add access policy , then select the key, secret, and certificate permissions you want to grant your application. 以前に作成したサービス プリンシパルを選択します。Select the service principal you created previously.
  3. [追加] を選択してアクセス ポリシーを追加し、 [保存] を選択して変更をコミットします。Select Add to add the access policy, then Save to commit your changes. アクセス ポリシーの追加Add access policy

次のステップNext steps