apache / apache/openwhisk-cli

Consider supporting third-party identity providers

オープン
#151 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Go
スター
109
フォーク
98
PR マージ指標
30日以内にマージされた PR はありません

説明

@starpit commented on [Mon Sep 12 2016](https://github.com/apache/incubator-openwhisk/issues/1247)

Without too much effort, OpenWhisk could support third-party identity management providers, such as github, google, etc. The architecture, in sketch, for this would be:

`wsk login --provider github`

The CLI then asks the user to identify with github, and acquires an oauth `code`. The CLI passes this `code` to the backend, which then asks github to exchange it for an `access_token`. The backend next uses this token to acquire the user's immortal profile identifier (e.g. "starpit" for me, on github). Finally, the backend passes this identified user's auth_key back to the CLI client.

The attached gif illustrates an implementation of this, where the backend has been stubbed to only do the relevant bits, and the CLI has been mocked to only do the login bit.

![whisk github cli login](https://cloud.githubusercontent.com/assets/4741620/18455942/294a6a8c-791b-11e6-9dd4-2f91b8f35d61.gif)

---

@starpit commented on [Mon Sep 12 2016](https://github.com/apache/incubator-openwhisk/issues/1247#issuecomment-246546286)

here is my code: https://github.com/starpit/openwhisk-oauth-login

i think only the fake_backend and fake_wsk are throwaways. the two files under lib/ service the client and server sides of this support. written in node.js, sorry, but it's not a huge amount of code to port over to go and scala.

the conf/ needs to be updated, according to the README, to install your own client_id and client_secrets for the identity providers.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

リンクされている openwhisk-oauth-login プロジェクトとその README、特に lib/ と conf/ のファイルを確認し、提案されているクライアントとサーバーのフローを理解します。次に、openwhisk-cli の login エントリーポイントと既存の設定を調査します。完了の条件は、ドキュメント化された動作する provider ベースのログインフローがあり、バックエンドでのトークン交換と返却された auth_key のサポートが実現されていることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
go, node.js, scala
領域
authentication, backend-api-design, cli
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。