При входе в Auth0:При обновлении id_token через refresh_token в Auth0, JTI (JWT ID) не в новом id_token
POST https://my.auth0.com/oauth/ro
{
"client_id": "<client-id>",
"username": "[email protected]",
"password": "••••••••",
"connection": "<auth0-connection>",
"grant_type": "password",
"scope": "openid offline_access jti email",
"device": "<device-id>"
}
// Response
{
"refresh_token": "<refresh-token>",
"id_token": "<id-token>",
"access_token": "<access-token>",
"token_type": "bearer"
}
// id_token JWT payload
{
"jti": "3d4c5e97-3543-4c53-b46e-3aa965cd5a34",
"email": "[email protected]",
"email_verified": false,
"iss": "https://my.auth0.com/",
"sub": "auth0|<id>",
"aud": "<aud>",
"exp": 1481766419,
"iat": 1481730461
}
если я указываю jti
в моей компетенции, возвращаемый id_token
, который является JWT, будет содержат jti
. Наличие jti
в JWT рекомендуется Auth0. jti
s однозначно идентифицирует JWT и может использоваться для таких вещей, как черные списки JWT.
По некоторым причинам, хотя, если я пытаюсь получить новый id_token
используя токен обновления:
POST https://my.auth0.com/delegation
{
"client_id": "<client-id>",
"grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
"refresh_token": "<refresh-token>",
"api_type": "app",
"scope": "openid offline_access jti email",
"device": "<device-id>"
}
// Response
{
"token_type": "Bearer",
"expires_in": 35958,
"id_token": "<id-token>"
}
// id_token JWT payload
{
"email": "[email protected]",
"email_verified": false,
"iss": "https://my.auth0.com/",
"sub": "auth0|<id>",
"aud": "<aud>",
"exp": 1481766678,
"iat": 1481730720,
"azp": "<azp>"
}
, даже если я указываю jti
в моей компетенции, то id_token
возвращенное не содержит jti
.
Это ошибка? Пожалуйста помоги.
спасибо! Вы были правы, было правило, устанавливающее jti. Какую конечную точку я должен использовать, чтобы получить новый id_token, используя мой refresh_token? Я попробовал https://dev-innit.auth0.com/oauth/token с {grant_type: "refresh_token", refresh_token:}, и я получаю unsupported_grant_type. Я предпочел бы использовать правильную конечную точку, кроме создания собственного свойства идентификатора JWT. –
enamrik
Чтобы использовать '/ oauth/token' с типом гранта' refresh_token', вам нужно будет включить авторизацию * OAuth 2.0 API * в расширенных настройках учетной записи, а затем также включить флажок * OIDC Conformant * на клиенте уровень приложения. Однако, несмотря на то, что я не верю, что правила в настоящее время поддерживаются при обновлении через конечную точку маркера, чтобы вы не смогли добавить претензию к значению. Пока что пользовательское имя заявки и использование конечной точки делегирования - это то, что доступно. –
Спасибо, это было действительно ясно и прямо. Я перейду с конечной точкой '/ делегирования, а затем'/oauth/token' будет поддерживать пользовательские претензии. – enamrik