簡體   English   中英

如何使用OAuth 2.0對Azure Active Directory進行身份驗證?

[英]How to authenticate user with Azure Active Directory using OAuth 2.0?

我有一個用C#編寫的REST API,我需要使用現有的Azure AD服務進行身份驗證。 我目前擁有希望進行身份驗證的用戶的用戶名和密碼。 我需要使用Azure AD進行身份驗證,並從服務器接收訪問令牌。

有人可以指點我的一些文章/教程的方向,解釋如何做到這一點?

您應該避免處理用戶憑據。 收集通過使用OAuth 2.0或OpenID Connect來獲取令牌而不直接處理憑據而減輕的用戶憑據時,會產生嚴重的安全隱患。 此外,如果您擁有自己的憑據集合UI,那么如果啟用了多因素身份驗證,您可能會發現將來登錄失敗。 在這種情況下,可能需要更多信息來驗證用戶而不是收集信息,例如一次性密碼。 如果您允許Azure AD通過OAuth 2.0或OpenID Connect提供身份驗證體驗,那么您將與所使用的特定身份驗證方法隔離。 如果可能的話,收集用戶Azure AD憑據是一種不好的做法。

我對確切情況沒有足夠的細節以確信以下示例適用,但它至少會提供一個良好的起點。 此示例演示如何創建調用REST API的本機應用程序,然后可以以最安全的方式調用Azure資源。

https://github.com/AzureADSamples/WebAPI-OnBehalfOf-DotNet

您可以在此處找到許多其他示例,這些示例可用於為您的特定方案構建解決方案。

https://github.com/AzureADSamples

如果您提供更多細節,我可以提供更具體的指導。

請參閱: http//www.cloudidentity.com/blog/2014/07/08/using-adal-net-to-authenticate-users-via-usernamepassword/

摘要:創建UserCredential

UserCredential uc = new UserCredential(user, password);

使用UserCredential調用其中一個AcquireToken()函數

public AuthenticationResult AcquireToken(string resource, string clientId, UserCredential userCredential);
public Task<AuthenticationResult> AcquireTokenAsync(string resource, string clientId, UserCredential userCredential);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM