Как добавить пользовательское утверждение в токен доступа Azure AD (JWT) во время запроса токена? - PullRequest
0 голосов
/ 31 января 2019

Текущая версия JWT из Azure AD имеет следующую структуру:

JWT AzureAD:

{
  "aud": "a5aa555a-aa55-5aaa-5a55-555a5aa55a5a",
  "iss": "https://sts.windows.net/a5aa555a-aa55-5aaa-5a55-555a5aa55a5a/",
  "iat": 1547084136,
  "nbf": 1547084136,
  "exp": 1547089036,
  "acr": "1",
  "aio": "aaaaaaaaaaaaa==",
  "appid": "a5aa555a-aa55-5aaa-5a55-555a5aa55a5a",
  "appidacr": "1",
  "email": "bob@bob.com",
  "idp": "https://sts.windows.net/a5aa555a-aa55-5aaa-5a55-555a5aa55a5a/",
  "ipaddr": "192.168.1.1",
  "name": "Bob Bob",
  "oid": "a5aa555a-aa55-5aaa-5a55-555a5aa55a5a",
  "roles": [],
  "scp": "Directory.AccessAsUser.All User.Read",
  "sub": "a5aa555a-aa55-5aaa-5a55-555a5aa55a5a",
  "tid": "a5aa555a-aa55-5aaa-5a55-555a5aa55a5a",
  "unique_name": "bob@bob.com",
  "uti": "kjkugiugi",
  "ver": "1.0"
}

Я хочу добавить несколько дополнительных требований, таких как departmentId, someOtherCustomInfo,Я хочу сделать это в моем запросе токена, но не иметь этого пресета.Как мне это сделать?

В настоящее время я использую ADAL4J для получения токена:

//Represents the authority we are asking to provide tokens
AuthenticationContext context = new AuthenticationContext(
    authority,
    true,
    Executors.newFixedThreadPool( numInPool )
);

Future<AuthenticationResult> future = context
    .acquireTokenByAuthorizationCode(
        authCode,
        new URI( redirectUri ),
        credentials,
        resource,
        null
    );

AuthenticationResult authResult = future.get();

//The token
String token = authResult.getAccessToken();

1 Ответ

0 голосов
/ 31 января 2019

Токен JWT, излучаемый Azure AD (независимо от того, является ли он токеном доступа или токеном идентификатора), не содержит много полезной информации, кроме адреса электронной почты и некоторых других полей.

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

Мы можем использовать функцию сопоставления пользовательских утверждений для того же. Для получения дополнительной информации перейдите по ссылке ниже

Как: настроить утверждения, выдаваемые в токенах для конкретного приложения в арендаторе

...