Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9360

C# で Azure Functions の CORS にドメインを登録

$
0
0

Azure SDK for .NET を使用して C# で Azure Functions の CORS にドメインを登録する方法をまとめます。

image.png

事前準備

CORS の登録処理の認証に使用する AAD のアプリを用意し、クライアント ID、クライアントシークレット、テナント ID を取得しておきます。

AAD のアプリは CORS 登録対象の Azure Functions か、Azure Functions のリソースグループにロールを割り当てておきます。
今回はリソースグループに「共同作成者」でロールを割り当てました。

次に、CORS の登録対象の Azure Functions のサブスクリプション ID を取得しておきます。

AAD アプリの情報、サブスクリプション ID を変数に設定しておきます。

varclientId="{AAD アプリのクライアント ID}";varclientSecret="{AAD アプリのクライアントシークレット}";vartenantId="{AAD アプリのテナント ID}";varsubscriptionId="{CORS の登録対象の Azure Functions のサブスクリプション ID}";

資格情報の作成

Nuget より Microsoft.Azure.Management.ResourceManager.Fluentをインストールします。

AAD のアプリの clientId, clientSecret, tenantId を使用して資格情報を作成します。

// credential の作成varcredentials=SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId,clientSecret,tenantId,AzureEnvironment.AzureGlobalCloud);

Azure SDK for .NET のリファレンスはこちら

Azure オブジェクトの作成

Nuget より Microsoft.Azure.Management.Fluentをインストールします。

資格情報で作成した AzureCredentials オブジェクトと、サブスクリプション ID を使用して CORS を操作するための Azure オブジェクトを作成します。

// Azure オブジェクトの作成varazure=Microsoft.Azure.Management.Fluent.Azure.Configure().Authenticate(credentials).WithSubscription(subscriptionId);

Azure SDK for .NET のリファレンス

CORS 一覧取得

リソースグループ名、FunctionApp 名を元に更新対象の FunctionApp の CORS の一覧を取得します。

CORS 一覧は IList<string> 型で取得されます。

varfunctionAppName="{CORS 登録対象の Azure Functions}";varresourceGroupName="{CORS 登録対象の Azure Functions のリソースグループ名}";// WebApps の config を取得varsiteConfig=(awaitazure.WebApps.Inner.GetConfigurationWithHttpMessagesAsync(resourceGroupName,functionAppName)).Body;// config から CORS の一覧を取得varcorsList=siteConfig.Cors.AllowedOrigins;

Azure SDK for .NET のリファレンスはこちら

CORS の登録

CORS の一覧に登録するドメインを追加し、WebApps の config を更新することで FunctionApp の CORS にドメインを登録することができます。

// COSR の一覧に登録するドメインを追加varadditionalDomain="{登録するドメイン}";corsList.Add(additionalDomain);// CORS の一覧を設定varnewSiteConfig=newSiteConfigResourceInner(){Cors=newCorsSettings()};newSiteConfig.Cors.AllowedOrigins=corsList;// WebApps の config を更新awaitazure.WebApps.Inner.CreateOrUpdateConfigurationWithHttpMessagesAsync(resourceGroupName,functionAppName,newSiteConfig);

Azure SDK for .NET のリファレンスはこちら


Viewing all articles
Browse latest Browse all 9360

Latest Images

Trending Articles