我正在使用Microsoft.Identity.Claim
库来连接天蓝色并验证用户。我的第一个想法是使用AcquireTokenByIntegratedWindowsAuth
方法,但这需要几天时间,直到网络管理员人员调查如何启用单点登录选项并更改该用户现在是“联合”而不是“管理”。所以我现在切换到AcquireTokenInteractive
方法,因为很有可能会登录,所以他只需要从自动打开的浏览器中选择帐户即可。没什么大不了的。
这有效:
string clientId = "xxx";
var tenantId = "yyy";
string[] scopes = new string[] { "User.Read", "User.ReadBasic.All"};
AuthenticationResult result;
var app = PublicClientApplicationBuilder.Create(clientId)
.WithRedirectUri("http://localhost")
.WithAuthority(AzureCloudInstance.AzurePublic, tenantId).Build();
try
{
result = await app.AcquireTokenInteractive(scopes)
.ExecuteAsync();
}
catch (MsalUiRequiredException) //see all possibl exceptions!
{
但是,我没有收到令牌内的索赔。我的想法是将此令牌发送到服务器,然后对其进行验证,如果成功在数据库中创建用户,然后使用我自己的身份验证机制用于其他用户(不是域的一部分,完全独立的用户)。但我不希望域中的所有用户都可以访问这个应用程序。所以我想得到索赔,角色......
如何获得索赔,使用这个或任何其他给定用户电子邮件的库,或其他一些独特的数据?