/// <summary> /// Generates a access token for apps in altinn apps or platform components needing to access other platform components. /// </summary> /// <param name="issuer">Can be a app or platform component</param> /// <param name="app">The application creating token (app or component)</param> /// <returns></returns> public string GenerateAccessToken(string issuer, string app) { try { SigningCredentials credentials = _signingKeysResolver.GetSigningCredentials(); return(GenerateAccessToken(issuer, app, credentials)); } catch (Exception ex) { _logger.LogWarning(ex, "Not able to generate access token"); return(null); } }
/// <summary> /// Generates a access token for apps in altinn apps or platform components needing to access other platform components. /// </summary> /// <param name="issuer">Can be a app or platform component</param> /// <param name="app">The application creating token (app or component)</param> /// <returns></returns> public string GenerateAccessToken(string issuer, string app) { if (_accessTokenSettings.DisableAccessTokenGeneration) { return(null); } try { List <Claim> claims = new List <Claim>(); if (!string.IsNullOrEmpty(app)) { claims.Add(new Claim(AccessTokenClaimTypes.App, app, ClaimValueTypes.String, issuer)); } ClaimsIdentity identity = new ClaimsIdentity("AccessToken"); identity.AddClaims(claims); ClaimsPrincipal principal = new ClaimsPrincipal(identity); JwtSecurityTokenHandler tokenHandler = new JwtSecurityTokenHandler(); SecurityTokenDescriptor tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(principal.Identity), Expires = DateTime.UtcNow.AddSeconds(_accessTokenSettings.TokenLifetimeInSeconds), SigningCredentials = _signingKeysResolver.GetSigningCredentials(), Audience = "platform.altinn.no", Issuer = issuer }; SecurityToken token = tokenHandler.CreateToken(tokenDescriptor); string tokenstring = tokenHandler.WriteToken(token); return(tokenstring); } catch (Exception ex) { _logger.LogWarning(ex, "Not able to generate access token"); } return(null); }
/// <summary> /// Generates a access token for apps in altinn apps or platform components needing to access other platform components. /// </summary> /// <param name="issuer">Can be a app or platform component</param> /// <param name="app">The application creating token (app or component)</param> /// <returns></returns> public string GenerateAccessToken(string issuer, string app) { return(GenerateAccessToken(issuer, app, _signingKeysResolver.GetSigningCredentials())); }