Skip to content

Commit 693eeef

Browse files
authored
Merge pull request #1124 from yyyangw/doc/gitlab_oauth
增加“gitlab私有化对接操作指引文档”
2 parents b014ec3 + d725d5d commit 693eeef

19 files changed

+230
-0
lines changed

doc/images/gitlab_application_01.png

16.9 KB
Loading

doc/images/gitlab_application_02.png

48.7 KB
Loading

doc/images/gitlab_application_03.png

45.2 KB
Loading

doc/images/gitlab_application_04.png

32 KB
Loading

doc/images/gitlab_oauth_QA_01.png

25.4 KB
Loading

doc/images/gitlab_oauth_QA_02.png

12.2 KB
Loading

doc/images/gitlab_oauth_QA_03.png

23.8 KB
Loading

doc/images/gitlab_oauth_QA_04.png

3.38 KB
Loading

doc/images/gitlab_oauth_QA_05.png

21.5 KB
Loading

doc/images/gitlab_oauth_QA_06.png

27.8 KB
Loading

doc/images/gitlab_oauth_QA_07.png

24.2 KB
Loading
18.7 KB
Loading
20.2 KB
Loading
20 KB
Loading
21.6 KB
Loading
9.16 KB
Loading
41.2 KB
Loading
9.58 KB
Loading
Lines changed: 230 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,230 @@
1+
# 私有化gitlab Oauth认证
2+
3+
## 一、操作步骤
4+
### 1、 本地gitlab 生成 application
5+
#### (1)进入Preferences模块
6+
#### (2)选择Application模块
7+
#### (3)添加新的application
8+
#### (4)填写name、Redirect url并勾选可用权限
9+
#### (5)保存application
10+
11+
### 2、在项目配置文件中添加相关配置信息
12+
以下三种部署方式选择其中一项即可。
13+
#### (1)docker-compose 部署方式
14+
找到server/dockerconfs/ 目录下的 .env.local 文件,添加配置信息。
15+
```bash
16+
#Oauth认证相关配置
17+
GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
18+
GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
19+
```
20+
在项目根目录下执行更新部署操作
21+
```bash
22+
bash ./quick_install.sh docker-compose stop #停止运行中的TCA容器
23+
bash ./quick_install.sh docker-compose deploy #重新部署TCA相关容器与初始化(或刷新数据)
24+
```
25+
26+
#### (2)docker 部署方式
27+
在/.docker_temp/configs/config.sh 中添加以下配置 (首次部署无该文件夹)
28+
```bash
29+
#Oauth认证相关配置
30+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
31+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
32+
```
33+
在项目根目录下执行更新部署操作
34+
```bash
35+
bash ./quick_install.sh docker deploy
36+
```
37+
38+
#### (3)源代码部署方式
39+
在/scripts/config.sh 中添加以下配置
40+
```bash
41+
#Oauth认证相关配置
42+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
43+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
44+
```
45+
在项目根目录下执行重新启动操作
46+
```bash
47+
bash ./quick_install.sh local start #启动服务(会自动关闭之前的服务)
48+
```
49+
50+
### 3、代码分析平台添加Oauth配置
51+
#### (1)进入后台管理
52+
#### (2)选择Oauth管理
53+
#### (3)创建配置,将application中的Application ID、Secret 和 Callback URL分别填入指定位置。
54+
#### (4)前往个人凭证管理,点击认证。
55+
#### (5)弹出私有化gitlab的页面,点击Authorize 进行授权。
56+
#### (6)授权成功
57+
58+
59+
## 二、详细操作过程说明
60+
### 1、 本地gitlab 生成 application
61+
#### (1)进入Preferences模块
62+
![gitlab_application](../../../images/gitlab_application_01.png)
63+
64+
#### (2)选择Application模块
65+
![gitlab_application](../../../images/gitlab_application_02.png)
66+
67+
68+
#### (3)添加新的application
69+
填写重定向url,“http://<部署gitlab的ip地址>/cb_git_auth/gitlab”
70+
71+
scopes尽量都勾选,以开启对私有化代码库的访问权限
72+
![gitlab_application](../../../images/gitlab_application_03.png)
73+
74+
保存application
75+
![gitlab_application](../../../images/gitlab_application_04.png)
76+
这里的Application ID、Secret 和 Callback URL 之后需要填写到代码分析服务中。
77+
78+
### 2、在项目配置文件中添加相关配置信息
79+
以下三种部署方式选择其中一项即可。
80+
#### (1)docker-compose 部署方式
81+
找到server/dockerconfs/ 目录下的 .env.local 文件,添加配置信息。
82+
```bash
83+
#Oauth认证相关配置
84+
GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
85+
GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
86+
```
87+
在项目根目录下执行更新部署操作
88+
```bash
89+
bash ./quick_install.sh docker-compose stop #停止运行中的TCA容器
90+
bash ./quick_install.sh docker-compose deploy #重新部署TCA相关容器与初始化(或刷新数据)
91+
```
92+
93+
#### (2)docker 部署方式
94+
在/.docker_temp/configs/config.sh 中添加以下配置 (首次部署无该文件夹)
95+
```bash
96+
#Oauth认证相关配置
97+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
98+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
99+
```
100+
在项目根目录下执行更新部署操作
101+
```bash
102+
bash ./quick_install.sh docker deploy
103+
```
104+
105+
#### (3)源代码部署方式
106+
在/scripts/config.sh 中添加以下配置
107+
```bash
108+
#Oauth认证相关配置
109+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
110+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
111+
```
112+
在项目根目录下执行重新启动操作
113+
```bash
114+
bash ./quick_install.sh local start #启动服务(会自动关闭之前的服务)
115+
```
116+
117+
118+
### 3、代码分析平台添加Oauth配置
119+
#### (1)进入后台管理
120+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_01.png)
121+
122+
#### (2)进入Oauth管理
123+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_02.png)
124+
125+
#### (3)创建配置
126+
将application中的Application ID、Secret 和 Callback URL分别填入
127+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_03.png)
128+
129+
#### (4)前往个人凭证管理,点击认证
130+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_04.png)
131+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_05.png)
132+
133+
#### (5)弹出私有化gitlab的页面,点击Authorize 进行授权。
134+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_06.png)
135+
#### (6)授权成功
136+
![gitlab_oauth_disposition](../../../images/gitlab_oauth_disposition_07.png)
137+
138+
139+
## 三、常见问题
140+
### 1、使用Oauth登录的方式,认证时跳转页面失败
141+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_01.png)
142+
#### 错误详情:
143+
An error has occurred
144+
145+
Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method.
146+
#### 解决方案:
147+
148+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_02.png)
149+
150+
如图,GITLAB_OAUTH_URL没有配置,默认使用 https://gitlab.com/oauth/authorize
151+
152+
需要根据项目部署方式,修改配置信息。
153+
154+
(1)docker-compose 部署方式
155+
156+
找到server/dockerconfs/ 目录下的 .env.local 文件,添加配置信息
157+
```bash
158+
GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
159+
```
160+
(2)docker 部署方式
161+
162+
在/.docker_temp/configs/config.sh 中添加以下配置 (首次部署无该文件夹)
163+
```bash
164+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
165+
```
166+
(3)源代码部署方式
167+
168+
在/scripts/config.sh 中添加以下配置
169+
```bash
170+
export GITLAB_OAUTH_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/oauth/authorize/"
171+
```
172+
173+
174+
### 2、无法找到本地部署的服务对应的前端页面
175+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_03.png)
176+
#### 错误详情:
177+
此站点的连接不安全,发送了无效的响应。
178+
179+
ERR_SSL_PROTOCOL_ERROR
180+
#### 解决方案:
181+
配置的url存在问题,可能使用了https协议,访问本地ip不能用https协议,修改成http。
182+
183+
### 3、认证没有跳转到正确的页面,或直接跳回到代码分析平台登陆界面。
184+
#### 解决方案:
185+
(1)检查配置url是否加端口号,默认80端口可能已经被占用,或已经分配给代码分析平台。
186+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_04.png)
187+
188+
(2)检查回调地址是否填写端口号
189+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_05.png)
190+
191+
### 4、OAuth授权失败
192+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_06.png)
193+
#### 错误详情:
194+
oauth failed, err: 未知错误: <class 'Exception'>:{method: git_oauth, error_message: [400] 授权异常,请稍后再试,异常原因:{"error":"invalid_client","error_description":"Client authentication failed due to unknown client, no client authentication included, or unsupported authentication method."}}
195+
#### 解决方案:
196+
client.py 中存在默认的GITLAB_URL,如果在配置文件中没有设置GITLAB_URL,那么TCA将默认访问https://gitlab.com
197+
```bash
198+
GITLAB_URL = os.environ.get("GITLAB_URL") or "https://gitlab.com"
199+
```
200+
客户端调用的API都需要使用到GITLAB_URL作为前缀的路径,会发送post请求到 https://gitlab.com 路径下,因此需要对路径进行修改。
201+
202+
![gitlab_oauth_QA](../../../images/gitlab_oauth_QA_07.png)
203+
204+
要连接私有化的gitlab,需要根据项目部署方式,修改配置信息。
205+
206+
(1)docker-compose 部署方式
207+
208+
找到server/dockerconfs/ 目录下的 .env.local 文件,添加配置信息
209+
```bash
210+
GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
211+
```
212+
(2)docker 部署方式
213+
214+
在/.docker_temp/configs/config.sh 中添加以下配置 (首次部署无该文件夹)
215+
```bash
216+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
217+
```
218+
(3)源代码部署方式
219+
220+
在/scripts/config.sh 中添加以下配置
221+
```bash
222+
export GITLAB_URL="http://<部署gitlab的ip地址>:<gitlab 端口号>/"
223+
```
224+
225+
226+
227+
228+
229+
230+

0 commit comments

Comments
 (0)