2017-01-25 13 views
3

現在、Azureでホストされているいくつかのアプリケーションを開発中です:AzureでホストされているAPIを呼び出すExcelアドイン(Office Apps) Azureでホストされているアプリケーション、おそらく後で他のアプリケーションを使用します。Web APIとアプリケーション(Azure AD)で使用されるAzure SQLデータベースのセキュリティ方法

ユーザーを認証するために、Web APIのトークン認証とWebアプリケーションのOpenIDに基づいて、Azure Active Directory(Azure AD)を使用します。 Azure ADのおかげで、APIやWebアプリケーションの呼び出しがすべて認証されるため、アプリケーション層でロールベースのアクセス制御を実装できます。

これらのAPI /アプリケーションはしばしばAzure SQLデータベースを呼び出します。私の質問は次のとおりです。認証されたユーザー(Azure AD)を使用してデータベースアクセスを認証することは可能ですか?

現在、データベースの資格情報は接続文字列にハードコードされています(ログインはアプリケーション用に作成されます)。ただし、厳密なDBアクセス制御ルールは許可されていません。

追加情報:組織のWindowsログインとAzureログインが異なるため、統合認証(Windowsユーザーを使用)はできません。AzureとWindows Active Directoryは異なります。

ありがとうございました。

答えて

1

はい、Azure SQL ServerはAzure Active Directory認証をサポートしています。この記事では、この機能を設定する方法について説明します。https://docs.microsoft.com/en-us/azure/sql-database/sql-database-aad-authentication

データベースはこの機能ではV12にする必要があります。そうでない場合は、V12にアップグレードすることができます。

あなたは、その後のようなたconnectionStringを使用してデータベースに接続できます。

string ConnectionString = @"Data Source=n9lxnyuzhv.database.windows.net; Authentication=Active Directory Integrated; Initial Catalog=testdb;"; 
    SqlConnection conn = new SqlConnection(ConnectionString); 
    conn.Open(); 
+0

こんにちはYoape、あなたの答えに感謝。私は既にAc​​tive Directory統合を試みましたが、動作しません。これは、ユーザーがコンピュータのAzure ADにログオンしていないためだと思いますが、私は完全にはわかりません。 – Rimcanfly

+0

ユーザーはコンピュータでAADを認証されていないため、ユーザー名/パスワードAADを選択する必要があります。詳細は@yoapeと同じリンクに掲載されています。 –

+0

https://github.com/Microsoft/sql-server-samples/tree/master/samples/features/security/azure-active-directory-auth/tokenに類似したものを使用できますか?ただし、ASP.NET Web APIの場合 – RudyCo

関連する問題