ADAL.NET - 为什么AcquireTokenAsync需要从API认证OnBehalfOf到API时?

问题描述 投票:0回答:1

使用ADAL.NET获得访问令牌的规范模式如下:

try
{
 result = await authContext.AcquireTokenSilentAsync(graphResourceId, clientId);
}
catch (AdalException adalException) 
{
 if (adalException.ErrorCode == AdalError.FailedToAcquireTokenSilently || adalException.ErrorCode == AdalError.UserInteractionRequired)
 {
  result = await authContext.AcquireTokenAsync(graphResourceId,
                                               clientCred, 
                                               userAssertion);
 }
} 

据说AcquireTokenSilentAsync试图检索,而无需用户交互的令牌,而AcquireTokenAsync提示权限的用户。但是...此功能被称为Web API,它正试图调用另一个Web API中 - 所以没有办法提示允许用户在所有。我该使用哪一种呢?我需要同时使用?

.net azure-active-directory adal
1个回答
2
投票

通常情况下,你只需要使用第二(与userAssertion),因为这是你在的WebAPI有 - 客户打电话给你的用户的输入令牌。请注意,此API不会提示用户 - 与PlatfromParameters不同的签名。这个API将交换传入令牌给这个API解决这一个需要调用API的令牌。

© www.soinside.com 2019 - 2024. All rights reserved.