IdentityServer4 - Access AuthenticationToken информация - PullRequest
0 голосов
/ 30 марта 2020

Я использую 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"
}

1 Ответ

0 голосов
/ 31 марта 2020

Как вы знаете, установите GetClaimsFromUserInfoEndpoint в значение true из-за загрузки информации о пользователе в основной записи пользователя. UserInfo возврат конечной точки Информация о пользователе зависит от области действия вашего токена. Если вам нужна электронная почта пользователя, вам следует запросить также email scope. Я думаю, что вы можете использовать профиль и email области вместе для получения дополнительной информации о пользователе.

...