讓我首先說這是我的第一個.net核心應用程序,因此我可能會在這裏以一個白癡的身份出現。一般來說,我也是新的代幣。從asp.net核心獲取Microsoft Graph的訪問令牌認證Web應用程序
這麼說,我有一個應用程序,它驗證對Azure的AD用戶像這樣:
Startup.cs
using Microsoft.AspNetCore.Authentication.Cookies;
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddAuthentication(
SharedOptions => SharedOptions.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme);
services.AddAuthorization(options =>
{
//Auth Policies using group claims
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
//loggerFactory
app.UseCookieAuthentication();
app.UseOpenIdConnectAtuhentication(new OpenIdConnectOptions
{
ClientID = Configuration["Authentication:AzureAd:ClientId"],
Authority = Configuration["Authentication:AzureAd:AADInstance"] + Configuration["Authentication:AzureAd:TenantId"],
CallbackPath = Configuration["Authentication:AzureAd:CallbackPath"]
});
//Mvc Routing
}
AccountController.cs
[HttpGet]
public IActionResult SignIn()
{
return Challenge(
new AuthenticationProperties { RedirectUri = "/" }, OpenIdConnectDefaults.AuthenticationScheme);
}
在控制器我要保護然後我用[Authorize(Policy = "Whatever")]
所有這些都是工作g reat,所以我的問題是我已經擁有的cookie是否包含我需要的令牌,如果是這樣,我可以簡單地使用User.Claims來訪問它,還是需要使用IAuthenticationProvider
來設置它的示例。 net 4.6 Here。
如果是後者,我如何在沒有使用Owin的情況下如此操作?
我應該補充說,雖然授權工作正常,但現在我想要做的事情包括像列出OU中的所有用戶這樣的事情。據我所知,我必須訪問Microsoft Graph。也許,我正在走向完全錯誤的方向?
相關:https://stackoverflow.com/questions/41519132/how-to-store-the-token-received-in-acquiretokenasync-with-active-directory –