ADAL v3はUserPasswordCredentialクラスを持っているが、私は作業の実装を見つけることができません。 UserPasswordCredentialまたはUserCredentialタイプを受け入れるAcquireTokenオーバーロードはありません。 ADAL v3のユーザー名&のパスワードフローを実行する正しい方法は何ですか?この特定のコードは完全な.Net 4.5を使用しています。ADAL v3:UserPasswordCredentialを使用して認証する方法
3
A
答えて
3
あなたがクライアントアプリで開発していた場合は、トークンを取得するために以下のコードを参照することができます。
string authority = "https://login.microsoftonline.com/xxxx.onmicrosoft.com";
string resrouce = "https://graph.windows.net";
string clientId = "";
string userName = "";
string password = "";
UserPasswordCredential userPasswordCredential = new UserPasswordCredential(userName,password);
AuthenticationContext authContext = new AuthenticationContext(authority);
var token= authContext.AcquireTokenAsync(resrouce,clientId, userPasswordCredential).Result.AccessToken;
そして、あなたは、Webアプリケーション(これは一般的なシナリオではありません)を開発していた場合には、そのようなはありませんこのシナリオをサポートするADAL V3のメソッド回避策として、あなた自身でリクエストを作成することができます。ここではあなたの参照のための例です:
POST: https://login.microsoftonline.com/xxxxx.onmicrosoft.com/oauth2/token
Content-Type: application/x-www-form-urlencoded
resource={resource}&client_id={clientId}&grant_type=password&username={userName}&password={password}&scope=openid&client_secret={clientSecret}
2
受け入れ答えの第二部について詳しく説明するために、ここでPOSTリクエストを作る実装です:
From SettingHelper: public static string GetAuthorityEndpoint(string azuretenantId) => $"https://login.microsoftonline.com/{azuretenantId}/";
private static async Task<OAuthResult> AuthenticateAsync(string resource = "https://yourAzureADProtectedResource.url/")
{
var oauthEndpoint = new Uri(new Uri(SettingsHelper.GetAuthorityEndpoint("your AAD Tenent ID")), "oauth2/token");
using (var client = new HttpClient())
{
var result = await client.PostAsync(oauthEndpoint, new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("resource", resource),
new KeyValuePair<string, string>("client_id", "your AAD App Id"),
new KeyValuePair<string, string>("grant_type", "password"),
new KeyValuePair<string, string>("username", "[email protected]"),
new KeyValuePair<string, string>("password", "your password"),
new KeyValuePair<string, string>("scope", "openid"),
new KeyValuePair<string, string>("client_secret", "an access key for your AAD App"),
}));
var content = await result.Content.ReadAsStringAsync();
var authResult = JsonConvert.DeserializeObject<OAuthResult>(content);
return authResult;
}
}
class OAuthResult
{
public string Token_Type { get; set; }
public string Scope { get; set; }
public int Expires_In { get; set; }
public int Ext_Expires_In { get; set; }
public int Expires_On { get; set; }
public int Not_Before { get; set; }
public Uri Resource { get; set; }
public string Access_Token { get; set; }
}
あなたは、その後の使用に進むことができますこのような認証結果:
private async Task<HttpClient> GetHttpClientWithAzureADAuthentication()
{
OAuthResult authResult;
try
{
authResult = await AuthenticateAsync();
var httpClient = GetHttpClient();
httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {authResult.Access_Token}");
return httpClient;
}
catch (Exception e)
{
Debug.WriteLine(e);
throw;
}
}
+0
明らかにあなたは、ハードコードのものではないだろうここに、彼らは解決策を説明するためにここにあります:) –
関連する問題
- 1. ADAL .Net Core NugetパッケージはUserPasswordCredentialをサポートしていません
- 2. ADAL v3とWindows Credential Managerを使用してリフレッシュトークンをキャッシュする
- 3. ADAL認証エラーマルチテナント
- 4. ADAL認証エラー
- 5. Xamarin.FormsでADALを使用した認証がiOSでクラッシュする
- 6. ADAL 3.0に対してADALで認証されたユーザーを特定する方法はありますか?
- 7. ADAL Javascriptを使用してAzure ADを非対話的に認証する
- 8. Androidを使用したAzure ADのWebアプリケーション認証ADAL
- 9. ADALヘッドレスネイティブクライアントアプリケーションとマルチファクタ認証(MFA)
- 10. AndroidネイティブアプリのADALライブラリを使用してAzure ADでユーザーを認証
- 11. 自動テストにMicrosoft認証ライブラリ(MSAL)を使用する方法
- 12. windows認証を使用してカスタム認証マネージャーを登録する方法
- 13. Delegated Adalトークンにアクセスして使用する方法
- 14. Webアプリケーションでkentor認証サービスを使用して認証する方法
- 15. ADAL v2.xを使用して構築されたTokenCacheからADAL v3.xにアップグレード
- 16. 認証トークンとしてオプションのomniauthトークンを使用して、deviseでhttp認証を使用する方法
- 17. AWSでホストされているASP.Net MVCアプリケーションにADAL(Active Directory認証ライブラリ)を使用して認証用にADFSを使用できますか?
- 18. URLを使用してユーザーを認証する方法は?
- 19. トークン認証を使用してユーザープロファイルを実装する方法
- 20. ブートストラップログインフォームを使用してdjangoユーザーを認証する方法
- 21. AADを使用してxamarin.Formsアプリを認証する方法
- 22. ウェブAPIサービスをAZUREを使用して認証する方法
- 23. HttpWebRequestと認証を使用してファイルをダウンロードする方法
- 24. OAuth2を使用してMendeleyを認証する方法
- 25. Pythonを使用してファイルをダウンロードする方法と認証
- 26. Pythonを使用してBluemix CF APIを認証する方法
- 27. powershellを使用してActiveDirectoryでユーザーを認証する方法
- 28. Cordovaを使用してモバイルアプリでユーザーを認証する方法
- 29. access_tokenを使用してLaravelでSPAを認証する方法
- 30. ダイジェスト認証を使用してWebリソースをダウンロードする方法
感謝。 docs.microsoft.comの新しいドキュメンテーションサイトは信じられないほど読みにくく、adal v3は使いにくいです。 – Trondh
この場合、クライアント秘密はどこで使用されますか?私はそれが必要だと思う。 – Kurkula
@Trondh DITTOは、私は、エラー、次のリクエストボディには、次のパラメータが含まれている必要があります取得し、このがらくた – Mikee