管理从控制台应用程序到Azure上的Web API的访问

时间:2017-06-05 19:13:58

标签: angularjs azure azure-web-sites azure-active-directory

我在Azure上部署了Angular应用程序,并使用Azure Active Directory进行了安全保护。为此,我遵循了本指南:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-devquickstarts-angular

因此,为了查询网站的Web API,需要在Azure Active Directory上对用户进行身份验证。到目前为止,一切都很好。

现在,我们有一个内部服务,未部署在Azure上,需要查询该Web API的方法,该方法已经如前所述受到保护。

有没有办法在不使用Api管理服务的情况下访问内部服务,以便在不需要使用AAD用户名/密码的情况下调用受保护的Web API?

我尝试使用ADAL librairy,但我看到的所有示例都提示AAD用户名密码登录。

1 个答案:

答案 0 :(得分:1)

要调用受Azure AD保护的Web API而不进行交互以提供用户名和密码,我们可以使用客户端凭据流程(请参阅this document)。

还有代码使用azure-activedirectory-library-for-dotnet作为参考:

string authority = "https://login.microsoftonline.com/{tenantId}";
string clientId = "";
string secret = "";
string resource = "";

var credential = new ClientCredential(clientId, secret);
AuthenticationContext authContext = new AuthenticationContext(authority);
var token = authContext.AcquireTokenAsync(resource, credential).Result.AccessToken;

Console.WriteLine(token);
相关问题