我们有一个Azure Passthrough设置,即Azure身份验证是在前提AD中完成的。
在这里,我们在IIS中托管了一个本地MVC应用程序,该应用程序需要使用Azure中托管的应用程序服务。为此,我们已在Azure广告中将应用程序注册为本地应用程序,并将权限映射到服务。
内部托管应用程序使用集成Windows身份验证。 我们可以在Visual Studio调试模式下(即在IIS Express上运行)使用以下代码来获取访问令牌。
var clientId = "XXXX-XXXX-XXXX-XXXX-XXXX";
string authority = "https://login.microsoftonline.com/XXXX-XXXX-XXXX-XXXX-XXXX/oauth2/authorize";
string resource = "https://ourdomain.sharepoint.com"; ///put id or url of resource you're accessing
AuthenticationContext authenticationContext = new AuthenticationContext(authority, false);
UserCredential uc = new UserCredential(); // By passing empty means windows Authentication
AuthenticationResult token = null;
return authenticationContext.AcquireTokenAsync(resource, clientId, uc).Result;
但是一旦部署在IIS中并使用服务帐户运行应用程序池。我们正在接收服务帐户的访问令牌,而需要根据已认证的用户接收访问令牌。