ADAL.NET 2.xでは、以下のコードを使用して、UserCredential
を使用してAzure ADからトークンを取得し、完全に機能します。
var authContext = new AuthenticationContext(Authority);
var userCredential = new UserCredential(username, password);
var token = authContext.AcquireToken(ResourceUrl, ClientId, userCredential);
今日ADAL.NET v3をアップグレードしたとき、新しいバージョンではUserCredential
にユーザー名とパスワードでオーバーロードされたコンストラクタがないため、コードをコンパイルできません。
ADAL.NET v3の新しいバージョンでこれを回避するにはどうすればよいですか?
代わりに、UserCredentialのサブクラスであるUserPasswordCredential
クラスを使用してください
参考までに、ADALからこの機能を削除したようです。 ソース
ユーザーのユーザー名とパスワードの組み合わせで認証するには、HttpClientを使用して自分で投稿リクエストを行う必要があると思います。
に投稿:
https://login.microsoftonline.com/yourdomain.onmicrosoft.com/oauth2/token
と:
resource={resource}&client_id={clientid}&grant_type=password&username={username}&password={password}&scope=openid&client_secret={clientsecret}
リクエストで
UserPasswordCredential
を試してください。クラスはv3で名前を変更する必要がありました。
これにより、UserCredentialsの問題が修正されますが、AuthenticationContextタイプが変更されて、AcquireTokenメソッドがなくなったようです。 AcquireTokenAsyncを使用してこれに対処できます