Примітка
Доступ до цієї сторінки потребує авторизації. Можна спробувати ввійти або змінити каталоги.
Доступ до цієї сторінки потребує авторизації. Можна спробувати змінити каталоги.
Ця функція дає змогу клієнту зробити клієнтські виклики на зовнішні API та захистити їх за допомогою неявного циклу надання OAuth. Він надає кінцеву точку для отримання захищених ідентифікаційних токенів. Ці маркери міститимуть відомості про особу користувача для майбутнього використання зовнішніми API для авторизації вказаного нижче неявного циклу надання OAuth 2.0. Ідентифікаційні дані користувача, який увійшов у систему, передаються в захищений спосіб для зовнішніх викликів AJAX, що допомагає розробникам передавати контекст автентифікації, а також захистити свої API.
Настроювані сертифікати
За допомогою центру адміністрування Power Platform передайте настроюваний сертифікат. Після передавання настроюваного сертифіката потрібно оновити параметри сайту, як показано нижче.
Перейдіть до програми керування порталом і в розділі Веб-сайт виберіть Параметри сайту.
Щоб створити новий параметр: натисніть Створити.
Щоб редагувати наявний параметр, виберіть CustomCertificates/ImplicitGrantflow
Укажіть значення:
- Ім'я: CustomCertificates/ImplicitGrantflow
- Веб-сайт: пов’язаний веб-сайт
- Значення: скопіюйте відбиток переданого настроюваного сертифіката на екрані "Керування настроюваним сертифікатом" і вставте його тут. Значення вказуватиме, який сертифікат використовуватиметься для неявного циклу надання дозволів.
Виберіть Зберегти та закрити.
Відомості про маркер кінцевої точки
Ви також можете отримати токен, зробивши post-запит на кінцеву точку <portal_url>/_services/auth/token
. Кінцева точка маркера підтримує такі параметри:
Параметр | Обов’язково? | Опис |
---|---|---|
client_id | No | Рядок, який передається під час виклику кінцевої точки. Вам потрібно переконатися, що ідентифікатор клієнта зареєстрований. В іншому разі відобразиться повідомлення про помилку. Ідентифікатор клієнта додається в заявах у маркері як aud і параметр appid та може використовуватися клієнтами, щоб перевірити, чи маркер повертається для їхньої програми.Максимальна довжина 36 символів. Підтримуються лише букви, цифри і дефіс. |
Стан | No | Значення, включені у запит, що також повертається в результатах маркера. Це може бути рядком будь-якого вмісту, які буде використовуватися. Зазвичай випадково згенеровані унікальні значення використовуються для запобігання зловмисних атак через перехресні запити на сайт. Максимальна довжина 20 символів. |
nonce | Ні | Значення рядка, надіслане клієнтом, що включене в отриманий маркер ідентифікатора як вимога. Клієнт потім може перевірити це значення для зменшення атак через повторне відтворення маркера. Максимальна довжина 20 символів. |
response_type | No | Цей параметр підтримується лише token як значення, що дозволяє вашому додатку негайно отримувати ідентифікаційний токен від кінцевої точки, не роблячи повторного запиту до кінцевої точки. |
Нотатка
Незважаючи на те, що client_id
state
параметри nonce
є необов’язковими, рекомендується використовувати їх, щоб переконатися, що ваші інтеграції безпечні.
Успішна відповідь
Кінцева точка маркера повертає стан і expires_in як заголовок відповіді та маркер в основній частині форми.
Помилка відповіді
Повідомлення про помилку у кінцевій точці маркера повертається як документ JSON з такими значеннями:
- Помилка ідентифікатора: унікальний ідентифікатор помилки.
- Повідомлення про помилку: певне повідомлення про помилку для визначення причини помилки автентифікації.
- Ідентифікатор зв'язування: GUID, який використовується для налагодження. Якщо увімкнено журнал діагностики, ідентифікатор зв'язування буде у журналі реєстрації помилок сервера.
- Позначка часу: Дата й час останнього генерування помилки.
Повідомлення про помилку відображається мовою за замовчуванням користувача, що увійшов у систему. Якщо користувач не ввійшов у систему, то на сторінці входу відображатиметься сторінка входу користувача в систему. Наприклад, результат помилки виглядає наступним чином:
{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd" }
Перевірте маркер Ідентифікатора
Просто отримати маркер ідентифікатора недостатньо для автентифікації користувача. Слід також перевірити підпис маркера та перевірити заяви у маркері відповідно до вимог до програми. Загальна кінцева точка маркера містить відкритий ключ сайту, який можна використовувати, щоб перевірити підпис маркера, наданого веб-сайтом. URL-адреса для відкритої кінцевої точки маркера є: <portal_url>/_services/auth/publickey
.
Увімкнення/вимкнення неявного потоку надання
За промовчанням неявний потік надання увімкнено. Якщо потрібно вимкнути неявний потік надання, встановіть значення місця Connector/ImplicitGrantFlowEnabled у False.
Якщо цей параметр сайту недоступний на веб-сайті, треба створити новий параметр сайту з відповідним значенням.
Настроювання дійсності маркера
За промовчанням цей маркер дійсний лише 15 хвилин. Якщо потрібно змінити час дії маркера, вкажіть параметр місця ImplicitGrantFlow/TokenExpirationTime у потрібне значення. Значення слід задати в секундах. Максимальне значення може бути 1 година, а мінімальне значення має бути 1 хвилина. Якщо вказано неправильне значенням (наприклад, букви, цифри), використовується значення за промовчанням 15 хвилин. Якщо задано значення більше, ніж максимальне значення або менше за мінімальне значення, максимальне та мінімальне значення використовуються відповідно за промовчанням.
Наприклад, щоб установити маркер терміну дії до 30 хвилин, вкажіть параметр місця ImplicitGrantFlow/TokenExpirationTime у значення 1800. Щоб установити маркер терміну дії до 1 години, вкажіть параметр місця ImplicitGrantFlow/TokenExpirationTime у значення 3600.
Зареєструйте ідентифікатор клієнта для неявного потоку надання
Ви повинні зареєструвати ідентифікатор клієнта на веб-сайті, для якого цей потік дозволений. Для реєстрації ідентифікатора клієнта, слід створити такі параметри сайту:
Настройка сайту | Value |
---|---|
ImplicitGrantFlow/RegisteredClientId | Дійсні значення ідентифікатора клієнта дозволені для цього сайту. Значення мають бути розділені крапкою з комою та можуть містити букви, цифри і дефіс. Максимальна довжина 36 символів. |
Зразок коду
Щоб почати використання неявного надання OAuth 2.0 з API Power Pages, можна скористатися наведеним нижче прикладом коду.
Використання маркера OAuth Power Pages із зовнішнім веб-API
Цей приклад – це проект на основі ASP.NET, що слугує для перевірки маркера ідентифікатора, виданого Power Pages. Повний приклад можна знайти тут: Використання токена Power Pages OAuth із зовнішнім Web API.
Приклад кінцевої точки маркера
У цьому прикладі показано, як за допомогою функції getAuthenticationToken отримати маркер ідентифікатора з використанням кінцевої точки маркера у Power Pages. Приклад можна знайти тут: Приклад кінцевої точки маркеракінцевої точки.