内容简介:[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 启动流程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Where Wizards Stay Up Late
Katie Hafner / Simon & Schuster / 1998-1-21 / USD 16.00
Twenty five years ago, it didn't exist. Today, twenty million people worldwide are surfing the Net. "Where Wizards Stay Up Late" is the exciting story of the pioneers responsible for creating the most......一起来看看 《Where Wizards Stay Up Late》 这本书的介绍吧!