Как добавить необязательные / настраиваемые утверждения пользователя в токен AzureAD? - PullRequest
0 голосов
/ 27 января 2020

У нас есть приложение VueJS, которое использует msal (AzureAD) для аутентификации пользователей. Во время аутентификации мы обращаемся к нашему бэкэнду, чтобы извлечь дополнительные пользовательские данные, которые доступны только в нашей базе данных. Затем мы хотели бы включить эти данные в токен AzureAD Bearer, чтобы мы могли использовать JWT для их декодирования и понять, следует ли разрешить вошедшему в систему пользователю перемещаться / использовать определенные части приложения, т.е. есть пользователи, которые даже вошли в систему. все равно не следует использовать некоторые функции, например, HR должен видеть все, но пользователь, не входящий в группу HR, не должен.

Примером декодирования будет следующий, который вернет полномочия вошедшего в систему пользователя однако на данный момент req.headers.authorization не включает psref, и мы хотели бы как-то добавить это.

  self.GetAuthority = async (req, h) => {
    const mfjobs = ...
    // const accessor = self.DecodeToken(req.headers.authorization).payload.psref
    const accessor = self.DecodeToken(req.headers.authorization)
    console.log(accessor)
    const sql = ''
    const [data] = await mfjobs.query(sql, accessor)
    const Authority = []
    data.forEach(function (auth) {
      Authority.push(auth.AuthKey)
    })
    return Authority
  }

Теперь вопрос заключается в том, как можно расширить токен AzureAD Bearer данными из наша база данных? Любая помощь будет высоко оценена.

...