/ / Identity Server aggiunge il reclamo del ruolo a access_token - .net-core, identityserver4

Identity Server aggiunge la rivendicazione del ruolo a access_token - .net-core, identityserver4

Sto usando Identity Server 4 con il proprietario di risorsescenario. Sto ottenendo con successo il token di accesso. Tuttavia, mi piacerebbe avere anche le affermazioni. L'ho aggiunto con dichiarazioni di ruolo sull'implementazione del server di identità. Ma non lo vedo codificato nel mio token. Questa è la mia risorsa Api:

    {
"_id": "SomeAPI",
"Enabled": true,
"DisplayName": "Some APII",
"Description": null,
"ApiSecrets": [],
"UserClaims": [
"role
],
"Scopes": [
{
"Name": "SomeAPI",
"DisplayName": "Some API,
"Description": null,
"Required": false,
"Emphasize": false,
"ShowInDiscoveryDocument": true,
"UserClaims": [
"role"
]
}
]
}

Questo è il mio cliente in questione:

  {
"Enabled": true,
"ClientSecrets": [
{
"Description": null,
"Value": "-----",
"Expiration": ----,
"Type": "SharedSecret"
}
],
"ClientName": null,
"ClientUri": null,
"LogoUri": null,
"RequireConsent": true,
"AllowRememberConsent": true,
"AllowOfflineAccess": true,
"AccessTokenLifetime": 10000.0,
"AllowedGrantTypes": [
"password"
],
"AllowedScopes": [
"SomeAPI"
],
"Claims": [],
"AllowedCorsOrigins": []
}

Ecco come ottengo il token:

 var result = await client.RequestResourceOwnerPasswordAsync(userName, password);

modificare: Ho aggiornato la chiamata in base alla risposta proposta:

var result = await client.RequestResourceOwnerPasswordAsync(userName, password, "SomeAPI")

Ho anche aggiornato il client con l'ambito consentito di "ruoli". Ora sto ottenendo i ruoli richiesti ma non annidato sotto rivendicazioni, ma piuttosto come una matrice di questo tipo:

"http://schemas.microsoft.com/ws/2008/06/identity/claims/role": [
"role1",
"role2"

],

risposte:

0 per risposta № 1

Dovrai includere l'ambito:

var result = await client.RequestResourceOwnerPasswordAsync(userName, password, "SomeAPI");