Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Стандартная версия 2 | Премиум | Премиум версия 2
Делегирование позволяет веб-сайту принадлежать пользовательским данным и выполнять настраиваемую проверку для пользователей портала разработчика. С помощью делегирования вы можете обрабатывать вход и регистрацию разработчиков (и связанные операции управления учетными записями) и подписку на продукт с помощью существующего веб-сайта, а не встроенных функций портала разработчика.
Делегирование входа и регистрации разработчика
Чтобы делегировать вход и регистрацию разработчика и параметры управления учетными записями разработчика на существующий веб-сайт, создайте специальную конечную точку делегирования на сайте. Эта специальная делегация выступает в качестве точки входа для всех запросов на вход и регистрацию, а также связанных запросов, инициированных на портале разработчиков управления API.
Последний рабочий процесс состоит из следующих шагов:
- Разработчик щелкает ссылку на вход или регистрацию или ссылку управления учетными записями на портале разработчика службы "Управление API".
- Браузер перенаправляется на конечную точку делегирования.
- Конечная точка делегирования перенаправляет пользователя или предоставляет ему пользовательский интерфейс для входа в систему, регистрации или управления учетной записью.
- После завершения операции пользователь перенаправляется обратно на портал разработчика управления API в то место, где он остановился.
Настройка управления API для маршрутизации запросов через конечную точку делегирования
На портале Azure откройте экземпляр API Management.
В боковом меню на портале разработчика выберите "Делегирование".
Установите флажок включить делегирование.
Установите флажок, чтобы включить вход делегата и регистрироваться.
Выберите URL-адрес для конечной точки специального делегирования и введите его в поле конечной точки службы делегирования .
В ключах делегирования:
- Создайте первичный ключ проверки или дополнительный ключ проверки (или оба), которые будут использоваться вашей службой делегирования для проверки запросов из службы API Management. Выберите многоточие (...) рядом с одним ключом и нажмите кнопку "Повторно создать".
- Выберите многоточие (...) рядом с одним ключом и нажмите кнопку "Копировать". Скопируйте ключи в безопасное расположение и используйте их при настройке службы делегирования.
Нажмите кнопку "Сохранить".
Подсказка
Вы можете сменить и повторно создать ключи проверки делегирования в любое время. Ротация заменяет первичный ключ вторичным и заново генерирует вторичный ключ. После сохранения ключей обязательно обновите службу делегирования, чтобы использовать новые ключи.
Создание конечной точки делегирования
Чтобы создать новую конечную точку делегирования для реализации на сайте, выполните следующие действия.
Примите запрос в следующей форме, в зависимости от операции:
http://www.yourwebsite.com/apimdelegation?operation={operation}& returnUrl={URL-адрес исходной страницы}&salt={string}&sig={string}
-или-
http://www.yourwebsite.com/apimdelegation?operation={operation}& userId={идентификатор пользователя учетной записи}&salt={string}&sig={string}
Параметры запроса:
Параметр Описание операция Определяет тип запроса на делегирование. Доступные операции: SignIn, SignUp, ChangePassword, ChangeProfile, CloseAccount, SignOut. returnUrl В signIn или SignUp URL-адрес, в котором пользователь щелкнул ссылку для входа или регистрации. userId На ChangePassword, ChangeProfile, CloseAccount и SignOut укажите идентификатор пользователя учетной записи, которой вы хотите управлять. соль Специальная строка случайных данных, используемая для вычисления хэша безопасности. sig Вычисленный хэш безопасности, который будет сравниваться с вашим вычисленным хэшем. Убедитесь, что запрос поступает из службы управления Azure API (это необязательный шаг, но мы настоятельно рекомендуем выполнять его для обеспечения безопасности).
Вычислите хэш HMAC-SHA512 строки на основе параметров запроса returnUrl (или UserId) и salt. Например, проверьте наш пример кода.
Для signIn и SignUp:
HMAC(salt + '\n' + returnUrl)Для ChangePassword, ChangeProfile, CloseAccount и SignOut:
HMAC(salt + '\n' + userId)Сравните вычисленный выше хэш со значением параметра запроса sig. Если два хэша совпадают, перейдите к следующему шагу. В противном случае отклоните запрос.
Убедитесь, что вы получаете запрос на вход или регистрацию или операцию управления учетными записями.
Представьте пользователю интерфейс для входа в систему, регистрации или управления учетной записью.
После завершения операции на вашей стороне управляйте пользователем в системе API Management. Например, если пользователь регистрируется, создайте соответствующую учетную запись для них в Управление API.
- Создание пользователя с помощью интерфейса API Management REST API.
- Задайте для идентификатора пользователя то же значение, что и в хранилище пользователей, или новый легко отслеживаемый идентификатор.
После входа или регистрации, когда пользователь успешно прошел проверку подлинности:
Запросите общий маркер доступа через REST API службы API Management.
Добавьте параметр запроса returnUrl к URL-адресу SSO, который вы получили из вызова API выше. Например:
https://contoso.developer.azure-api.net/signin-sso?token=<URL-encoded token>&returnUrl=%2Freturn%2FurlПеренаправьте пользователя на вышеупомянутый URL-адрес.
Делегирование подписки на продукт
Процедура делегирования подписки на продукт похожа на процедуру делегирования входа или регистрации пользователя. Последний рабочий процесс состоит из следующих шагов:
- Разработчик выбирает продукт на портале разработчика управления API и нажимает кнопку "Подписаться ".
- Браузер перенаправляется на конечную точку делегирования.
- Конечная точка делегирования выполняет заданные вами обязательные шаги для подписки на продукт. К этим шагам могут относиться:
- перенаправление на другую страницу для запроса сведений о выставлении счетов;
- Задавая дополнительные вопросы.
- сохранение информации без вмешательства пользователя.
Включите функциональность управления API
На странице "Делегирование" установите флажок "Включить делегирование", а затем включите подписку на продукт делегата.
Создание конечной точки делегирования
Чтобы создать конечную точку делегирования для сайта, выполните следующие действия.
В зависимости от операции получите запрос в следующей форме.
http://www.yourwebsite.com/apimdelegation?operation={operation}&productId={продукт для подписки}&userId={пользователь, делающий запрос}&salt={string}&sig={string}
-или-
http://www.yourwebsite.com/apimdelegation?operation={operation}& subscriptionId={подписка для управления}&salt={string}&sig={string}
Параметры запроса:
Параметр Описание операция Определяет тип запроса на делегирование. Допустимые варианты запроса подписки на продукт: - Subscribe: запрос на подписку пользователя на заданный продукт с предоставленным идентификатором (см. ниже).
- Отмена подписки: запрос на отмену подписки пользователя из продукта
productId Для варианта Subscribe значение productId — идентификатор продукта, подписку на который запрашивает пользователь. userId Для варианта Subscribe — идентификатор запрашивающего пользователя. subscriptionId При отмене подписки идентификатор подписки продукта. соль Специальная строка случайных данных, используемая для вычисления хэша безопасности. sig Вычисленный хэш безопасности, который будет сравниваться с вашим вычисленным хэшем. Убедитесь, что запрос поступает из службы управления API Azure (необязательно, но настоятельно рекомендуется для обеспечения безопасности).
Вычислите HMAC-SHA512 для строки на основе productId и userId (или subscriptionId) и параметра запроса salt.
Для подписки:
HMAC(salt + '\n' + productId + '\n' + userId)Для отмены подписки:
HMAC(salt + '\n' + subscriptionId)Сравните вычисленный выше хэш со значением параметра запроса sig. Если два хэша совпадают, перейдите к следующему шагу. В противном случае отклоните запрос.
Процесс обработки подписки на продукт с учетом типа операции, запрашиваемой в параметре operation, например выставление счета, дополнительные вопросы и т. д.
После завершения операции с вашей стороны управляйте подпиской в системе управления API. Например, подпишите пользователя на продукт Управления API, вызвав REST API для подписок.
Пример кода
В этих примерах кода показано, как создать хэш returnUrl параметра запроса при делегировании входа пользователя или регистрации. Это returnUrl URL-адрес страницы, по которой пользователь щелкнул ссылку для входа или регистрации.
- Возьмите ключ проверки делегирования, заданный на экране делегирования на портале Azure.
- Создайте HMAC, который проверяет подпись и удостоверяет действительность переданного
returnUrl.
При незначительном изменении можно использовать тот же код для вычисления других хэшей, таких как productId и userId при делегировании подписки на продукт.
Код C# для создания хэша returnUrl
using System.Security.Cryptography;
string key = "delegation validation key";
string returnUrl = "returnUrl query parameter";
string salt = "salt query parameter";
string signature;
using (var encoder = new HMACSHA512(Convert.FromBase64String(key)))
{
signature = Convert.ToBase64String(encoder.ComputeHash(Encoding.UTF8.GetBytes(salt + "\n" + returnUrl)));
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
}
Node.js код для создания хэша returnUrl
var crypto = require('crypto');
var key = 'delegation validation key';
var returnUrl = 'returnUrl query parameter';
var salt = 'salt query parameter';
var hmac = crypto.createHmac('sha512', new Buffer(key, 'base64'));
var digest = hmac.update(salt + '\n' + returnUrl).digest();
// change to (salt + "\n" + productId + "\n" + userId) when delegating product subscription
// compare signature to sig query parameter
var signature = digest.toString('base64');
Внимание
Чтобы изменения делегирования вступили в силу, вам нужно заново опубликовать портал разработчика.
Связанный контент
- Дополнительные сведения о портале разработчика
- Проверка подлинности с помощью идентификатора Microsoft Entra иливнешнего идентификатора Microsoft Entra
- У вас возникли другие вопросы о портале разработчика? Найдите ответы в вопросах и ответах.