jumpserver/apps/accounts/demos/go/README.ja.md

134 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# JumpServer PAM クライアント
このパッケージは、JumpServer PAM API と対話し、さまざまな資産のパスワードを取得するための Go クライアントを提供します。リクエストの送信とレスポンスの処理を簡素化します。
## 機能
- リクエスト送信前にパラメータを検証します。
- 資産およびアカウントに基づくパスワード取得をサポートします。
- HMAC-SHA256 署名を使用して認証を行い、JumpServer PAM API との統合を容易にします。
## 使用手順
1. **Go コードファイルのダウンロード**
コードファイルをプロジェクトディレクトリにダウンロードします。
2. **パッケージのインポート**
Go ファイルにパッケージをインポートすると、その機能を直接使用できます。
## 要件
- `Go 1.16+`
- `github.com/google/uuid`
- `gopkg.in/twindagger/httpsig.v1`
## 使用方法
### 初期化
JumpServer PAM クライアントを使用するには、必要な `endpoint`、`keyID`、および `keySecret` を提供してインスタンスを作成します。
```go
package main
import (
"fmt"
"your_module_path/jms_pam"
)
func main() {
client := jms_pam.NewJumpServerPAM(
"http://127.0.0.1", // あなたの JumpServer エンドポイントに置き換えてください
"your-key-id", // 実際の Key ID に置き換えてください
"your-key-secret", // 実際の Key Secret に置き換えてください
"", // デフォルトの組織 ID を使用するには空のままにします
)
}
```
### パスワードリクエストの作成
資産またはアカウント情報を指定してリクエストを作成できます。
```go
request, err := jms_pam.NewSecretRequest("Linux", "", "root", "")
if err != nil {
fmt.Println("リクエスト作成中にエラー:", err)
return
}
```
### リクエストの送信
クライアントの `Send` メソッドを使用してリクエストを送信します。
```go
secretObj, err := client.Send(request)
if err != nil {
fmt.Println("リクエスト送信中にエラー:", err)
return
}
```
### レスポンスの処理
パスワードが正常に取得されたかどうかを確認し、それに応じてレスポンスを処理します。
```go
if secretObj.Valid {
fmt.Println("パスワード:", secretObj.Secret)
} else {
fmt.Println("パスワードの取得に失敗:", string(secretObj.Desc))
}
```
### 完全な例
以下は、クライアントの使用方法に関する完全な例です。
```go
package main
import (
"fmt"
"your_module_path/jms_pam"
)
func main() {
client := jms_pam.NewJumpServerPAM(
"http://127.0.0.1",
"your-key-id",
"your-key-secret",
"",
)
request, err := jms_pam.NewSecretRequest("Linux", "", "root", "")
if err != nil {
fmt.Println("リクエスト作成中にエラー:", err)
return
}
secretObj, err := client.Send(request)
if err != nil {
fmt.Println("リクエスト送信中にエラー:", err)
return
}
if secretObj.Valid {
fmt.Println("パスワード:", secretObj.Secret)
} else {
fmt.Println("パスワードの取得に失敗:", string(secretObj.Desc))
}
}
```
## エラーハンドリング
このライブラリは、`SecretRequest` を作成する際に無効なパラメータに対するエラーを返します。これには、有効な UUID の確認や、必要なパラメータが提供されていることの確認が含まれます。
## 貢献
貢献を歓迎します!改善やバグ修正のために問題を提起したり、プルリクエストを送信してください。