C# で Azure Functions の CORS にドメインを登録
Azure SDK for .NET を使用して C# で Azure Functions の CORS にドメインを登録する方法をまとめます。
事前準備
CORS の登録処理の認証に使用する AAD のアプリを用意し、クライアント ID、クライアントシークレット、テナント ID を取得しておきます。
AAD のアプリは CORS 登録対象の Azure Functions か、Azure Functions のリソースグループにロールを割り当てておきます。
今回はリソースグループに「共同作成者」でロールを割り当てました。
次に、CORS の登録対象の Azure Functions のサブスクリプション ID を取得しておきます。
AAD アプリの情報、サブスクリプション ID を変数に設定しておきます。
var clientId = "{AAD アプリのクライアント ID}";
var clientSecret = "{AAD アプリのクライアントシークレット}";
var tenantId = "{AAD アプリのテナント ID}";
var subscriptionId = "{CORS の登録対象の Azure Functions のサブスクリプション ID}";
資格情報の作成
Nuget より Microsoft.Azure.Management.ResourceManager.Fluent
をインストールします。
AAD のアプリの clientId, clientSecret, tenantId を使用して資格情報を作成します。
// credential の作成
var credentials = SdkContext.AzureCredentialsFactory
.FromServicePrincipal(clientId, clientSecret, tenantId, AzureEnvironment.AzureGlobalCloud);
Azure SDK for .NET のリファレンスはこちら
Azure オブジェクトの作成
Nuget より Microsoft.Azure.Management.Fluent
をインストールします。
資格情報で作成した AzureCredentials オブジェクトと、サブスクリプション ID を使用して CORS を操作するための Azure オブジェクトを作成します。
// Azure オブジェクトの作成
var azure = Microsoft.Azure.Management.Fluent.Azure
.Configure()
.Authenticate(credentials)
.WithSubscription(subscriptionId);
Azure SDK for .NET のリファレンス
CORS 一覧取得
リソースグループ名、FunctionApp 名を元に更新対象の FunctionApp の CORS の一覧を取得します。
CORS 一覧は IList<string> 型で取得されます。
var functionAppName = "{CORS 登録対象の Azure Functions}";
var resourceGroupName = "{CORS 登録対象の Azure Functions のリソースグループ名}";
// WebApps の config を取得
var siteConfig = (await azure.WebApps.Inner.GetConfigurationWithHttpMessagesAsync(resourceGroupName, functionAppName)).Body;
// config から CORS の一覧を取得
var corsList = siteConfig.Cors.AllowedOrigins;
Azure SDK for .NET のリファレンスはこちら
CORS の登録
CORS の一覧に登録するドメインを追加し、WebApps の config を更新することで FunctionApp の CORS にドメインを登録することができます。
// COSR の一覧に登録するドメインを追加
var additionalDomain = "{登録するドメイン}";
corsList.Add(additionalDomain);
// CORS の一覧を設定
var newSiteConfig = new SiteConfigResourceInner() { Cors = new CorsSettings() };
newSiteConfig.Cors.AllowedOrigins = corsList;
// WebApps の config を更新
await azure.WebApps.Inner.CreateOrUpdateConfigurationWithHttpMessagesAsync(resourceGroupName, functionAppName, newSiteConfig);
Azure SDK for .NET のリファレンスはこちら
Author And Source
この問題について(C# で Azure Functions の CORS にドメインを登録), 我々は、より多くの情報をここで見つけました https://qiita.com/nozyuto/items/d3c606a19e4b871e4e0f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .