Сервер Получить токен sh с токеном доступа, используя WSO2 Identity Server. - PullRequest
0 голосов
/ 06 февраля 2020

Я делаю следующий вызов curl:

curl -k -d "grant_type=client_credentials" -H "Authorization: Basic <Encoded ID & Secret>)" https://MyIDPUrl/token

Я получаю ответ:

{
    "access_token":"MyAccessTokenHere",
    "scope":"am_application_scope default",
    "token_type":"Bearer",
    "expires_in":3212
}

Все выглядит нормально, за исключением того, что я не получаю refre sh жетон. Я попытался добавить &scope=openid в URL, и это добавило id_token к ответу, но не refre sh token.

Как я могу получить refre sh token с WSO2?

Ответы [ 2 ]

4 голосов
/ 06 февраля 2020

В спецификации указывается, что тип предоставления client_credentials не возвращает токен refre sh.

Это имеет смысл, поскольку смысл токена refre sh состоит в том, чтобы не мешать пользователю снова войти в систему. Но с помощью client_credentials вы можете просто go получить другой токен доступа.

source

2 голосов
/ 07 февраля 2020

Да, для типа предоставления client_credentials использование маркера refre sh не используется. Но если вы хотите получить токен refre sh, вы можете разрешить получение токена refre sh, изменив конфигурацию в удостоверении. xml (IS_Home / repository / conf / identity) В следующем разделе

        <SupportedGrantType>
            <GrantTypeName>client_credentials</GrantTypeName>
            <GrantTypeHandlerImplClass>org.wso2.carbon.identity.oauth2.token.handlers.grant.ClientCredentialsGrantHandler</GrantTypeHandlerImplClass>
            <IsRefreshTokenAllowed>false</IsRefreshTokenAllowed>
            <IdTokenAllowed>false</IdTokenAllowed>
        </SupportedGrantType>

если вы измените значение IsRefreshTokenAllowed на true, он должен вернуть refre sh токен. (Вам необходимо перезагрузить сервер после изменения значения конфигурации). По умолчанию это значение false, так как в этом типе гранта нет участия пользователя. Refre sh token не используется.

...