内容简介:[Golang] 安裝流程 CoreOS/DEX : OAuth Server
挑選 DEX
挑選 CoreOS 的 Dex ,因為它具有以下特點:
- 支援 OpenID
- 支援 Kubernetes Authenication (via OpenID)
- 支援 OAuth
- CoreOS 開發 (XD)
以下就是基本建置方式
建立 Google API Console 憑證
- 進入 Google API Console 選擇已經有的專案(或是建立一個新的)
-
進入” 憑證中心
“,建立一個新的憑證.
- 選取 “OAuth 用戶端 ID “
- 選取 “網路應用程式”
- 在 “已授權的重新導向 URI” 輸入 “http://127.0.0.1:5556/dex/auth/google/callback”
- 這邊會取得 “ID” 跟 “Secret” 記得存下來.
建立資料庫 (PostgresQL)
1. 設定 postgres docker
docker run --name postgres -e POSTGRES_PASSWORD=YOURPASSWORD -d postgres
2. 登入建立相關 schema
docker run -it --rm --link postgres:postgres postgres psql -h postgres -U postgres >Password for user postgres: >psql (9.5.4) >Type "help" for help. postgres=# CREATE DATABASE dex_db; > CREATE DATABASE postgres=# CREATE USER dex WITH PASSWORD 'dex_pass'; > CREATE ROLE postgres=# GRANT ALL PRIVILEGES ON DATABASE dex_db TO dex; > GRANT postgres=# \q //離開 postgre console
3. 編譯 DEX
先設定 postgres 環境變數,將剛剛資料庫密碼帶入
export DEX_DB_URL=postgres://dex: [email protected]/dex_db?sslmode=disable
P.S.: 如果你跟我一樣 postgres 使用 docker ,記得將 localhost
改成該 container 的 IP.
下載並且編譯 DEX
git clone https://github.com/coreos/dex.git cd dex ./build
4. 設定環境變數與啟動 DEX 服務
準備一段密碼(可能需要在其他電腦,如果你機器是乾淨的): (我是在 Mac 下跑這段:)
- 產生 Secret Symmetric Key
export DEX_KEY_SECRET=$(dd if=/dev/random bs=1 count=32 2>/dev/null | base64 | tr -d '\n') //這是 Mac 產生的 > dd if=/dev/random bs=1 count=32 2>/dev/null | base64 | tr -d '\n' hwMSvt8Fr39WN2tN1ydyPlD02szBhhL6REjGgCIhn3o=
- 產生 Admin API Secret
DEX_OVERLORD_ADMIN_API_SECRET=$(dd if=/dev/random bs=1 count=128 2>/dev/null | base64 | tr -d '\n') //這是 Mac 產生的 > dd if=/dev/random bs=1 count=128 2>/dev/null | base64 | tr -d '\n' B02cILOvy6o7DNU/zH7umCNkWr+E2MSkFsV3+nj5uKNaqVK7T33OLdN1ou38Rid6Swy/ZL4GljqeGOFhDgHJTkjA1so2HYr8Uda2FYHRuz2/AMSamwjLCOANl+3i9WOGduTDc8BtksN+fXB5xaJYpKDxWbcZoAaC1rU3VZyajDM=
設定環境變數,啟動伺服器.
export DEX_OVERLORD_ADMIN_API_SECRET=$DEX_OVERLORD_ADMIN_API_SECRET export DEX_OVERLORD_DB_URL=$DEX_DB_URL export DEX_OVERLORD_KEY_SECRETS=$DEX_KEY_SECRET export DEX_OVERLORD_LOG_DEBUG=true ./bin/dex-overlord &
5. 執行 worker
這裡要修改 static/fixtures/emailer.json
不過可以先依照原本範例使用 fake email
./bin/dex-worker --db-url=$DEX_DB_URL --key-secrets=$DEX_KEY_SECRET --email-cfg=static/fixtures/emailer.json --enable-registration=true --log-debug=true &
6. 執行 Connector
記得要先將 $DEX_GOOGLE_CLIENT_ID
與 $DEX_GOOGLE_CLIENT_SECRET
換成你在 Google API Console 拿來的資料.
cat << EOF > /tmp/dex_connectors.json [ { "type": "local", "id": "local" }, { "type": "oidc", "id": "google", "issuerURL": "https://accounts.google.com", "clientID": "$DEX_GOOGLE_CLIENT_ID", "clientSecret": "$DEX_GOOGLE_CLIENT_SECRET", "trustedEmailProvider": true } ] EOF ./bin/dexctl --db-url=$DEX_DB_URL set-connector-configs /tmp/dex_connectors.json
7. 啟動 Client
eval "$(./bin/dexctl --db-url=$DEX_DB_URL new-client http://127.0.0.1:5555/callback)"
記得要把 127.0.0.1
換成你的 public IP .
8. 啟動 Web Server
./bin/example-app --client-id=$DEX_APP_CLIENT_ID --client-secret=$DEX_APP_CLIENT_SECRET --discovery=http://127.0.0.1:5556/dex &
記得要把 127.0.0.1
換成你的 public IP .
Authenitication for Kubernetes
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 【Tomcat学习笔记】启动流程分析--总体流程
- 【Tomcat学习笔记】启动流程分析--总体流程
- 从0到1创建高效的产品缺陷管理流程(1):缺陷是什么? 如何建立缺陷管理流程?
- Activiti6.0教程(2) - 初始化表, 部署流程, 启动流程, 创建的表介绍
- 网卡收包流程
- Launcher 启动流程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
热搜:搜索排名营销大揭秘
【美】肖恩·布拉德利 / 中国人民大学出版社有限公司 / 2018-7-30 / CNY 55.00
首部大数据在我国政府管理场景中的应用实践案例读本,全面展示我国电子政务与数字化建设的成果,深度理解实施国家大数据战略的重要意义。 本书作者作为国内最早从事大数据应用研究的实践者之一,亲历了中国大数据的发展历程、主要事件、应用案例以及行业变化。 在本书中,作者将其所亲历的大数据发展历程进行了阐述,从大数据的基本概念、特点到实践解读,通俗易懂,给我们的实际工作提供了重要参考。作者将帮助读者......一起来看看 《热搜:搜索排名营销大揭秘》 这本书的介绍吧!