クライアント アプリケーションから Azure Active Directory を使用して BLOB およびキューへのアクセスを承認するAuthorize access to blobs and queues with Azure Active Directory from a client application

Azure Blob Storage または Queue Storage で Azure Active Directory (Azure AD) を使用する主な利点は、資格情報をコード内に格納する必要がなくなることです。A key advantage of using Azure Active Directory (Azure AD) with Azure Blob storage or Queue storage is that your credentials no longer need to be stored in your code. その代わりに、Microsoft ID プラットフォーム (以前の Azure AD) から OAuth 2.0 アクセス トークンを要求することができます。Instead, you can request an OAuth 2.0 access token from the Microsoft identity platform (formerly Azure AD). Azure AD によって、アプリケーションを実行しているセキュリティ プリンシパル (ユーザー、グループ、またはサービス プリンシパル) が認証されます。Azure AD authenticates the security principal (a user, group, or service principal) running the application. 認証が成功すると、Azure AD からアプリケーションにアクセス トークンが返されます。アプリケーションでは、このアクセス トークンを使用して Azure Blob Storage および Queue Storage への要求を承認できます。If authentication succeeds, Azure AD returns the access token to the application, and the application can then use the access token to authorize requests to Azure Blob storage or Queue storage.

この記事では、Microsoft ID プラットフォーム 2.0 による認証を行うためにネイティブ アプリケーションまたは Web アプリケーションを構成する方法について説明します。This article shows how to configure your native application or web application for authentication with Microsoft identity platform 2.0. コード例で取り上げられているのは .NET ですが、他の言語でも同様の方法が使用されます。The code example features .NET, but other languages use a similar approach. Microsoft ID プラットフォーム 2.0 の詳細については、「Microsoft ID プラットフォーム (v2.0) の概要」を参照してください。For more information about Microsoft identity platform 2.0, see Microsoft identity platform (v2.0) overview.

OAuth 2.0 コード付与フローの概要については、「OAuth 2.0 コード付与フローを使用して Azure Active Directory Web アプリケーションへアクセスを承認する」を参照してください。For an overview of the OAuth 2.0 code grant flow, see Authorize access to Azure Active Directory web applications using the OAuth 2.0 code grant flow.

Azure AD のセキュリティ プリンシパルにロールを割り当てるAssign a role to an Azure AD security principal

Azure Storage アプリケーションからセキュリティ プリンシパルの認証を行うには、最初に、そのセキュリティ プリンシパルのロールベースのアクセス制御 (RBAC) 設定を構成します。To authenticate a security principal from your Azure Storage application, first configure role-based access control (RBAC) settings for that security principal. コンテナーとキューのアクセス許可を含む組み込みの RBAC ロールは、Azure Storage によって定義されます。Azure Storage defines built-in RBAC roles that encompass permissions for containers and queues. RBAC ロールがセキュリティ プリンシパルに割り当てられると、そのセキュリティ プリンシパルはそのリソースへのアクセス権を付与されます。When the RBAC role is assigned to a security principal, that security principal is granted access to that resource. 詳細については、RBAC を使用した Azure BLOB とキューのデータへのアクセス権の管理に関するページをご覧ください。For more information, see Manage access rights to Azure Blob and Queue data with RBAC.

アプリケーションを Azure AD テナントに登録するRegister your application with an Azure AD tenant

Azure AD を使用してストレージ リソースへのアクセスを承認する最初の手順は、Azure portal からクライアント アプリケーションを Azure AD テナントに登録することです。The first step in using Azure AD to authorize access to storage resources is registering your client application with an Azure AD tenant from the Azure portal. クライアント アプリケーションの登録では、使用するアプリケーションに関する情報を Azure AD に提供します。When you register your client application, you supply information about the application to Azure AD. これで Azure AD から、実行時にアプリケーションを Azure AD と関連付ける際に使用するクライアント ID (アプリケーション ID とも呼ばれます) が提供されます。Azure AD then provides a client ID (also called an application ID) that you use to associate your application with Azure AD at runtime. クライアント ID の詳細については、「Azure Active Directory のアプリケーション オブジェクトとサービス プリンシパル オブジェクト」を参照してください。To learn more about the client ID, see Application and service principal objects in Azure Active Directory.

Azure Storage アプリケーションを登録するための手順については、「クイック スタート:Microsoft ID プラットフォームにアプリケーションを登録する」を参照してください。To register your Azure Storage application, follow the steps shown in Quickstart: Register an application with the Microsoft identity platform. 次の図は、Web アプリケーションを登録するための一般的な設定を示します。The following image shows common settings for registering a web application:

ストレージ アプリケーションを Azure AD に登録する方法を示すスクリーンショット

注意

アプリケーションをネイティブ アプリケーションとして登録する場合は、リダイレクト URI 用に任意の有効な URI を指定できます。If you register your application as a native application, you can specify any valid URI for the Redirect URI. ネイティブ アプリケーションの場合、この値が実際の URL である必要はありません。For native applications, this value does not have to be a real URL. Web アプリケーションの場合、リダイレクト URI はトークンが提供される URL を指定するため、有効な URI である必要があります。For web applications, the redirect URI must be a valid URI, because it specifies the URL to which tokens are provided.

アプリケーションを登録すると、 [設定] にアプリケーション ID (クライアント ID) が表示されます。After you've registered your application, you'll see the application ID (or client ID) under Settings:

クライアント ID を示すスクリーンショット

Azure AD へのアプリケーションの登録について詳しくは、「Azure Active Directory とアプリケーションの統合」を参照してください。For more information about registering an application with Azure AD, see Integrating applications with Azure Active Directory.

登録済みのアプリに Azure Storage へのアクセス許可を付与するGrant your registered app permissions to Azure Storage

次に、Azure Storage API を呼び出すためのアクセス許可をアプリケーションに付与します。Next, grant your application permissions to call Azure Storage APIs. この手順によって、アプリケーションで Azure AD を使用して Azure Storage への要求を承認できるようになります。This step enables your application to authorize requests to Azure Storage with Azure AD.

  1. 登録済みアプリケーションの [概要] ページで、 [API アクセス許可の表示] を選択します。On the Overview page for your registered application, select View API Permissions.

  2. [API のアクセス許可] セクションで、 [アクセス許可の追加] を選択し、 [Microsoft API] を選択します。In the API permissions section, select Add a permission and choose Microsoft APIs.

  3. 結果の一覧から [Azure Storage] を選択して、 [Request API permissions](API のアクセス許可を要求する) ウィンドウを選択します。Select Azure Storage from the list of results to display the Request API permissions pane.

  4. [アプリケーションに必要なアクセス許可の種類] で、使用可能なアクセス許可の種類が [委任されたアクセス許可] になっていることを確認してください。Under What type of permissions does your application require?, observe that the available permission type is Delegated permissions. このオプションは既定で選択されています。This option is selected for you by default.

  5. [API アクセス許可の要求] ウィンドウの [アクセス許可の選択] セクションで、 [user_impersonation] の横のチェック ボックスをオンにし、 [アクセス許可の追加] をクリックします。In the Select permissions section of the Request API permissions pane, select the checkbox next to user_impersonation, then click Add permissions.

    ストレージのアクセス許可を示すスクリーンショット

これで、 [API のアクセス許可] ウィンドウに、登録済み Azure AD アプリケーションに Microsoft Graph と Azure Storage の両方へのアクセス権があることが示されます。The API permissions pane now shows that your registered Azure AD application has access to both Microsoft Graph and the Azure Storage. アプリを Azure AD に最初に登録する際に、Microsoft Graph へのアクセス許可が自動的に付与されます。Permissions are granted to Microsoft Graph automatically when you first register your app with Azure AD.

登録済みのアプリのアクセス許可を示すスクリーンショット

クライアント シークレットの作成Create a client secret

アプリケーションでは、トークンを要求するときに ID を証明するためにクライアント シークレットが必要です。The application needs a client secret to prove its identity when requesting a token. クライアント シークレットを追加するには、次の手順のようにします。To add the client secret, follow these steps:

  1. Azure portal でアプリの登録に移動します。Navigate to your app registration in the Azure portal.

  2. [証明書とシークレット] の設定を選択します。Select the Certificates & secrets setting.

  3. [クライアント シークレット] で、 [新しいクライアント シークレット] をクリックして新しいシークレットを作成します。Under Client secrets, click New client secret to create a new secret.

  4. シークレットの説明を入力し、適切な有効期限の間隔を選択します。Provide a description for the secret, and choose the desired expiration interval.

  5. すぐに新しいシークレットの値を安全な場所にコピーします。Immediately copy the value of the new secret to a secure location. 完全な値は 1 回だけしか表示されません。The full value is displayed to you only once.

    クライアント シークレットを示すスクリーンショット

トークン取得のためのクライアント ライブラリClient libraries for token acquisition

アプリケーションを登録し、Azure Blob Storage や Queue Storage 内のデータにアクセスするためのアクセス許可をこれに付与したら、セキュリティ プリンシパルを認証して OAuth 2.0 トークンを取得するためのコードをアプリケーションに追加できます。Once you have registered your application and granted it permissions to access data in Azure Blob storage or Queue storage, you can add code to your application to authenticate a security principal and acquire an OAuth 2.0 token. 認証してトークンを取得するには、Microsoft ID プラットフォームの認証ライブラリまたは OpenID Connect 1.0 をサポートする別のオープンソース ライブラリのいずれかを使用することができます。To authenticate and acquire the token, you can use either one of the Microsoft identity platform authentication libraries or another open-source library that supports OpenID Connect 1.0. その後、アプリケーションはアクセス トークンを使用して、Azure Blob Storage や Queue Storage に対する要求を承認することができます。Your application can then use the access token to authorize a request against Azure Blob storage or Queue storage.

トークンの取得がサポートされるシナリオの一覧は、Microsoft Authentication Library (MSAL) for .NET GitHub リポジトリのシナリオのセクションを参照してください。For a list of scenarios for which acquiring tokens is supported, see the Scenarios section of the Microsoft Authentication Library (MSAL) for .NET GitHub repository.

Azure AD による認証の既知の値Well-known values for authentication with Azure AD

Azure AD でセキュリティ プリンシパルの認証を行うには、いくつかの既知の値をコードに含める必要があります。To authenticate a security principal with Azure AD, you need to include some well-known values in your code.

Azure AD 機関Azure AD authority

Microsoft パブリック クラウドの場合、基本 Azure AD 機関は次のとおりです。ここで、tenant-id は実際の Active Directory テナント ID (またはディレクトリ ID) です。For Microsoft public cloud, the base Azure AD authority is as follows, where tenant-id is your Active Directory tenant ID (or directory ID):

https://login.microsoftonline.com/<tenant-id>/

テナント ID は、認証に使用する Azure AD テナントを識別します。The tenant ID identifies the Azure AD tenant to use for authentication. ディレクトリ ID とも呼ばれます。It is also referred to as the directory ID. テナント ID を取得するには、Azure portal でアプリ登録の [概要] ページに移動し、そこから値をコピーします。To retrieve the tenant ID, navigate to the Overview page for your app registration in the Azure portal, and copy the value from there.

Azure Storage リソース IDAzure Storage resource ID

Azure AD リソース ID は、Azure リソースへのアクセスを与える目的で、発行されたトークンを利用できる対象ユーザーを示します。An Azure AD resource ID indicates the audience for which a token that is issued can be used to provide access to an Azure resource. Azure Storage の場合、リソース ID は 1 つのストレージ アカウントに固有となるか、あらゆるストレージ アカウントに適用されます。In the case of Azure Storage, the resource ID may be specific to a single storage account, or it may apply to any storage account. 次の表では、リソース ID に指定できる値の詳細についてまとめています。The following table describes the values that you can provide for the resource ID:

Resource IDResource ID 説明Description
https://<account>.blob.core.windows.net

https://<account>.queue.core.windows.net
特定のストレージ アカウントのサービス エンドポイント。The service endpoint for a given storage account. この値を使用し、その特定の Azure Storage アカウントとサービスに対してのみ要求を承認するためのトークンを取得します。Use this value to acquire a token for authorizing requests to that specific Azure Storage account and service only. 実際のストレージ アカウントの名前に値を置き換えます。Replace the value in brackets with the name of your storage account.
https://storage.azure.com/ あらゆる Azure Storage アカウントへの要求を承認するトークンを取得するために使用します。Use to acquire a token for authorizing requests to any Azure Storage account.

.NET コード例: ブロック BLOB を作成する.NET code example: Create a block blob

このコード例では、Azure AD からアクセス トークンを取得する方法を示します。The code example shows how to get an access token from Azure AD. アクセス トークンは、指定されたユーザーの認証を行って、ブロック BLOB を作成する要求を承認するために使用されます。The access token is used to authenticate the specified user and then authorize a request to create a block blob. このサンプルを動作させるには、まず前のセクションで説明されている手順に従ってください。To get this sample working, first follow the steps outlined in the preceding sections.

トークンを要求するには、アプリの登録から次の値が必要です。To request the token, you will need the following values from your app's registration:

  • Azure AD ドメインの名前。The name of your Azure AD domain. この値は、Azure Active Directory の [概要] ページから取得します。Retrieve this value from the Overview page of your Azure Active Directory.
  • テナント (またはディレクトリ) ID。The tenant (or directory) ID. この値は、アプリ登録の [概要] ページから取得します。Retrieve this value from the Overview page of your app registration.
  • クライアント (またはアプリケーション) ID。The client (or application) ID. この値は、アプリ登録の [概要] ページから取得します。Retrieve this value from the Overview page of your app registration.
  • クライアント リダイレクト URI。The client redirection URI. この値は、アプリ登録の [認証] の設定から取得します。Retrieve this value from the Authentication settings for your app registration.
  • クライアント シークレットの値。The value of the client secret. この値は、前にコピーした場所から取得します。Retrieve this value from the location to which you previously copied it.

ストレージ アカウントとコンテナーの作成Create a storage account and container

コード サンプルを実行するには、Azure Active Directory と同じサブスクリプション内にストレージ アカウントを作成します。To run the code sample, create a storage account within the same subscription as your Azure Active Directory. 次に、そのストレージ アカウント内にコンテナーを作成します。Then create a container within that storage account. サンプル コードでは、このコンテナーにブロック BLOB が作成されます。The sample code will create a block blob in this container.

次に、サンプル コードを実行するユーザー アカウントに、ストレージ BLOB データ共同作成者ロールを明示的に割り当てます。Next, explicitly assign the Storage Blob Data Contributor role to the user account under which you will run the sample code. Azure portal でこのロールを割り当てる方法については、「Azure portal で RBAC を使用して Azure BLOB とキューのデータへのアクセスを付与する」をご覧ください。For instructions on how to assign this role in the Azure portal, see Grant access to Azure blob and queue data with RBAC in the Azure portal.

注意

Azure ストレージ アカウントを作成するとき、Azure AD を介してデータにアクセスするためのアクセス許可は自動的に割り当てられません。When you create an Azure Storage account, you are not automatically assigned permissions to access data via Azure AD. Azure Storage の RBAC ロールを自分自身に明示的に割り当てる必要があります。You must explicitly assign yourself an RBAC role for Azure Storage. これは、サブスクリプション、リソース グループ、ストレージ アカウント、あるいはコンテナーまたはキューのレベルで割り当てることができます。You can assign it at the level of your subscription, resource group, storage account, or container or queue.

Azure AD で Blob Storage へのアクセスを承認する Web アプリケーションを作成するCreate a web application that authorizes access to Blob storage with Azure AD

お使いのアプリケーションで Azure Storage にアクセスするときは、ユーザーの代理として行われます。つまり、BLOB またはキュー リソースには、ログインしているユーザーのアクセス許可を使ってアクセスされます。When your application accesses Azure Storage, it does so on the user's behalf, meaning that blob or queue resources are accessed using the permissions of the user who is logged in. このコード例を試すには、ユーザーが Azure AD の ID を使用してサインインすることを示すプロンプトを表示する Web アプリケーションが必要です。To try this code example, you need a web application that prompts the user to sign in using an Azure AD identity. 独自に作成することも、Microsoft によって提供されるサンプル アプリケーションを使うこともできます。You can create your own, or use the sample application provided by Microsoft.

トークンを取得し、それを使って Azure Storage に BLOB を作成する完全なサンプル Web アプリケーションは、GitHub で入手できます。A completed sample web application that acquires a token and uses it to create a blob in Azure Storage is available on GitHub. 完全なサンプルをレビューして実行すると、コード例の理解に役立つことがあります。Reviewing and running the completed sample may be helpful for understanding the code examples. 完全なサンプルを実行する方法については、「完全なサンプルを表示して実行する」セクションをご覧ください。For instructions about how to run the completed sample, see the section titled View and run the completed sample.

参照と using ステートメントを追加するAdd references and using statements

Visual Studio から Azure Storage クライアント ライブラリをインストールします。From Visual Studio, install the Azure Storage client library. [ツール] メニューで、 [NuGet パッケージ マネージャー][パッケージ マネージャー コンソール] の順に選択します。From the Tools menu, select Nuget Package Manager, then Package Manager Console. コンソール ウィンドウに次のコマンドを入力して、.NET 用 Azure Storage クライアント ライブラリから必要なパッケージをインストールします。Type the following commands into the console window to install the necessary packages from the Azure Storage client library for .NET:

Install-Package Microsoft.Azure.Storage.Blob
Install-Package Microsoft.Azure.Storage.Common

次に、以下の using ステートメントを HomeController.cs ファイルに追加します。Next, add the following using statements to the HomeController.cs file:

using Microsoft.Identity.Client; //MSAL library for getting the access token
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;

ブロック BLOB を作成するCreate a block blob

次のコード スニペットを追加してブロック BLOB を作成します。Add the following code snippet to create a block blob:

private static async Task<string> CreateBlob(string accessToken)
{
    // Create a blob on behalf of the user
    TokenCredential tokenCredential = new TokenCredential(accessToken);
    StorageCredentials storageCredentials = new StorageCredentials(tokenCredential);

    // Replace the URL below with your storage account URL
    CloudBlockBlob blob =
        new CloudBlockBlob(
            new Uri("https://<storage-account>.blob.core.windows.net/<container>/Blob1.txt"),
            storageCredentials);
    await blob.UploadTextAsync("Blob created by Azure AD authenticated user.");
    return "Blob successfully created";
}

注意

OAuth 2.0 トークンを使用して BLOB とキューの操作を承認するには、HTTPS を使用する必要があります。To authorize blob and queue operations with an OAuth 2.0 token, you must use HTTPS.

上の例では、.NET クライアント ライブラリによって、ブロック BLOB を作成するための要求の認可が処理されます。In the example above, the .NET client library handles the authorization of the request to create the block blob. 他の言語の Azure Storage クライアント ライブラリでも、要求の認可が処理されます。Azure Storage client libraries for other languages also handle the authorization of the request for you. ただし、REST API を使って OAuth トークンを指定して Azure Storage の操作を呼び出す場合は、OAuth トークンを使って要求を認可する必要があります。However, if you are calling an Azure Storage operation with an OAuth token using the REST API, then you'll need to authorize the request using the OAuth token.

OAuth アクセス トークンを使って Blob service および Queue サービスの操作を呼び出すには、ベアラー スキームを使って Authorization ヘッダーでアクセス トークンを渡し、2017-11-09 以降のサービス バージョンを指定します。次の例をご覧ください。To call Blob and Queue service operations using OAuth access tokens, pass the access token in the Authorization header using the Bearer scheme, and specify a service version of 2017-11-09 or higher, as shown in the following example:

GET /container/file.txt HTTP/1.1
Host: mystorageaccount.blob.core.windows.net
x-ms-version: 2017-11-09
Authorization: Bearer eyJ0eXAiOnJKV1...Xd6j

Azure AD から OAuth トークンを取得するGet an OAuth token from Azure AD

次に、ユーザーの代わりに Azure AD からトークンを要求するメソッドを追加します。Next, add a method that requests a token from Azure AD on the behalf of the user. このメソッドは、アクセス許可が付与されるスコープを定義します。This method defines the scope for which permissions are to be granted. アクセス許可とスコープの詳細については、「Microsoft ID プラットフォーム エンドポイントでのアクセス許可と同意」を参照してください。For more information about permissions and scopes, see Permissions and consent in the Microsoft identity platform endpoint.

リソース ID を使用して、トークンを取得するスコープを構築します。Use the resource ID to construct the scope for which to acquire the token. この例では、(ユーザーの代わりにトークンが要求されることを示す) 組み込みの user_impersonation スコープと共にリソース ID を使用してスコープを構築します。The example constructs the scope by using the resource ID together with the built-in user_impersonation scope, which indicates that the token is being requested on behalf of the user.

注意点としては、自分の代わりにトークンを要求することにユーザーが同意するためのインターフェイスをユーザーに提示することが必要な場合があります。Keep in mind that you may need to present the user with an interface that enables the user to consent to request the token their behalf. 同意が必要な場合、例では MsalUiRequiredException をキャッチし、別のメソッドを呼び出して同意の要求を促進します。When consent is necessary, the example catches the MsalUiRequiredException and calls another method to facilitate the request for consent:

public async Task<IActionResult> Blob()
{
    var scopes = new string[] { "https://storage.azure.com/user_impersonation" };
    try
    {
        var accessToken =
            await _tokenAcquisition.GetAccessTokenOnBehalfOfUser(HttpContext, scopes);
        ViewData["Message"] = await CreateBlob(accessToken);
        return View();
    }
    catch (MsalUiRequiredException ex)
    {
        AuthenticationProperties properties =
            BuildAuthenticationPropertiesForIncrementalConsent(scopes, ex);
        return Challenge(properties);
    }
}

同意は、保護されたリソースにアプリケーションが代理でアクセスする認証を、ユーザーが許可するプロセスです。Consent is the process of a user granting authorization to an application to access protected resources on their behalf. Microsoft ID プラットフォーム 2.0 では増分同意がサポートされています。これは、セキュリティ プリンシパルで最初は最小限のアクセス許可のセットを要求し、必要に応じて時間の経過と共にアクセス許可を追加できることを意味します。The Microsoft identity platform 2.0 supports incremental consent, meaning that a security principal can request a minimum set of permissions initially and add permissions over time as needed. コードがアクセス トークンを要求する場合、特定の時点でアプリが必要とするアクセス許可のスコープを、scope パラメーターに指定します。When your code requests an access token, specify the scope of permissions that your app needs at any given time by in the scope parameter. 増分同意の詳細については、「Microsoft ID プラットフォーム (v2.0) に更新する理由」の「増分および動的な同意」セクションをご覧ください。For more information about incremental consent, see the section titled Incremental and dynamic consent in Why update to Microsoft identity platform (v2.0)?.

次のメソッドは、増分同意を要求する認証プロパティを作成します。The following method constructs the authentication properties for requesting incremental consent:

private AuthenticationProperties BuildAuthenticationPropertiesForIncrementalConsent(string[] scopes,
                                                                                    MsalUiRequiredException ex)
{
    AuthenticationProperties properties = new AuthenticationProperties();

    // Set the scopes, including the scopes that ADAL.NET or MSAL.NET need for the Token cache.
    string[] additionalBuildInScopes = new string[] { "openid", "offline_access", "profile" };
    properties.SetParameter<ICollection<string>>(OpenIdConnectParameterNames.Scope,
                                                 scopes.Union(additionalBuildInScopes).ToList());

    // Attempt to set the login_hint so that the logged-in user is not presented
    // with an account selection dialog.
    string loginHint = HttpContext.User.GetLoginHint();
    if (!string.IsNullOrWhiteSpace(loginHint))
    {
        properties.SetParameter<string>(OpenIdConnectParameterNames.LoginHint, loginHint);

        string domainHint = HttpContext.User.GetDomainHint();
        properties.SetParameter<string>(OpenIdConnectParameterNames.DomainHint, domainHint);
    }

    // Specify any additional claims that are required (for instance, MFA).
    if (!string.IsNullOrEmpty(ex.Claims))
    {
        properties.Items.Add("claims", ex.Claims);
    }

    return properties;
}

完全なサンプルを表示して実行するView and run the completed sample

サンプル アプリケーションを実行するには、最初に GitHub から複製またはダウンロードします。To run the sample application, first clone or download it from GitHub. その後、以下のセクションで説明するようにアプリケーションを更新します。Then update the application as described in the following sections.

設定ファイルで値を提供するProvide values in the settings file

次のように、独自の値で appsettings.json ファイルを更新します。Next, update the appsettings.json file with your own values, as follows:

{
  "AzureAd": {
    "Instance": "https://login.microsoftonline.com/",
    "Domain": "<azure-ad-domain-name>.onmicrosoft.com",
    "TenantId": "<tenant-id>",
    "ClientId": "<client-id>",
    "CallbackPath": "/signin-oidc",
    "SignedOutCallbackPath ": "/signout-callback-oidc",

    // To call an API
    "ClientSecret": "<client-secret>"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

ストレージ アカウントとコンテナー名を更新するUpdate the storage account and container name

HomeController.cs ファイルで、自分のストレージ アカウントとコンテナーの名前を使うように、ブロック BLOB を参照する URI を更新します。In the HomeController.cs file, update the URI that references the block blob to use the name of your storage account and container:

CloudBlockBlob blob = new CloudBlockBlob(
                      new Uri("https://<storage-account>.blob.core.windows.net/<container>/Blob1.txt"),
                      storageCredentials);

暗黙的な許可のフローを有効にするEnable implicit grant flow

サンプルを実行するには、アプリの登録に対して暗黙的な許可のフローを構成することが必要な場合があります。To run the sample, you may need to configure the implicit grant flow for your app registration. 次の手順に従います。Follow these steps:

  1. Azure portal でアプリの登録に移動します。Navigate to your app registration in the Azure portal.

  2. [管理] セクションで、 [認証] 設定を選択します。In the Manage section, select the Authentication setting.

  3. [詳細設定][暗黙の付与] セクションで、次の図のように、チェック ボックスをオンにしてアクセス トークンと ID トークンを有効にします。Under Advanced settings, in the Implicit grant section, select the check boxes to enable access tokens and ID tokens, as shown in the following image:

    暗黙的な許可のフローの設定を有効にする方法を示すスクリーンショット

localhost によって使用されるポートを更新するUpdate the port used by localhost

サンプルを実行するとき、実行時に割り当てられる localhost ポートを使うように、アプリの登録で指定されているリダイレクト URI を更新することが必要な場合があります。When you run the sample, you may find that you need to update the redirect URI specified in your app registration to use the localhost port assigned at runtime. 割り当てられたポートを使用するようリダイレクト URI を更新するには、次の手順のようにします。To update the redirect URI to use the assigned port, follow these steps:

  1. Azure portal でアプリの登録に移動します。Navigate to your app registration in the Azure portal.

  2. [管理] セクションで、 [認証] 設定を選択します。In the Manage section, select the Authentication setting.

  3. [リダイレクト URI] で、次の図のように、ポートを編集して、サンプル アプリケーションで使われているものと一致させます。Under Redirect URIs, edit the port to match that used by the sample application, as shown in the following image:

    アプリの登録のリダイレクト URI を示すスクリーンショット

次の手順Next steps