/// <summary>CreateByRsa</summary> /// <param name="iss">client_id</param> /// <param name="aud">Token2 EndPointのuri</param> /// <param name="forExp">DateTimeOffset</param> /// <param name="scopes">scopes</param> /// <param name="rsaPrivateKey">RS256用のRSAParameters秘密鍵</param> /// <returns>JwtAssertion</returns> public static string CreateByRsa( string iss, string aud, TimeSpan forExp, string scopes, RSAParameters rsaPrivateKey) { string json = ""; //string jws = ""; #region ClaimSetの生成 Dictionary <string, object> jwtAssertionClaimSet = new Dictionary <string, object>(); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.iss, iss); // client_id jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.aud, aud); // Token EndPointのuri。 jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.exp, CmnJwtToken.CreateExpClaim(forExp)); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.iat, CmnJwtToken.CreateIatClaim()); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.jti, CmnJwtToken.CreateJitClaim()); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.scope, scopes); // scopes json = JsonConvert.SerializeObject(jwtAssertionClaimSet); #endregion #region JWT化 JWS_RS256_Param jwtRS256 = new JWS_RS256_Param(rsaPrivateKey); return(jwtRS256.Create(json)); #endregion }
/// <summary>CreateByECDsa</summary> /// <param name="iss">client_id</param> /// <param name="aud">Token2 EndPointのuri</param> /// <param name="forExp">DateTimeOffset</param> /// <param name="scopes">scopes</param> /// <param name="ecdsaX509FilePath">ES256用の X.509秘密鍵 の File Path</param> /// <param name="ecdsaX509Password">ES256用の X.509秘密鍵 の Password</param> /// <returns>JwtAssertion</returns> public static string CreateByECDsa( string iss, string aud, TimeSpan forExp, string scopes, string ecdsaX509FilePath, string ecdsaX509Password) ///// <param name="eccPrivateKey">ES256用のECParameters秘密鍵</param> //ECParameters ecPrivateKey) // ECDsa.ExportParameters(true)が動かねぇ。 { string json = ""; //string jws = ""; #region ClaimSetの生成 Dictionary <string, object> jwtAssertionClaimSet = new Dictionary <string, object>(); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.iss, iss); // client_id jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.aud, aud); // Token EndPointのuri。 jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.exp, CmnJwtToken.CreateExpClaim(forExp)); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.iat, CmnJwtToken.CreateIatClaim()); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.jti, CmnJwtToken.CreateJitClaim()); jwtAssertionClaimSet.Add(OAuth2AndOIDCConst.scope, scopes); // scopes json = JsonConvert.SerializeObject(jwtAssertionClaimSet); #endregion #region JWT化 JWS_ES256_X509 jwtES256 = new JWS_ES256_X509(ecdsaX509FilePath, ecdsaX509Password); return(jwtES256.Create(json)); #endregion }