Да, я видел это и зашел так далеко, он просто получает информацию о пользователе и / или токен доступа, который не работает, adal, кажется, не принимает ответ, несмотря на то, что говорят любые из документов, только токен id

я есть клиентское приложение, которое я аутентифицирую с помощью ADFS и response-adal, и у меня большая его часть работает, но не могу найти способ запросить токен доступа (и, следовательно, обновить токен) с помощью id_token - это все, что я получаю взамен от ADFS.

В данный момент приложение React перенаправляет пользователя в ADFS для входа в систему, а затем аутентифицирует токен, и я хочу иметь возможность получать информацию о пользователе (имя, фамилия, роли и т. Д.) Из конечной точки / adfs / userinfo, но необходимо жетон на предъявителя для этого.

В настоящее время моя функция componentWillMount выглядит следующим образом

componentWillMount = () => {
    axios.get('/home/AuthenticationContext').then((response) => {
        this.adalAuthentication = new AdalAuthentication(response.data);
        if (this.adalAuthentication.authenticateToken()) { // checks if authenticated with adfs, not app
            var error = this.adalAuthentication.Instance.getLoginError();
            if (error === "") {
                axios({
                    method: 'get',
                    url: '/identity/completeLogin/' + this.adalAuthentication.Instance.getCachedToken(this.adalAuthentication.Instance.config.clientId)
                }).then((response) => { console.log(response) })
                this.setState({
                    loggedIn: true
                });
            }
            else {
                this.setState({
                    error: error
                });
            }
        }
}

Точка, в которой я застрял, - это второй метод get axios, который воздействует на действие контроллера на том же источнике.

    [HttpGet("completeLogin/{id_token}")]
    public async Task<IActionResult> CompleteLogin(string id_token)
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer" + id_token);
        var response = await client.GetAsync("https://adfs.domain/adfs/userinfo");

        return View();
    }

Конечно, ответ возвращается неавторизованным. Я не могу найти никакой информации о том, как получить токен доступа из id_token или о каком-либо способе получения токена доступа из React во внешнем интерфейсе с помощью библиотеки Adal.js. Кто-нибудь прошел через это?

РЕДАКТИРОВАТЬ: единственная информация, которую я получаю от id_token ниже.

"userName":"[email protected]",
"profile": {
    "aud":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "auth_time":1544777683,
    "exp":1544793006,
    "iat":1544789406,
    "iss":"https://adfs.domain/adfs",
    "mfa_auth_time":1544777705,
    "nonce":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "sid":"x-x-x-xx-xxxxxxxxxx-xxxxxxxx-xxxxxxxxxx-xxxx",
    "sub":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "unique_name":"T1234\\bob",
    "upn":"[email protected]"
}

Ответы на вопрос(1)

Ваш ответ на вопрос