プロダクト概要
アプリケーションダッシュボードの紹介


cloudapp_cam_roleを取得します。CAMロールを使用して一時キーを申請し、クラウドAPIを呼び出します。詳細はドキュメントクラウドAPIの呼び出しをご参照ください。{"Response": {"RequestId": "9026a0fe-992e-4015-a5d5-95a322333853","License": {"ActivationDate": "2024-12-10T09:46:58+08:00","AuthorizedCloudappId": "cloudapp-2gwvcfb1","AuthorizedCloudappRoleId": "0","AuthorizedSpecification": [{"ParamKey": "version",「ParamKeyName」: 「バージョン」"ParamValue": "basic","ParamValueName": "基本版"},{"ParamKey": "scale","ParamKeyName": "仕様","ParamValue": "single","ParamValueName": "単一スレッド"}],"AuthorizedUserUin": "100000888888","BillingMode": 1,"ExpirationDate": "2025-01-10T09:46:58+08:00","IssueDate": "2024-12-10T09:46:46+08:00","LicenseId": "100000888888:pkg-la39nlb7:cloudapp-2gwvcfb1:6006","LicenseMode": "Subscription","LicenseStatus": "Active","LicenseType": "Standard","LifeSpan": 1,"LifeSpanUnit": "M","ProviderId": 100000099,"SoftwarePackageId": "pkg-la39nlb7"},"Signature": "T2mbjUr8Q8I0nekShP7WJs7MvUq8Ovv0lrWkn5PEIPVlFYWpaRJOWBviQstCUaotFE89QQdbDEDaP9XVXtPfFt47Zp/BN+qaajTNdUN/HL8IAsC15OsDjGtXgdezPcRwDNx0SfaWBmBeJuB2xgFxvF7/tKcWKEltAf+tE4/SPMcIFDQPOqQD1gpdC0HM3nSL92uP+yN6jCRGbTSZXN8L5RAC64f9XfSuFIIhDGQpKbXDalmrxxUHMRG6Qcs5TtQw7vdQvpwRY1NeRWC49g97ZZaboveK0skG1ym3wfk0Z8slkEzlVWbLmYe4VjJpdMpQv29XPrCUHc3tPJ4beb9FiJ1N4kzUflmr6bo75zRm4XSs8NIjN/jONPArt+6dTua9MITNtqP4nqKtwS6lw3GBZeTljb+wz5FlV1tKYoYMaBJSZyAu27mT7nwt1HJ34XLOw/yvgeGmqNDe6kAqxJ9tg/kEmw6TZP8UiKeWITsRCYXkdsyfeCnacVyiWFcsonOJoG4+wujnjroXEMgymw/CiddQD13PH4sLscpqgxlvXntVf2ljYP0ryFnO/bcq5I3L6FIVtOhpb6yjdWAl1A5FO9KG7jNT9aD11f38G7t1A4PIi2OdBQpcOLfYO3fqoimbAqiWVy8ww9N63ejnN+7ioJ/km2zBrAejFRv7Qes+p6c=","Timestamp": "2025-01-09T10:28:57+08:00"}}
package.yamlに以下の形式でspecs仕様設定を追加することにより、アプリケーション開発版のインストール時に仕様情報と権限付与モードを選択してLicenseを作成することが可能になります。# <package.yaml># アプリケーションパッケージ仕様の宣言specs:- key: versionname: バージョンenum:- value: standardname: 標準版- value: advancedname: アドバンスト版- value: enterprisename: エンタープライズ版- key: cluster_modename: クラスタ・モードenum:- value: singlename:シングルクラスタ- value: doublename: デュアルクラスタ- value: triplename: 3クラスタ
-----BEGIN PUBLIC KEY-----MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA5EQJv0v0f1hrB7NIGwXihFmw+ugrJi7gnmOqaiYp7oFrzf4RSJ3DPr4K01F+CrjTdCPghDLq4fsKVxxHAjNjnbstbVlHZEVOfzQ4umeocJpxWFuyKyGwHv+obnEZ/4689fxVpTbG3IbUTGn1TRJs9s3xM8nFd6LLAoh1Hhrdf2D4mLRToLvtRVat1l8fH3gsM+RoG4L4h+3hghn4bpyAna2MBFDzvmBeVGUVzqRjSvUaexd+Bo1wTsllAdqjP6MTlAAWGmIAMStBSRS+YpRQxjhE9Rdb9zTE54q3Ui7UJg5BMe+R3kVrBINbnT6Va8/Lzjg4+THdpMTLr6fY6ObF7r+i/924XgxqQOFvGaFJSyjXTORnK42T5YRr5TSqxr9CzhybPcdRvws2GdAq9f558whj1DYcgg0X8kR06Iu+/9Mk/CqssdrZ8LYDwSkDI8S/RwpdNQfifUa8wyY0R2xNnY+bnkrjvGPz7Rokr0Ki9/orT9i4yQWA1mMCDi2vcP+oXqrEs7XAyH85gDSzuTp+dXbTYPZpIAK6Kejwssw1IE1lGNP4PNQZk9EXU7+vB1csz4GUao7Mr7F5VbrGKvTsaGxbIc6b0MDWMEFA7L/CWC9UtReWCk1MYwJzy105bWU/VBpYJPmyZTFRQaY2MEH4fnsK2+jtZ1IYIQw/YsHU6CcCAwEAAQ==-----END PUBLIC KEY-----
// VerifySignWithSha256RSAはRSA公開鍵を使用して署名を検証します。// @Param publicKey PEM形式のPKIX RSA公開鍵// @Param signature base64でエンコードされた署名// @Param message 署名検証対象のコンテンツ// @Return error 署名検証が成功した場合はnilを返し、そうでない場合はエラーを返します。func VerifySignWithSha256RSA(publicKey string, signature string, message []byte) error {// 公開鍵を解析するpublicKeyBlock, _ := pem.Decode([]byte(publicKey)) // pem形式の公開鍵を読み取る// PKIX形式のRSA公開鍵を復号するrsaPublicKeyPKIX, err := x509.ParsePKIXPublicKey(publicKeyBlock.Bytes)if err != nil {return err}rsaPublicKey, ok := rsaPublicKeyPKIX.(*rsa.PublicKey)if !ok {return fmt.Errorf("public key is not rsa public key")}// メッセージのSHA-256ハッシュを計算するhash := sha256.New()hash.Write(message)hashedMessage := hash.Sum(nil)// signatureを取得するsignatureFromBase64, err := base64.StdEncoding.DecodeString(signature)if err != nil {return err}// 公開鍵を使用して署名を検証するreturn rsa.VerifyPSS(rsaPublicKey, crypto.SHA256, hashedMessage, signatureFromBase64, nil)}// 使用例const publicKeyPkix = "-----BEGIN PUBLIC KEY-----\\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvIPknZUDTxI8ep3wDFsN\\nC2vF1sTUfF8f6pnjSduwtIc5yUYV/1hONRe4DwWRiXQPrDRTjlDridNRfglmktoe\\ngUewNKfluGlxuTrUV35BBSGXdFTWJNg8/9j5zpsQS69mjwlh0wO8RxL0N9JatyHD\\nHZBg9psp4RGj57wxEdyANv5IUvPQ0MUwuZ64UATl/0VI5eRM1FCJI5rE9kC+eJyH\\n+c/63SNqBoSjG2kmXUb4nN8DPoDs90oA0wS2Yq1kr83kPAaFpcCIvnNKbXCK/hbY\\nJymt92Tcd8/viCxcEd88hacfzavWkyiLPl0W7Golnn2N9ZIyPwUb3a52yC4HiS5h\\n4XQSogiFluMQ+OIm4YwoaGgTILoU/Ip03LX7AILNI/Fcx9oGsLv2v4Lj01bStdJj\\n7EaCeitIw3SVyjlNAaoBTLzee0opBgVHGf8AnCzzf6qe7a0ics+pJbJi8+SGN6CF\\nOBZxeQxqu7ZE9c6y05ZYQEh0e5V/5KlIZMG0FtmyMY1Q1l2CHjVJz4xzG8t8asqZ\\njg7uVpsnQhOxrbz68cAnw9X/9297K62VnECa8z9/3kSfY0SWd+lmc5HpFRzRJPt8\\nDLjFR/r/turTJ+HnvUe1aJzD2oa8D8Y09T6gQWmAlmqLOnt7aSPm/zN3rVt/6CPY\\n6EKSQMgJ7oOgKg4FybkNELcCAwEAAQ==\\n-----END PUBLIC KEY-----"func TestVerifySignWithSha256RSA(t *testing.T) {type args struct {publicKey stringsignature stringmessage []byte}tests := []struct {name stringargs argswantErr bool}{{name: "署名検証",wantErr: false,args: args{publicKey: publicKeyPkix,signature: "T2mbjUr8Q8I0nekShP7WJs7MvUq8Ovv0lrWkn5PEIPVlFYWpaRJOWBviQstCUaotFE89QQdbDEDaP9XVXtPfFt47Zp/BN+qaajTNdUN/HL8IAsC15OsDjGtXgdezPcRwDNx0SfaWBmBeJuB2xgFxvF7/tKcWKEltAf+tE4/SPMcIFDQPOqQD1gpdC0HM3nSL92uP+yN6jCRGbTSZXN8L5RAC64f9XfSuFIIhDGQpKbXDalmrxxUHMRG6Qcs5TtQw7vdQvpwRY1NeRWC49g97ZZaboveK0skG1ym3wfk0Z8slkEzlVWbLmYe4VjJpdMpQv29XPrCUHc3tPJ4beb9FiJ1N4kzUflmr6bo75zRm4XSs8NIjN/jONPArt+6dTua9MITNtqP4nqKtwS6lw3GBZeTljb+wz5FlV1tKYoYMaBJSZyAu27mT7nwt1HJ34XLOw/yvgeGmqNDe6kAqxJ9tg/kEmw6TZP8UiKeWITsRCYXkdsyfeCnacVyiWFcsonOJoG4+wujnjroXEMgymw/CiddQD13PH4sLscpqgxlvXntVf2ljYP0ryFnO/bcq5I3L6FIVtOhpb6yjdWAl1A5FO9KG7jNT9aD11f38G7t1A4PIi2OdBQpcOLfYO3fqoimbAqiWVy8ww9N63ejnN+7ioJ/km2zBrAejFRv7Qes+p6c=","{\\"ActivationDate\\":\\"2024-12-10T09:46:58+08:00\\",\\"AuthorizedCloudappId\\":\\"cloudapp-2gwvcfb1\\",\\"AuthorizedCloudappRoleId\\":\\"0\\",\\"AuthorizedSpecification\\":[{\\"ParamKey\\":\\"version\\",\\"ParamKeyName\\":\\"バージョン\\",\\"ParamValue\\":\\"basic\\",\\"ParamValueName\\":\\"ベーシック版\\"},{\\"ParamKey\\":\\"scale\\",\\"ParamKeyName\\":\\"仕様\\",\\"ParamValue\\":\\"single\\",\\"ParamValueName\\":\\"シングルスレッド\\"}],\\"AuthorizedUserUin\\":\\"100000888888\\",\\"BillingMode\\":1,\\"ExpirationDate\\":\\"2025-01-10T09:46:58+08:00\\",\\"IssueDate\\":\\"2024-12-10T09:46:46+08:00\\",\\"LicenseId\\":\\"100000888888:pkg-la39nlb7:cloudapp-2gwvcfb1:6006\\",\\"LicenseMode\\":\\"Subscription\\",\\"LicenseStatus\\":\\"Active\\",\\"LicenseType\\":\\"Standard\\",\\"LifeSpan\\":1,\\"LifeSpanUnit\\":\\"M\\",\\"ProviderId\\":100000099,\\"SoftwarePackageId\\":\\"pkg-la39nlb7\\"}"},},}for _, tt := range tests {t.Run(tt.name, func(t *testing.T) {if err := VerifySignWithSha256RSA(tt.args.publicKey, tt.args.signature, tt.args.message); (err != nil) != tt.wantErr {t.Errorf("VerifySignWithSha256RSA() error = %v, wantErr %v", err, tt.wantErr)}})}}
フィードバック