---
title: Cấu hình WSO2 API Manager 4.1.0 sử dụng PostgreSQL
tags: WSO2AM
description: Cấu hình WSO2 API Manager 4.1.0 sử dụng CSDL PostgreSQL
---
<style>
html, body, .ui-content {
background-color: #333;
color: #ddd;
}
.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
color: #ddd;
}
.markdown-body h1,
.markdown-body h2 {
border-bottom-color: #ffffff69;
}
.markdown-body h1 .octicon-link,
.markdown-body h2 .octicon-link,
.markdown-body h3 .octicon-link,
.markdown-body h4 .octicon-link,
.markdown-body h5 .octicon-link,
.markdown-body h6 .octicon-link {
color: #fff;
}
.markdown-body img {
background-color: transparent;
}
.ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a {
color: white;
border-left: 2px solid white;
}
.expand-toggle:hover,
.expand-toggle:focus,
.back-to-top:hover,
.back-to-top:focus,
.go-to-bottom:hover,
.go-to-bottom:focus {
color: white;
}
.ui-toc-dropdown {
background-color: #333;
}
.ui-toc-label.btn {
background-color: #191919;
color: white;
}
.ui-toc-dropdown .nav>li>a:focus,
.ui-toc-dropdown .nav>li>a:hover {
color: white;
border-left: 1px solid white;
}
.markdown-body blockquote {
color: #bcbcbc;
}
.markdown-body table tr {
background-color: #5f5f5f;
}
.markdown-body table tr:nth-child(2n) {
background-color: #4f4f4f;
}
.markdown-body code,
.markdown-body tt {
color: #eee;
background-color: rgba(230, 230, 230, 0.36);
}
a,
.open-files-container li.selected a {
color: #5EB7E0;
}
</style>
# Cấu hình WSO2 API Manager 4.0.0 với PostgreSQL
- Hướng dẫn này giúp cấu hình **WSO2 API Manager 4.0.0** với primary userstore sử dụng csdl **PostgreSql**
## 1. Tạo các cơ sở dữ liệu cần thiết
Chúng ta phải tạo 02 cơ sở dữ liệu cần thiết cho **WSO2 Identity server 5.11** bao gồm: *am_apim_db* và *am_shared_db*
- Bước 1: Đăng nhập vào postgresql với tài khoản postgres
`psql -U postgres`
- Bước 2: Tạo database
`create database am_apim_db;`
`create database am_shared_db;`
## 2. Thay đổi ngày hết hạn của keystore mặc định (wso2carbon.jks)
Keystore mặc định của wso2 thường có thời hạn 2 năm. Vì chúng ta sẽ dùng internal keystore để mã hoá cũng như giải mã các dữ liệu nội bộ của wso2is nên chúng ta sẽ thay đổi ngày hết hạn của keystore tránh việc một thời gian sau chúng ta phải thay đổi lại thông tin của keystore
Các keystore của wso2 identity server nằm trong thư mục **<AM_HOME>/repository/resources/security** (<AM_HOME>: là đường dẫn thư mục gốc chứa bộ chạy của wso2 identity server)
- Bước 1: Thay đổi thời gian hết hạn của keystore **wso2carbon.jks**
`
keytool -selfcert -v -alias wso2carbon -keystore <AM_HOME>/repository/resources/security/wso2carbon.jks -validity 7300
Enter keystore password: (nhập mật khẩu của keystore là wso2carbon)
`
- Bước 2: Export certificate của keystore vừa đổi thời giạn ở bước 1
`
keytool -exportcert -keystore <AM_HOME>/repository/resources/security/wso2carbon.jks -alias wso2carbon -file <AM_HOME>/repository/resources/security/wso2carbon.cer
`
- Bước 3: Xoá certificate cũ trong truststore client
`
keytool -delete -alias wso2carbon -keystore <AM_HOME>/repository/resources/security/client-truststore.jks
`
- Bước 4: Import certificate của certificate tạo ở bước 2 vào truststore client của wso2 identity server
`
keytool -importcert -alias wso2carbon -file <AM_HOME>/repository/resources/security/wso2carbon.cer -keystore <AM_HOME>/repository/resources/security/client-truststore.jks
`
- Bước 5: Tạo internal keystore
`
cp <AM_HOME>/repository/resources/security/wso2carbon.jks <AM_HOME>/repository/resources/security/internal-keystore.jks
`
## 3. Cấu hình WSO2 API Manager
Chúng ta sẽ cấu hình các thông tin cần thiết cho wso2 identity server (*<AM_HOME>/repository/conf/deployment.toml*)
- Bước 1: Cấu hình hostname
```
[server]
#Nếu có domain, mặc định là localhost nếu chạy trên máy local
hostname = "api.cloudsigning.co"
#Nếu muốn đổi port mặc định (default_port + offset)
#offset=1
```
- Bước 2: Cấu hình proxy port
```
[transport.http.properties]
proxyPort = 80
[transport.https.properties]
proxyPort = 443
```
- Bước 3: Cấu hình kết nối database apim_db
```
[database.apim_db]
type = "postgre"
hostname = "localhost"
name = "am_apim_db"
username = "postgres"
password = "*****"
port = "5432"
[database.apim_db.pool_options]
maxActive = "80"
maxWait = "60000"
minIdle = "5"
testOnBorrow = true
validationQuery="SELECT 1"
validationInterval="30000"
defaultAutoCommit=true
```
- Bước 4: Cấu hình kết nối database shared_db
```
[database.shared_db]
type = "postgre"
hostname = "localhost"
name = "am_shared_db"
username = "postgres"
password = "*****"
port = "5432"
[database.shared_db.pool_options]
maxActive = "80"
maxWait = "60000"
minIdle = "5"
testOnBorrow = true
validationQuery="SELECT 1"
validationInterval="30000"
defaultAutoCommit=true
```
- Bước 5: Cấu hình internal store của wso2 identity server
```
[keystore.internal]
file_name = "internal-keystore.jks"
type = "JKS"
password = "wso2carbon"
alias = "wso2carbon"
key_password = "wso2carbon"
```
## 4. Initial database
### ***4.1. Thủ công***
- **`am_apim_db`**: Kết nối tới database và execute script sau: ***`<AM_HOME>/dbscripts/apimgt/postgresql.sql`***
- **`am_shared_db`**: Kết nối tới database và execute script sau: ***`<AM_HOME>/dbscripts/postgresql.sql`***
### ***4.2. Khởi động wso2 apim***
- Linux hoặc MacOS:
`
<AM_HOME>/bin/api-manager.sh
`
- Windows:
`
<AM_HOME>/bin/api-manager.bat
## 5. Cấu hình tích hợp SSO với WSO2 Identity server (*optional*)
Nếu chúng ta không muốn đăng nhập vào admin console (https://localhost:9443/carbon) bằng phương thức xác thực mặc định của wso2 identity server (giao diện mặc định) thì chúng ta có thể cấu hình cho phép admin console của wos2 identity server xác thực thông qua SSO với SAML
- Bước 1: Khởi động wso2 identity server
+ Linux hoặc MacOS:
`
<AM_HOME>/bin/wso2server.sh
`
+ Windows:
`
<AM_HOME>/bin/wso2server.bat
`
- Bước 2: Đăng nhập vào admin console (ex: https://localhost:9443/carbon với tài khoản mặc định admin/admin)
- Bước 3: Tạo một **Service Providers** với tên là ex: Admin Console IS
- Bước 4: Mở ***Inbound Authentication Configuration > SAML2 Web SSO Configuration*** và click ***Configure***.
- Bước 5: Nhập các thông tin như trong bảng vào mục ***Manual Configuration***
| Field name | Value |
| -------- | -------- |
| Issuer | carbonServer |
| Assertion Consumer URLs | https://auth.cloudsigning.co:443/acs |
| Enable Response Signing | Selected |
- Bước 6: Thêm cấu hình sau vào file deployment.toml (***<AM_HOME>/repository/conf/deployment.toml***)
```
[admin_console.authenticator.saml_sso_authenticator]
enable=true
priority="1"
assertion_consumer_service_url = "https://auth.cloudsigning.co:443/acs"
identity_provider_sso_service_url = "https://auth.cloudsigning.co:443/samlsso"
```
***NOTE:*** Thay domain theo đúng với tên domain đã tạo và phải có ***port*** tương ứng (kể cả là port 443)
- Bước 7: Khởi động lại wso2 identity server và truy cập lại vào url https://localhost:9443/carbon