方法:リソースにアクセスできる 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 code that needs to access or modify resources, you can create an identity for the app. この ID は、サービス プリンシパルと呼ばれます。This identity is known as a service principal. その後、サービス プリンシパルに必要なアクセス許可を割り当てることができます。You can then assign the required permissions to the service principal. この記事では、ポータルを使用してサービス プリンシパルを作成する方法について説明します。This article shows you how to use the portal to create the service principal. ここでは、シングル テナント アプリケーション (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.

重要

サービス プリンシパルを作成する代わりに、アプリケーション 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?.

Azure Active Directory アプリケーションを作成するCreate an Azure Active Directory application

では早速、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 the application to a role

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

サービス プリンシパルが設定されました。Your service principal is set up. それを使用してスクリプトまたはアプリの実行を開始できます。You can start using it to run your scripts or apps. 次のセクションでは、プログラムでサインインするときに必要な値を取得する方法を示します。The next section shows how to get values that are needed when signing in programmatically.

サインインするための値を取得するGet values for signing in

プログラムでサインインするときは、認証要求でテナント ID を渡す必要があります。When programmatically signing in, you need to pass the tenant ID with your authentication request. また、アプリケーションの ID と認証キーも必要です。You also need the ID for your application and an authentication key. これらの値を取得するには、次の手順に従います。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) をコピーし、自分のアプリ コードに保存する

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

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

証明書とシークレットCertificates and secrets

デーモン アプリケーションでは、Azure AD で認証する 2 つの形式の資格情報 (証明書とアプリケーション シークレット) を使用できます。Daemon applications can use two forms of credentials to authenticate with Azure AD: certificates and application secrets. 証明書を使用するようお勧めしますが、新しいアプリケーション シークレットを作成することもできます。We recommend using a certificate, but you can also create a new application secret.

証明書のアップロードUpload a certificate

既存の証明書がある場合は、それを使用できます。You can use an existing certificate if you have one. 必要に応じて、テスト目的で自己署名証明書を作成することもできます。Optionally, you can create a self-signed certificate for testing purposes. PowerShell を開き、次のパラメーターを使用して New-selfsignedcertificate を実行して、コンピューター上のユーザー証明書ストアに自己署名証明書を作成します。Open PowerShell and run New-SelfSignedCertificate with the following parameters to create a self-signed certificate 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.

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

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

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

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

  3. [追加] を選択します。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.

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

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

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

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

  3. シークレットの説明と期間を指定します。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 aren't able to retrieve the key later. キー値は、アプリケーションとしてサインインする際にアプリケーション ID と共に入力します。You 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 addition 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

必要なアクセス許可Required permissions

アプリケーションを Azure AD テナントに登録し、Azure サブスクリプションでそのアプリケーションをロールに割り当てるための十分なアクセス許可が必要です。You must have sufficient permissions to register an application with your Azure AD tenant, and assign the application to 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. アカウントがユーザー ロールに割り当てられているが、アプリの登録の設定が管理者ユーザーに制限されている場合は、管理者に、アプリの登録のすべての側面を作成および管理できるいずれかの管理者ロールに自分を割り当てるか、ユーザーがアプリを登録できるようにするよう依頼してください。If your account is assigned to the User role, but the app registration setting is limited to admin users, ask your administrator to either assign you to 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 an AD app to a role. このアクションは、所有者ロールまたはユーザー アクセス管理者ロールを通じて許可されます。This action is granted through the Owner role or User Access Administrator role. アカウントが共同作成者ロールに割り当てられている場合は、適切なアクセス許可がありません。If your account is assigned to the Contributor role, you don't have adequate permission. この場合、サービス プリンシパルをロールに割り当てようとすると、エラーが発生します。You receive an error when attempting to assign the service principal to a role.

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

  1. 右上隅にあるアカウントを選択し、 [...] -> [アクセス許可] を選択します。Select your account in the upper right corner, and select ... -> My permissions.

    自分のアカウントとユーザーのアクセス許可を選択する

  2. ドロップダウン リストから、サービス プリンシパルを作成するサブスクリプションを選択します。From the drop-down list, select the subscription you want to create the service principal in. 次に、 [Click here to view complete access details for this subscription] (このサブスクリプションの完全なアクセスの詳細を表示するにはここをクリック) を選択します。Then, select Click here to view complete access details for this subscription.

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

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

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

次の手順Next steps