Создайте токен, который можно проверить по ключу подписи RSA в Azure. - PullRequest
0 голосов
/ 17 октября 2019

Я использую пользовательскую политику Azure B2C, в которой я хочу отправить пользователю ссылку с приглашением с токеном JWT, содержащим необходимые данные.

Мне нужно создать токен JWT в JAVA. Используя библиотеку jjwt, я успешно создал токен с использованием HS256, но позже обнаружил, что мне потребуется подписать токен с использованием RSA256. У меня есть ключ политики TokenSigningKeyContainer в Azure AD B2C с полями ниже

{
    "metadata": {
        "tenantID": "<tenant>.onmicrosoft.com",
        "storageKeyId": "B2C_1A_TokenSigningKeyContainer",
        "updatedUtc": "10/16/2019 2:12:11 PM"
    },
    "keys": [
        {
            "kid": "<key_id>",
            "use": "sig",
            "key_ops": [
                "sign"
            ],
            "kty": "RSA",
            "e": "<>",
            "n": "<n_value>"
        }
    ]
}

Это открытый ключ для проверки сгенерированного токена, отправленного по ссылке приглашения.

Что яНужно знать, как я могу получить необходимые данные для закрытого ключа, чтобы подписать токен JWT?

1 Ответ

0 голосов
/ 17 октября 2019

AzureAD B2C не раскрывает закрытый ключ после его загрузки. Используя apis, вы можете получить доступ только к метаданным, используя общеизвестные точки обнаружения метаданных, вы можете получить открытые ключи.

Вам необходимо сохранить сертификат с зашифрованным хранилищем данных (например, хранилище ключей Azure) и использоватьэто при подписании токена. Согласно примеру, вам не нужно загружать его в AADB2C.

...