要件 - asp.net MVCアプリケーションからAzure SQL DBに接続しようとしましたが、Azure SQL DBへの接続タイプは "トークンベース"以下は私の最後からのセットアップです。SQL AADトークンベースの認証 - NT AUTHORITY ANONYMOUS LOGONのログインに失敗しました
a。証明書ベースの認証でAADアプリケーション(例:MTSLocal)を作成しました。
b。上記のAADにSQLの権限を追加しました。
CREATE USER [MTSLocal] FROM外部プロバイダ。
c.InコードレベルクライアントID(手順aから取得)を使用してアクセストークンを取得しようとしています。証明書と接続先のリソースが「https://database.windows.net」です。サンプルコードを参照してください -
string authority = string.Format(System.Globalization.CultureInfo.InvariantCulture, "https://login.windows.net/{0}",
"xxxx.onmicrosoft.com");
var authContext = new AuthenticationContext(authority);
AuthenticationResult result = null;
result = await authContext.AcquireTokenAsync("https://database.windows.net", AssertionCert);
token = result.AccessToken;
d。私はアクセストークンを取得することができますが、私はSQL接続をオープンしようとしています。上記のエラーが発生しています。
sqlBuilder["Data Source"] = serverName;
sqlBuilder["Initial Catalog"] = databaseName;
sqlBuilder["Connect Timeout"] = 30;
string accesstoken = GetAccessToken();
using (SqlConnection connection = new SqlConnection(sqlBuilder.ConnectionString))
{
try
{
connection.AccessToken = accesstoken;
connection.Open();
}
catch (Exception ex)
{
}
}
これについての助けがあれば、本当に役に立ちます。
あなたがこれをやっている方法に関するいくつかのコードやその他の情報を見ずに誰でもあなたに有意義に答えるのは簡単ではありません。あなたの質問に何を入れるべきかについては、https://stackoverflow.com/help/how-to-askを参照してください。 – ADyson
申し訳ありません..私はコードサンプルを使用しました - https://stackoverflow.com/questions/38862095/acquiring-azure-ad-token-for-azure-sql-server しかし、connection.open()の行私は上記の例外を上回っています。 connection.AccessToken = accessToken; //アクセストークンを正常に取得できます。 connection.Open(); –
アーキテクチャをより具体的に記述してください。クライアント、Azure DC、SQLサーバ、およびSQLサーバの前にある任意のウェブサーバまたは他のタイプのアプリケーションサーバを含む。 –