Проверка токена доступа AZURE на сервере ресурсов

Плохая новость заключается в том, что кажется, что plot_surface() просто игнорирует маски. Фактически существует открытый вопрос об этом .

Однако здесь они указывают на обходное решение, что, хотя оно далеко не идеально, оно может позволить вам получить некоторые приемлемые результаты. Основная проблема заключается в том, что значения NaN не будут отображаться, поэтому вам нужно «замаскировать» значения, которые вы не хотите отображать, как np.nan.

Ваш примерный код станет чем-то вроде this:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np


Z = np.array([
    [ 1, 1, 1, 1, 1, ],
    [ 1, 1, 1, 1, 1, ],
    [ 1, 1, 1, 1, 1, ],
    [ 1, 1, 1, 1, 1, ],
    [ 1, 1, 1, 1, 1, ],
    ])

x, y = Z.shape

xs = np.arange(x)
ys = np.arange(y)
X, Y = np.meshgrid(xs, ys)


R = np.where(X>=Y, Z, np.nan)

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, R, rstride=1, linewidth=0)

fig.show()

* Мне пришлось добавить аргумент rstride=1 к вызову plot_surface; в противном случае я получаю ошибку сегментации ... o_O

И вот результат:

3d matplotlib surface with masked values [/g2]

0
задан Alex Man 18 February 2019 в 18:41
поделиться

1 ответ

Проверка токена состоит из серии шагов, и если какой-либо из них завершится неудачно, запрос должен быть отклонен. Вот список всех проверок, которые должен выполнить ваш API:

• Проверьте, правильно ли сформирован JWT

• Проверьте подпись

• Подтвердите стандартные утверждения [117 ]

• Проверьте разрешения приложения (области действия)

Для реализации пользовательской проверки вам необходимо выполнить следующее:

1) Разобрать Jwt

Чтобы выполнить разбор JWT вы можете либо вручную выполнить все проверки, как описано в спецификации RFC 7519> 7.2 Проверка JWT, либо использовать одну из библиотек, перечисленных в разделе «Библиотеки для подписи / проверки токенов» в JWT.io.

Например, если ваш API реализован с Node.js и вы хотите использовать библиотеку node-jsonwebtoken, то вы бы вызвали метод jwt.verify (). Если синтаксический анализ завершится неудачно, библиотека вернет ошибку JsonWebTokenError с сообщением jwt неверно сформировано.

2) Проверка алгоритма подписи

API должен проверить, соответствует ли алгоритм, указанный в заголовке JWT (свойство alg), ожидаемому API. Если нет, токен считается недействительным, и запрос должен быть отклонен.

Чтобы проверить, соответствует ли подпись ожиданиям API, необходимо декодировать JWT и извлечь свойство alg заголовка JWT.

В качестве альтернативы, вы можете использовать одну из библиотек, перечисленных в разделе «Библиотеки для подписи / проверки токенов» JWT.io .

3) Проверка утверждений

Как только API проверяет подпись токена, следующим шагом является проверка стандартных утверждений полезной нагрузки токена. Необходимо выполнить следующие проверки:

• Истечение срока действия токена: текущая дата / время должны предшествовать дате / времени истечения срока, указанному в заявке на получение опыта (которая является меткой времени Unix). Если нет, запрос должен быть отклонен.

• Эмитент токена: заявка «Iss» обозначает эмитента JWT. Значение должно соответствовать значению, настроенному в вашем API. Для JWT, выпущенных Auth0, iss содержит ваш домен Auth0 с префиксом https: // и суффиксом /: https: // YOUR_DOMAIN / . Если вы используете функцию пользовательских доменов, вместо этого значение будет иметь следующий формат: https: ///.

• Аудитория токенов: утверждение Audit идентифицирует получателей, для которых предназначен JWT. Для JWT, выпущенных Auth0, Audholds содержит уникальный идентификатор целевого API (поле «Идентификатор» в настройках вашего API). Если API не является целевой аудиторией JWT, он должен отклонить запрос.

Вот библиотека JWT для JAVA, где вы можете использовать метод проверки (токен) для проверки.

https://github.com/auth0/java-jwt

0
ответ дан Mohit Verma - MSFT 18 February 2019 в 18:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: