web-dev-qa-db-ja.com

bash実行可能ファイルを介してユーザーのGitlabユーザー名とパスワードで認証する方法

これは、提起された私の質問の補足です here 。その質問でたくさん助けてくれた@dessertに感謝します。

したがって、偽装トークンを作成するのではなく、ユーザー名とパスワードを使用してGitlabユーザーを認証しようとしています。現時点では、@ dessertが作成した、偽装トークンを使用してユーザーを認証するコードは次のとおりです。

$ curl -d '{"title":"test key","key":"'"$(cat ~/.ssh/id_rsa.pub)"'"}' -H 'Content-Type: application/json' https://gitlab.com/api/v4/user/keys?private_token=<my_access_token>

主に `private_token =に焦点を当てていますが、偽装トークンの作成が見つかった場合は除きます here

$ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" --data "name=mytoken" --data "expires_at=2017-04-04" --data "scopes[]=api" https://gitlab.example.com/api/v4/users/42/impersonation_tokens

Gitlabユーザーのユーザー名とパスワードを使用して認証できるようにしたい。私はこれがGithubで行われるのを見てきましたが、自分で行いました:

$ curl -u "USERNAME:PASSWORD" --data "{\"title\": \"TITLE\", \"key\": \"$(cat ~/.ssh/id_rsa.pub)\"}" https://api.github.com/user/keys

ここで、USERNAMEおよびPASSWORDは、ユーザーが入力したユーザー名とパスワードによって認証されます。

ユーザーの入力を読むのに助けは必要ありません。それは問題ではありません。私の問題(要約すると)は、ユーザー名とパスワードを使用してGitlabユーザーを認証できることです。

繰り返しますが、@ dessertに感謝します。他の支援も歓迎します。

簡単な編集:ログインとパスワードで認証するための this フォーラムの投稿を見つけました。ほとんどの人がパーソナルアクセストークンを使用すると言っています。これは、ユーザーに認証用のPATを提供する必要があることを意味しますか?または、myPATを提供し、どういうわけかそれは何かをしますか? (私はこれについて少し不明確でした)

2
a.mosallaei

したがって、この質問はそれほど多くの回答を得ていないようです。これに対する私の答えを共有したいと思います。これを実装しないでください。

私は、この検証が実際にGitlabにプライベートリポジトリをダウンロードすることだと思っていたことがわかったので、これを理解しました。ただし、リポジトリにリンクされているユーザーのアカウントに依存するため、そうではありません。

私の解決策は、スクリプトを続行する前に、アカウントにSSHキーを追加することを警告することです。いつもうまくいく確実な方法ではありませんが、現時点ではうまくいくようです。

ありがとう:)

0
a.mosallaei