内容简介:[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 启动流程
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
恰如其分的软件架构
George Fairbanks / 张逸、倪健、高翌翔 / 华中科技大学出版社 / 2013-9-1 / 88.00
本书描述了一种恰如其分的软件架构设计方法。作者建议根据项目面临的风险来调整架构设计的成本,并从多个视角阐述了软件架构的建模过程和方法,包括用例模型、概念模型、域模型、设计模型和代码模型等。本书不仅介绍方法,而且还对方法和概念进行了归类和阐述,将软件架构设计融入开发实践中,与 敏捷开发方法有机地结合在一起,适合普通程序员阅读。 . 这是一本超值的书,案例丰富有趣,言简意赅,阅读轻松。当年......一起来看看 《恰如其分的软件架构》 这本书的介绍吧!