Я использую IdentityServer4 с Azure Active Directory.
Я могу аутентифицировать и получить имя пользователя.
Теперь из моего API я должен получить доступ к Graph и получить информацию о пользователе, почту и т. Д. c.
Как я могу прочитать access_token для запроса информации у Graph?
Этот метод сохраняет информацию в AutheticationProperty. Могу ли я прочитать эту информацию? Как?
private void ProcessLoginCallbackForOidc(AuthenticateResult externalResult, List<Claim> localClaims, AuthenticationProperties localSignInProps)
{
// if the external system sent a session id claim, copy it over
// so we can use it for single sign-out
var sid = externalResult.Principal.Claims.FirstOrDefault(x => x.Type == JwtClaimTypes.SessionId);
if (sid != null)
{
localClaims.Add(new Claim(JwtClaimTypes.SessionId, sid.Value));
}
// if the external provider issued an id_token, we'll keep it for signout
var id_token = externalResult.Properties.GetTokenValue("id_token");
if (id_token != null)
{
localSignInProps.StoreTokens(new[] { new AuthenticationToken { Name = "id_token", Value = id_token } });
}
}
Я пытался добавить информацию о конечной точке "connect / userinfo"
GetClaimsFromUserInfoEndpoint = true
Результат UserInfo:
{
"sub": "subscription-id",
"name": "Andrea Tosato",
"preferred_username": "2942bf90-19d9-4518-bcb9-78026604bb3e"
}