Вопросы по API Okta для запросов GetApp
В настоящее время я работаю над проектом с использованием платформы OKTA и API, но у меня есть несколько запросов.
При выполнении вызова GET для списка приложений, назначенных пользователю или списка приложений, назначенных пользователю, я получаю ответ для всех приложений, добавленных в экземпляр OKTA, а не для тех, которые относятся к текущему сеансу пользователей. Есть флаг, который я пропускаю?
При получении результирующего массива для списка приложений он возвращает все вспомогательные приложения Office 365 (почта, календарь и т. Д.) В качестве дочерних массивов в родительское приложение. Однако эти вложенные приложения в дочерних массивах не возвращаются со ссылками на изображения, как это делают другие стандартные приложения. Теперь, хотя я мог бы написать для них жесткий код, это не идеально. Любой совет по этому поводу?
Спасибо!
1 ответ
Есть два способа, которыми вы можете использовать список приложений, назначенных пользователю. Во-первых, это вызов на стороне сервера, который потребует токен API с правильными привилегиями. Во-вторых, это вызов браузера, когда у пользователя активная сессия с Okta. Вам понадобится имя пользователя, чтобы сделать второй звонок.
GET /api/v1/apps?filter=user.id+eq+"{{userId}}"
-> Со стороны сервераGET /api/v1/users/{{username}}/appLinks
-> Из браузера /JavaScript
Чтобы проверить второй вызов, вставьте URL-адрес в браузер во время сеанса, вошедшего в систему, чтобы убедиться, что вы получите желаемый результат. Вам нужно будет отправить withCredentials: true
в xhrFields
если делать вызов AJAX. Например:
$.ajax({
type: "GET",
url: "https://example.okta.com/api/v1/users/{{username}}/appLink",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
xhrFields: {
withCredentials: true
},
cache: false,
success: function(data, status)
{
},
error: function(data, status)
{
}
});
Оба вызова вернут приложения, назначенные пользователю.