Just share what worked for me.
To get the 1st goal, you can use the NuGet package called Thinktecture.IdentityModel.Client ( link ) (a package from the creators of IdentityServer, which is incredible itself). An example showing the basic use is given below.
var client = new OAuth2Client(new Uri(AuthorizeEndpointUrl)); string url = client.CreateAuthorizeUrl( clientId: ClientId, redirectUri: RedirectUri, responseType: "id_token", responseMode: "form_post", nonce: Guid.NewGuid().ToString(), additionalValues: additionalValues);
Regarding parsing and validation of the JWT received from the OIDC Identity Provider, reference System.IdentityModel.Tokens.Jwt ( 
Eugene D. Gubenkov
source share