tutorial net ejemplos asp asp.net-core openid-connect identityserver4

asp.net-core - net - identity server 4 ejemplos



¿Cómo obtener id_token junto con access_token desde identityserver4 a través de "contraseña" grant_type? (1)

Estoy intentando crear una aplicación de proveedor de identidad usando identityserver4; Actualmente, estoy usando el flujo de "Credenciales de contraseña del propietario del recurso" y devuelve access_token y refresh_token del punto final del token.

Fragmento de código para llamar a TokenEndpoint desde el cliente

var tokenClient = new TokenClient(<TokenEndpoint>, <ClientId>, <ClientSecret>); var tokenResponse = await tokenClient.RequestResourceOwnerPasswordAsync(<UserName>, <password>, <Scopes>);

Mi pregunta es, ¿cómo obtener "id_token" junto con "access_token" y "refresh_token" usando el mismo flujo de "Credenciales de contraseña del propietario del recurso"?


¿Cómo obtener "id_token" junto con "access_token" y "refresh_token" usando el mismo flujo de "Credenciales de contraseña del propietario del recurso"?

Tu no

En IdentityServer4, el flujo de credenciales de contraseña del propietario del recurso proporciona solo tokens de acceso. Si también desea un token de identificación, utilice el flujo de código de autorización, el flujo de código implícito o el flujo híbrido.

access_token id_token refresh_token Resource Owner Password Credentials yes - yes Authorization Code yes yes yes Implicit Flow yes yes -

Como quiere los tres tipos de tokens y parece que está utilizando un código del lado del servidor, el flujo del Código de autorización se adapta mejor. Algunos tipos de flujo híbrido también funcionarán para usted.

De los documentos :

La concesión de contraseña de propietario de recurso de OAuth 2.0 permite que un cliente envíe el nombre de usuario y la contraseña al servicio de token y obtenga un token de acceso que represente a ese usuario.

De un problema de GitHub:

OpenID Connect no especifica el flujo del propietario del recurso, solo los inicios de sesión interactivos en el servidor de autorización (como el código o el flujo implícito). Entonces [en otras palabras,] no token de identidad, solo tokens de acceso.