๊ฐ์ธ์ด ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ ํ๊ณ ๊ด๋ฆฌํ๋ Web3 ์ ์์ง๊ฐ ์์คํ
: "Web 3.0 ์ ์/์๊ฒฉ์ฆ๋ช
๊ด๋ฆฌ ์์คํ
"
์ด ํ๋ก์ ํธ๋ Web 3.0 ์๋์ ์๋ก์ด ์ ์ ๋ฐ ์๊ฒฉ์ฆ๋ช
๊ด๋ฆฌ ์์คํ
์ ๊ตฌํํ์ฌ ๊ฐ์ธ์ ์์จ์ฑ๊ณผ ๋ฐ์ดํฐ ๋ณด์์ ํ์ ์ ์ผ๋ก ํฅ์์ํค๋ ์ฐจ์ธ๋ ์ง๊ฐ์ ์ ์ํฉ๋๋ค.
[https://www.youtube.com/Web3.0-Credential_Management_System_๋ํ์ถํ์ฉ]
[https://www.youtube.com/Web3.0-Credential_Management_System]
- Web3 ๊ตฌ์กฐ์ ์ธ๋ถ ์ธ์ฆ API๋ฅผ ํตํฉํ์ฌ ์ฌ์ฉ์ ์ง๊ฐ ์์ฑ ๋ฐ ์ธ์ฆ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐํํ๊ณ , ์ถ๊ฐ์ ์ธ ๋ณด์ ๋ฐ ์ ์ ํ์ธ์ ์ ๊ณตํฉ๋๋ค.
- ์ ์ฒด ๊ตฌ์กฐ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์์๋ถํฐ ๋ธ๋ก์ฒด์ธ ๋ฐ ์๋ฒ ์ธก๊น์ง ๊ฐ ๋จ๊ณ๋ณ๋ก ์ฒด๊ณ์ ์ผ๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
- ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊ทธ์ธ์ ์งํํฉ๋๋ค.
- ๋ก๊ทธ์ธ์ด ์๋ฃ๋๋ฉด 4์๋ฆฌ PIN ์ฝ๋๋ฅผ ์ค์ ํ๊ณ ์์ฒด ์ธ์ฆ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ฒ ๋ฉ๋๋ค.
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ ์ ์ ์ ๋ณด๊ฐ ํ์๋๋ ํ๋ฉด์ ๋๋ค.
- ๋ฉ์ธ ํ๋ฉด์ ์ค๋ฅธ์ชฝ ์๋จ์ ์์นํ 'ํฑ๋๋ฐํด' ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ์ค์ ํ๋ฉด์ผ๋ก ๋ค์ด๊ฐ๋๋ค.
- ์ค์ ํ๋ฉด์์ ์ฌ์ฉ์๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๊ณ ์ธ์ฆ์ ์ ์ฒด ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๋ฉ์ธ ํ๋ฉด์ ์ค๋ฅธ์ชฝ ์๋จ์ ์์นํ โ+โ ๋ฒํผ์ ํด๋ฆญํ๋ฉด, ์ฆ๋ช ์๋ฅผ ๋ฐ๊ธํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์๋ ๋ฐ๊ธ์ ์ํ๋ ์ฆ๋ช ์๋ฅผ ์ ํํ ํ, ๋์ ์ฒดํฌ๋ฐ์ค๋ฅผ ํด๋ฆญํ๊ณ ๊ฐ๋จํ ์ธ์ฆ์ ๊ฑฐ์น๋ฉด ์ง๊ฐ์ PDF ํํ๋ก ์ธ์ฆ์๊ฐ ๋ค์ด๊ฐ๋๋ค.
- ๋ฉ์ธํ๋ฉด์ ์นด๋๋ฅผ ํด๋ฆญ ์, ์ฌ์ฉ์๊ฐ ๋ฐ๊ธํ ์ธ์ฆ์ ๋ชฉ๋ก์ด ๋ํ๋ฉ๋๋ค.
- ๊ฐ ๋ชฉ๋ก์ ํด๋ฆญ ์, ํด๋นํ๋ ์ธ์ฆ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
- ๊ฐ ๋ชฉ๋ก์ ์์ผ๋ก ์ฌ๋ผ์ด๋ ์, ํด๋นํ๋ ์ธ์ฆ์๋ฅผ ์ญ์ ํ ์ ์์ต๋๋ค.
- ์ด ํ๋ก์ ํธ์์๋ OAuth 2.0 ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ์์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ์์ต๋๋ค.
- ์นด์นด์ค API๋ฅผ ํ์ฉํ์ฌ ์๋ฒ์์ ์นด์นด์ค ์์ธ์ค ํ ํฐ์ ๋ฐ๊ธ ๋ฐ์ ์ฌ์ฉ์์ ์์
๊ณ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ฐ์ ธ์ค๊ณ ,
์ด๋ฅผ ํตํด ์์คํ ์ ์์ฝ๊ฒ ํ์๊ฐ์ ๊ณผ ๋ก๊ทธ์ธ์ ์ํํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ ๊ธฐ์กด์ ์ฌ์ฉํ๋ ์นด์นด์ค ๊ณ์ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ์ฌ ๋ณ๋์ ๊ณ์ ์์ฑ ๊ณผ์ ์์ด ์์คํ ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ด ๊ณผ์ ์์ OAuth 2.0์ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ํตํด ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด๊ฐ ์์ ํ๊ฒ ๊ด๋ฆฌ๋๋ฉฐ, ์๋ฒ ์ธก์์๋ ์นด์นด์ค๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ์ก์ธ์ค ํ ํฐ์ ํ์ฉํ์ฌ ์ฌ์ฉ์์ ํ๋กํ ์ ๋ณด ๋ฐ ๊ธฐ๋ณธ์ ์ธ ๊ณ์ ์ ๋ณด๋ฅผ ํ๋ํฉ๋๋ค.
์ดํ ํด๋น ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ฌ์ฉ์์ ํ์๊ฐ์ ์ ์ฐจ๋ฅผ ์๋ํํ๊ฑฐ๋, ๊ธฐ์กด ํ์์ด๋ผ๋ฉด ๋ฐ๋ก ๋ก๊ทธ์ธ ์ฒ๋ฆฌํ์ฌ ์ฌ์ฉ์์ ํธ์์ฑ์ ๊ทน๋ํํ์์ต๋๋ค. ๋ํ, ์ด ๊ณผ์ ์์ ์ฌ์ฉ์ ๋์ ์ ์ฐจ๋ฅผ ๊ฑฐ์ณ ํ์ํ ์ ๋ณด๋ง์ ์์งํ๋ฉฐ, ๊ฐ์ธ์ ๋ณด ๋ณดํธ์ ๊ด๋ จ๋ ๋ฒ์ ์๊ตฌ ์ฌํญ์ ์ฒ ์ ํ ์ค์ํฉ๋๋ค.
- LocalAuthentication Framework๋ฅผ ์ฌ์ฉํ์ฌ ์ง๋ฌธ, ์ผ๊ตด ์ธ์๊ณผ ๊ฐ์ ์์ฒด ์ ๋ณด๋ฅผ ์ด์ฉํ ์ธ์ฆ์ ์ํํฉ๋๋ค.
- ๋๋ฐ์ด์ค ์์ ๋ฌธ์ ๋ก ์ธํ์ฌ ์์ฒด์ธ์ฆ์ด ๋ถ๊ฐ๋ฅํ ์ฌ์ฉ์๋ฅผ ์ํด PIN ์ฝ๋๋ก 2์ฐจ ์ธ์ฆ์ ํ ์ ์๋ ๋ฐฉ์๋ ๋ง๋ จํด ๋์์ต๋๋ค.
๊ธฐ๋ณธ์ ์ธ ๋ก๊ทธ์ธ ์ ์ฐจ ์ธ์๋ ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ฐํ๋ฅผ ์ํด 2์ฐจ ์ธ์ฆ ๊ธฐ๋ฅ์ ํฌํจ์์ผฐ์ต๋๋ค. 2์ฐจ ์ธ์ฆ ์ ์ฐจ๋ ์ ์ ์ง๊ฐ ์์ฑ์ ์ํ ํ์ ๋จ๊ณ๋ก, ์ฌ์ฉ์์ ์ ์์ ํ์ธต ๋ ๊ฐ๋ ฅํ๊ฒ ๋ณดํธํฉ๋๋ค. ํนํ, ์์ฒด ์ธ์ฆ์ ํ์ฉํ 2์ฐจ ์ธ์ฆ ์ ์ฐจ๋ฅผ ํตํด ์ฌ์ฉ์๋ ๋ณด๋ค ์์ ํ๋ฉด์๋ ๊ฐํธํ๊ฒ ์์คํ ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ 2์ฐจ ์ธ์ฆ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋ ํ์๋ง Web3 ๊ธฐ๋ฐ์ ์ ์ ์ง๊ฐ์ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ด ์ง๊ฐ์ ๋ธ๋ก์ฒด์ธ ์์์์ ๋ค์ํ ๊ฑฐ๋์ ์ํธ์์ฉ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์คํ ์ ์ฌ์ฉ์์ ์์ฐ๊ณผ ๊ฐ์ธ ์ ๋ณด๋ฅผ ๋์ฑ ์ฒ ์ ํ ๋ณดํธํ๋ฉฐ, ๋์ ์์ค์ ๋ณด์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑ์ํต๋๋ค.
2์ฐจ ์ธ์ฆ ์ ์ฐจ๋ ์ฌ์ฉ์์ ํธ์์ฑ์ ํด์น์ง ์์ผ๋ฉด์๋ ๋ณด์์ ๊ฐํํ๋ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ํนํ ์ค์ํ ๋ฐ์ดํฐ์ ์ ๊ทผํ ๋ ํ์์ ์ธ ์ถ๊ฐ ๋ณด์ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๊ด๋ฆฌํ๋ ์ํธํ ๊ธฐ๋ฐ์ ์ธ์ฆ์ ๊ด๋ฆฌ ์์คํ
์ผ๋ก, OAuth2.0 ๋ฐ Web3 ํ๊ฒฝ์ ํตํฉํ์ฌ ์ฌ์ฉ์ ์ง๊ฐ๊ณผ ์ธ์ฆ์๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค. ์ฌ์ฉ์๋ ์์ ๋ง์ ์ง๊ฐ์์ ์ธ์ฆ์ ๋ฐ๊ธ ๋ฐ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ฉฐ, ๋ธ๋ก์ฒด์ธ๊ณผ PDF ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํตํด ์ธ์ฆ์์ ์ง๋ณธ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค.
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
CREATE TABLE wallets (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
user_id BIGINT NOT NULL,
private_key TEXT NOT NULL, -- TEXT๋ก ๋ณ๊ฒฝ
public_key TEXT NOT NULL, -- TEXT๋ก ๋ณ๊ฒฝ
sign_cert_path VARCHAR(255),
sign_pri_key_path VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(id)
);
CREATE TABLE wallet_pdf_urls (
wallet_id BIGINT,
certificate_type VARCHAR(255),
pdf_url VARCHAR(255),
PRIMARY KEY (wallet_id, certificate_type),
FOREIGN KEY (wallet_id) REFERENCES wallets(id)
);
CREATE TABLE wallet_pdf_hash (
wallet_id BIGINT,
certificate_type VARCHAR(255),
pdf_hash VARCHAR(255),
PRIMARY KEY (wallet_id, certificate_type),
FOREIGN KEY (wallet_id) REFERENCES wallets(id)
);
- user_id: ์ฌ์ฉ์์ ์ง๊ฐ์ ์ฐ๊ฒฐํ๋ ์ฐธ์กฐ ํค.
- private_key: ๋ฉํ๋ฐ์ดํฐ ๋์ฝ๋ฉ์ฉ ๊ฐ์ธ ํค, RSA ๋์ฝ๋ฉ ์ ์ฌ์ฉ.
- public_key: ๋ฉํ๋ฐ์ดํฐ ์ํธํ์ฉ ๊ณต๊ฐ ํค, RSA ์ํธํ ์ ์ฌ์ฉ.
- sign_cert_path: ๊ณต์ธ์ธ์ฆ์ certFile ๊ฒฝ๋ก.
- sign_pri_key_path: ๊ณต์ธ์ธ์ฆ์ certPriKey ๊ฒฝ๋ก.
- wallet_pdf_urls: PDF ํ์ผ์ ๊ฒฝ๋ก๋ง ์ ์ฅํ์ฌ ์๋ฒ์ ์ง์ ์ ์ธ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ์ ์ฅํ์ง ์์.
- pdfHash: PDF ํ์ผ์ ํด์๊ฐ์ ์ ์ฅํ์ฌ ์ธ์ฆ์ ์ง๋ณธ์ฑ ํ์ธ.
์ด ์ธ์ฆ์ ๊ด๋ฆฌ ์์คํ ์ Web2์ Web3์ ์ฅ์ ์ ๊ฒฐํฉํ์ฌ ์ฌ์ฉ์ ์ง๊ฐ๊ณผ ์ธ์ฆ์๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ๋ฉฐ, ์ฌ์ฉ์๊ฐ ์์ฒญ ์์ ์ง์ ์ธ์ฆ์ ์ง์๋ฅผ ํ์ธํ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ ์ ๋ขฐ์ฑ ๋์ ์ธ์ฆ ์์คํ ์ ์ ๊ณตํฉ๋๋ค.
์ง๊ฐ ํ๋ก๊ทธ๋จ ๋ด์์ ํน์ ์ง๊ฐ ์ฃผ์๋ฅผ ์ ๋ ฅํด ์ฝ์ธ์ ์ ์กํ๋ ๋ฉ์ปค๋์ฆ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค
- ์ง๊ฐ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ธํค๋ฅผ ์ฌ์ฉํด ํธ๋์ญ์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์๋ช ์ ์์ฑํฉ๋๋ค.
- ์์ฑ๋ ์๋ช ์ ๊ณต๊ฐํค์ ํจ๊ป ๋ธ๋ก์ฒด์ธ ๋คํธ์ํฌ์ ์ ์ก๋ฉ๋๋ค.
๊ฒฐ๊ตญ ์ง๊ฐ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ฅ ์ค์ํ ์ด์๋ ๊ฐ์ธํค์ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๋ณด๊ดํ๋ ๋ฐฉ์์
๋๋ค.
์ง๊ฐ์ RSA ๊ณต๊ฐํคยท๊ฐ์ธํค๋ฅผ ํตํด ์ธ์ฆ์ ์ ๋ณด๋ฅผ ๋ธ๋ก๊ณผ ๋ฉํ๋ฐ์ดํฐ์ ๋ณด๊ดํ๋ ๋ฐฉ์
- ๋ธ๋ก์ ๊ฐ์ธํค ์์น์ ์ธ์ฆ์ ๋ฐ์ดํฐ๋ฅผ ์ง๊ฐ์ RSA ๊ณต๊ฐํค๋ก ์ํธํํ์ฌ ๋ธ๋ก๊ณผ ๋ฉํ๋ฐ์ดํฐ์ ์ ์ฅํฉ๋๋ค.
- ์ธ์ฆ์ ๋ฐ์ดํฐ๋ ๋ธ๋ก ๋ฐ PDF ๋ฉํ๋ฐ์ดํฐ์ Key(์ธ์ฆ์_walletID)์ ์ธ์ฆ์๊ฐ ์ธ์๋ ์ํธํ๋ ํํ๋ก ๋ณด๊ด๋ฉ๋๋ค.
- ํด๋น ์ฌ์ฉ์์ ์ง๊ฐ ๊ฐ์ธํค๊ฐ ์๋ค๋ฉด, ๋ฐ์ดํฐ ๋ณตํธํ ๋ฐ ์ธ์ฆ์ ์์ ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. ์ด ๋ฐฉ์์ ์ฌ์ฉ์๊ฐ ์ธ์ฆํ ์๊ฐ ํ์ธ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ, ๋ณด์์ฑ๊ณผ ๋ธ๋ก์ฒด์ธ์ ์ฅ์ ์ ๋์์ ํ์ฉํฉ๋๋ค.
์ํธํ๋ ๊ฐ์ธ์ ๋ณดยท์ธ์ฆ์ ๋ฐ์ดํฐ๋ ๋ฉํ๋ฐ์ดํฐยท๋ธ๋ก์ผ๋ก ๊ด๋ฆฌ๋๋ฉฐ S3 ์คํ ๋ฆฌ์ง์๋ ์๋ณธ PDF ์ธ์ฆ์๋ฅผ ์ ์ฅํ๋ฉฐ PDF ํด์๊ฐ์ ํตํด ์ง๋ณธ์ ๋ณด์ฅํฉ๋๋ค.
์ฌ์ฉ์๋ ์ด๋ฅผ ์ง์ ๊ด๋ฆฌํ์ฌ ๊ธฐ์กด ์ ์์ง๊ฐ ์์คํ
๋ณด๋ค ๋์ ๋ฐ์ดํฐ ์์จ์ฑ์ ๋ณด์ฅ๋ฐ์ต๋๋ค.
๋ธ๋ก์ฒด์ธ์ ๋ธ๋ก๊ณผ S3 ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํตํ ์ธ์ฆ ์ํ์ ์ํ Verifiable Credential ๊ด๋ฆฌ
- S3 ์คํ ๋ฆฌ์ง์ ์ค๋ฌผ ์ธ์ฆ์์ ๋ฉํ๋ฐ์ดํฐ์ ์ธ๋ถ ์ธ์ฆ Verifiable Credential์ ์ ์ฅํ๊ณ ์ฌ์ฉ์๊ฐ ์ดํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ค์ด๋ก๋ํ๋ฉด ํด๋น S3 ์คํ ๋ฆฌ์ง์ ์ธ์ฆ์์ Verifiable Credential์ ํตํด ๋ธ๋ก์ ์์ฑํ๊ณ ์ฌ์ฉ์์ ๋๋ฐ์ด์ค์ ์ ์ฅํฉ๋๋ค.
- Web3 ๋ธ๋ก์ฒด์ธ์ ๋ธ๋ก(PDF)์ ์ธ๋ถ ์ธ์ฆ ๊ฐ ๋ฐ ์ ๋ณด ์ ์ฅ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ฐ์ธ ๋๋ฐ์ด์ค์ ๋ธ๋ก์ ์ธ๋ถ ์ธ์ฆ์ ์ํํ๋ Verifiable Credential, Credential Metadata, Claims, Proofs๋ฅผ ํฌํจํ ๋ธ๋ก์ ์์ฑ ๊ด๋ฆฌํฉ๋๋ค.
- ์ธ๋ถ ์ธ์ฆ API๋ฅผ ํ์ฉํด ์ ์์ง๊ฐ์ ์ธ์ฆ์ ์ฌ์ฉ ์, ์ธ๋ถ ์ธ์ฆ๊ณผ์ ์ฐ๋์ ์ํํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์ ๋ฑ๋ก์ ์ํด 2์ฐจ ์ธ์ฆ์ ์ํํฉ๋๋ค.
- Web3 ํ๊ฒฝ์ PDF๋ฅผ ํตํด ์ธ์ฆ์์ ๋ํ Verifiable Credential ์์ฑ ๋ฐ ์ ๋ถ์ฆ๋ช ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
- ์ธ๋ถ ์ธ์ฆ API๋ฅผ ํ์ฉํด ์ธ์ฆ์ Verifiable Credential์ ๋ํ ์ ๋ถ ์ฆ๋ช ์ ์์ฒญํฉ๋๋ค.
- ์๋ฒ๋ ๋ฑ๋ก๋ ์ธ์ฆ์์ ๋ธ๋ก(PDF) URL์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ๋ฑ๋ก๋ ์ธ์ฆ์์ ์ ๊ทผํ๊ธฐ ์ํด 2์ฐจ ์ธ์ฆ์ ์ํํฉ๋๋ค.
- Web3 ํ๊ฒฝ์ PDF๋ฅผ ํตํด ์ธ์ฆ์์ ๋ํ ์ธ์ฆ์ ์์ฒญํ๊ณ ์ฆ๋ช ์ URL์ ๋ฐํํฉ๋๋ค.
- ์ธ๋ถ ์ธ์ฆ API๋ฅผ ํ์ฉํด ์ธ์ฆ์ Verifiable Credential์ ๋ํ ์ ๋ถ ์ฆ๋ช ์ ์์ฒญํ๊ณ ํ์ธํฉ๋๋ค.
- ์๋ฒ๋ ์ธ์ฆ์ด ์๋ฃ๋ ์ธ์ฆ์์ ์ ๊ทผํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ ๋ฑ๋ก๋ ์ธ์ฆ์์ ์ ๊ทผํ๊ธฐ ์ํด 2์ฐจ ์ธ์ฆ์ ์ํํฉ๋๋ค.
- Web3 ํ๊ฒฝ์ PDF๋ฅผ ํตํด ์ธ์ฆ์์์ Verifiable Credential์ ์ฐพ์์ค๊ณ , ์ธ์ฆ์ URL์ ๋ฐํํฉ๋๋ค.
- ์๋ฒ๋ก ์ธ์ฆ์ URL์ ์์ฒญํฉ๋๋ค.
- URL์ ํตํด S3 ์คํ ๋ฆฌ์ง์ ์๋ ์ธ์ฆ์์ ์ ๊ทผํด ํด๋น ๊ฐ์ฒด์ ๋ฉํ๋ฐ์ดํฐ์ ์ ๊ทผํฉ๋๋ค.
- ๋ฉํ๋ฐ์ดํฐ ๊ฐ๊ณต ํ ํด๋ผ์ด์ธํธ์๊ฒ ๋ชฉ๋ก ๋ฐํํฉ๋๋ค.
- ์ง๊ฐ์ด ์์ฑ๋ ๋ ๋ธ๋ก๊ณผ S3 ์คํ ๋ฆฌ์ง์ PDF๊ฐ ์์ฑ๋๋ฉฐ ๋ธ๋ก๊ณผ PDF์ URL์ด ์ฌ์ฉ์ ์ง๊ฐ์ ์ ์ฅ๋ฉ๋๋ค.
- S3 ์คํ ๋ฆฌ์ง์ ์ค๋ฌผ ์ธ์ฆ์์ ๋ธ๋ก์ ์ ์์ธ์ฆ ์ ๋ณด๋ฅผ ํฌํจํ์ฌ ๊ฐ์ธ์ ๋๋ฐ์ด์ค์์ ์ฆ๋ช ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์๊ฐ ์์ธ์ค ํ ํฐ์ ํตํด Web3 ์ง๊ฐ ์์ฑ์ ์์ฒญํฉ๋๋ค.
- ์ง๊ฐ์์ ์ธ์ฆ์ PDF์ ๋ฉํ๋ฐ์ดํฐ Verifiable Credential (Credential Metadata, Claims, Proofs)๋ฅผ S3 ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๊ณ ๊ฐ์ธ ๋๋ฐ์ด์ค์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ํด๋น ์ฌ์ฉ์์ S3 PDF ์ฃผ์๊ฐ์ ์ ์ฅํฉ๋๋ค.
- ์ง๊ฐ์์ ๊ฐ์ธ ๋๋ฐ์ด์ค์ ๋ธ๋ก(PDF)์ด ์์ฑ๋๋ฉฐ ๋ธ๋ก(PDF)์๋ ์ถํ ์ ๋ก๋ํ๋ ํด๋น ์ฆ๋ช ์ ๊ดํ key : value ๊ฐ์ ์ ์ฅํ๊ณ ๋ธ๋ก(PDF)์ด ์์ฑ ๋ฐ ์ถ๊ฐ๋๋ฉฐ ์ด๋ฅผ ํตํด ์ธ๋ถ ์ธ์ฆ๊ณผ์ ์ฐ๋์ด ์ํ๋ฉ๋๋ค.
- ์ง๊ฐ์์ ํด๋น๋๋ ์ธ์ฆ์๋ฅผ ์ ๋ก๋ ๊ฐ๋ฅํ๋ฉฐ PDF ๋ณ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ณ๋๋ก ๊ด๋ฆฌํ๋ฉฐ ์ธ์ฆ๊ณผ์ ์ ์ํํ๋ ๋ฉํ๋ฐ์ดํฐ๋ key : value ๊ฐ์ผ๋ก Verifiable Credential๋ก ๊ด๋ฆฌํฉ๋๋ค.
์ธ๋ถ API๋ฅผ ์ด์ฉํ ์ธ์ฆ (๋ํ ์ฌํ ์ธ์ฆ, ์๊ฒฉ์ฆ, ์ฃผ๋ฏผ๋ฑ๋ก์ฆ, ์ฌ๊ถ, ์ด์ ๋ฉดํ)
์ฌ์ฉ์ ๋ฐ ์ธ์ฆ์์ ์ ๋ขฐ์ฑ์ ์ํด ์ธ๋ถ API๋ฅผ ์ฐ๋ํ์ฌ ๋ํ ์ฌํ์ ์ธ์ฆํ๊ณ ,
Qnet ์๊ฒฉ์ฆ ํ์ธ์ ๋ฐ ์ฃผ๋ฏผ๋ฑ๋ก ์ง์ ์ฌ๋ถ ์ธ์ฆ์ ํ
์คํธํ๋ ์์
์ ์ํํ์์ต๋๋ค.
์ฌ์ฉ์๊ฐ ํน์ ๋ํ์ ์ฌํ ์ค์ธ์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ธ๋ถ API๋ฅผ ํตํด ์ฌ์ฉ์์ ํ์ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ์ ํตํฉํ์์ต๋๋ค. API ์์ฒญ์ ํตํด ์ฌ์ฉ์์ ์ฌํ ์ํ๋ฅผ ๊ฒ์ฆํ๊ณ , ์ธ์ฆ๊ธฐ๊ด ์๋ฒ๋ ์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ ๋ณด์ ์ง์๋ฅผ ํ์ธํฉ๋๋ค. ์ฑ๊ณต์ ์ธ ์ฌํ ์ธ์ฆ ์์ฒญ์ ๋ํด, ์์คํ ์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ ๋ณด์ ์ธ๋ถ API์ ์๋ต์ด ์ผ์นํ๋์ง๋ฅผ ํ์ธํ๊ณ , ์ฌํ ์ํ๊ฐ ๊ฒ์ฆ๋ ์ฌ์ฉ์๋ก ํ์ํฉ๋๋ค.
- API ์ ๊ณต์ฒ: UnivCert https://univcert.com/
- ์์ฒญ ํค๋:
Content-Type
:application/json
- ํ์ ๋ฐ์ดํฐ: APIํค, ์ฌ์ฉ์ ์ด๋ฆ, ๋ํ๊ต ์ด๋ฉ์ผ, ๋ํ๊ต๋ช , ์ธ์ฆ๋ฒํธ
- ์ด์ฉ์ ๋ฉ์ผ ์ธ์ฆ ์์ (์ธ์ฆ์ฝ๋ ๋ฐ์ก)
- ์์ฒญ URL: https://univcert.com/api/v1/certify
{
โkeyโ : โ{๋ถ์ฌ๋ฐ์ API KEY}โ,
"emailโ : โ{๋ํ๊ต ์ด๋ฉ์ผ}โ,
โunivNameโ : โ{๋ํ๊ต๋ช
}โ,
โuniv_checkโ : true
}
("univ_check"๊ฐ true๋ผ๋ฉด ํด๋น ๋ํ ์ฌํ ์ฌ๋ถ, false๋ผ๋ฉด ๋ฉ์ผ ์์ ์ ์ฌ๋ถ๋ฅผ ํ๋จํด ์ค๋๋ค.)
//๋ฉ์ผ๋ก ์ธ์ฆ๋ฒํธ ์ ์ก์ด ์ฑ๊ณตํ ๊ฒฝ์ฐ
{
โsuccessโ : true
}
//์คํจํ ๊ฒฝ์ฐ
{
"status" : 400,
"success" : false,
"message" : "{์๋ฌ ๋ฉ์์ง}"
}
- ์ด์ฉ์ ๋ฉ์ผ์ ๋ฐ์ก๋ ์ธ์ฆ์ฝ๋๋ฅผ ์ ๋ฌ๋ฐ์ ์์ฒญํ๊ธฐ
- ์์ฒญ URL: https://univcert.com/api/v1/certifycode
{
โkeyโ : โ{๋ถ์ฌ๋ฐ์ API KEY}โ
โunivNameโ : โ{๋ํ๊ต๋ช
}โ,
โemailโ : "{๋ํ๊ต ์ด๋ฉ์ผ}โ,
โcodeโ : {๋ํ ์ด๋ฉ์ผ๋ก ๋ฐ์ ์ธ์ฆ์ฝ๋}
}
//์ ํํ ์ธ์ฆ๋ฒํธ๋ฅผ ์
๋ ฅํ์ ๋
{
โโโsuccessโ : true
โโโunivNameโ : โOO๋ํ๊ตโ,
โโโcertified_emailโ : โ[email protected]โ,
โโโcertified_dateโ : โ2023-01-03T09:30:22โ
}
//์คํจํ ๊ฒฝ์ฐ
{
โโโstatusโ : 400,
โโ"success" : false,
โโ"message" : "{์๋ฌ ๋ฉ์์ง}"
}
- ์ธ์ฆ๋ ์ด๋ฉ์ผ์ธ์ง ํ์ธ
- ์์ฒญ URL: https://univcert.com/api/v1/status
{
โkeyโ : โ{๋ถ์ฌ๋ฐ์ API KEY}โ,
"emailโ : โ{์ธ์ฆํ๊ณ ์ ํ๋ ์ด๋ฉ์ผ}โ
}
//์ฑ๊ณตํ ๊ฒฝ์ฐ
{
โsuccessโ : true,
โcertified_dateโ : โ2023-01-03T09:30:22(์ธ์ฆ๋ฐ์ ์๊ฐ)โ
}
//์คํจํ ๊ฒฝ์ฐ
{
โsuccessโ : false,
โmessageโ : "{์๋ฌ ๋ฉ์์ง}"
}
Codef API๋ฅผ ํตํด ์๊ฒฉ์ฆ ํ์ธ์๋ฅผ ๊ฒ์ฆํ๋ ์ ์ฐจ๋ฅผ ํ ์คํธํ์์ต๋๋ค.
- API ์ ๊ณต์ฒ: Codef
- API Endpoint: https://development.codef.io/v1/kr/etc/hr/qnet-certificate/status
- ์ธ์ฆ ๋ฐฉ์: OAuth 2.0 (ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ๋ฐฉ์)
- ์์ฒญ ๋ฐ์ดํฐ: ์ฌ์ฉ์ ์ ๋ณด์ ์๊ฒฉ์ฆ ํ์ธ์ ๋ฐ์ดํฐ
API ์์ฒญ์ ํตํด ์ฌ์ฉ์๊ฐ ์์งํ ์๊ฒฉ์ฆ ํ์ธ์์ ์ ํจ์ฑ์ ํ์ธํ๊ณ , Qnet์์ ๋ฐํํ ์๋ต ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ฃผ์ฅํ๋ ์๊ฒฉ์ฆ ์์ง๊ฐ ์ฌ๋ฐ๋ฅธ์ง๋ฅผ ๊ฒ์ฆํ์์ต๋๋ค.
API ์๋ต์ ๊ฒ์ฆ์ ํตํด ์ ํจํ ์๊ฒฉ์ฆ์ ๊ฐ์ง ์ฌ์ฉ์๋ก ์ธ์ฆ๋์์ ๊ฒฝ์ฐ, ์ธ์ฆ๊ธฐ๊ด ์๋ฒ๋ ํด๋น ์ฌ์ฉ์๋ฅผ ์ ๋ขฐํ ์ ์๋ ์๊ฒฉ์ฆ ์์ง์๋ก ์๋ณํฉ๋๋ค.
- ์ก์ธ์ค ํ ํฐ ์์ฒญ: Codef API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ก์ธ์ค ํ ํฐ์ ์์ฒญํฉ๋๋ค.
- ์์ฒญ URL: https://oauth.codef.io/oauth/token
- ์์ฒญ ํค๋: Basic ์ธ์ฆ ๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ์ ํฌํจํฉ๋๋ค.
- ์์ฒญ ๋ณธ๋ฌธ:
grant_type=client_credentials&scope=read
- ํ์ธ์ ์ ๋ณด ์์ฒญ: ํ๋ํ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ์ฌ ํ์ธ์์ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
- ์์ฒญ URL: https://development.codef.io/v1/kr/etc/hr/qnet-certificate/status
- ์์ฒญ ํค๋:
Authorization
:Bearer {access_token}
Content-Type
:application/json
- ์์ฒญ ๋ณธ๋ฌธ: ์ฌ์ฉ์์ ์ ๋ณด ๋ฐ ์๊ฒฉ์ฆ ๋ฌธ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
{
"organization": "0001",
"userName": "{์ฑ๋ช
}",
"docNo": "{๋ฌธ์ํ์ธ๋ฒํธ}"
}
{
"resIssueYN": "{๋ฐํ์ฌ๋ถ}", (0์ด๋ฉด ์คํจ, 1์ด๋ฉด ์ฑ๊ณต)
"resResultDesc": "{๊ฒฐ๊ณผ๋ฉ์์ง}",
"resDocNo": "{๋ฌธ์ํ์ธ๋ฒํธ}",
"resPublishNo": "{๋ฐํ๋ฒํธ}",
"resDocType": "{ํ์ธ์์ข
๋ฅ}",
"resType": "{์ํ๊ตฌ๋ถ}",
"resUserNm": "{์ฑ๋ช
}",
"commBirthDate": "{์๋
์์ผ}",
"resItemName": "{์ข
๋ชฉ}",
"resExaminationNo": "{์ํ๋ฒํธ}",
"resAcquisitionDate": "{์ํ์ผ}",
"resInquiryDate": "{์กฐํ์ผ์}"
}
์ฃผ๋ฏผ๋ฑ๋ก ์ง์ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด ์ธ๋ถ API๋ฅผ ์ฐ๋ํ์ฌ ์ฌ์ฉ์์ ์ฃผ๋ฏผ๋ฑ๋ก ์ง์๋ฅผ ๊ฒ์ฆํ๋ ์์ ์ ์ํํ์์ต๋๋ค.
- API ์ ๊ณต์ฒ: Codef
- API Endpoint: https://development.codef.io/v1/kr/public/mw/identity-card/check-status
- ์ธ์ฆ ๋ฐฉ์: OAuth 2.0 (ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ๋ฐฉ์)
- ์์ฒญ ๋ฐ์ดํฐ: ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ๊ณต๋์ธ์ฆ์
์ด API๋ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ๊ฐ ์ค์ ๋ก ์กด์ฌํ๋์ง ๊ฒํ ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ์ก์ธ์ค ํ ํฐ ์์ฒญ: Codef API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ก์ธ์ค ํ ํฐ์ ์์ฒญํฉ๋๋ค.
- ์์ฒญ URL: https://oauth.codef.io/oauth/token
- ์์ฒญ ํค๋: Basic ์ธ์ฆ ๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ์ ํฌํจํฉ๋๋ค.
- ์์ฒญ ๋ณธ๋ฌธ:
grant_type=client_credentials&scope=read
- ์ฃผ๋ฏผ๋ฑ๋ก ์ ๋ณด ์์ฒญ: ํ๋ํ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ์ฌ์ฉ์ ์ ๋ณด์ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
- ์์ฒญ URL: https://development.codef.io/v1/kr/public/mw/identity-card/check-status
- ์์ฒญ ํค๋:
Authorization
:Bearer {access_token}
Content-Type
:application/json
- ์์ฒญ ๋ณธ๋ฌธ: ์ฌ์ฉ์์ ์ ๋ณด ๋ฐ ๊ณต๋ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
{
"organization": "0002",
"loginType": "0",
"certType": "1",
"certFile": "{BASE64๋ก Encoding๋ ์ธ์ฆ์ derํ์ผ ๋ฌธ์์ด}",
"keyFile": "{BASE64๋ก Encoding๋ ์ธ์ฆ์ keyํ์ผ ๋ฌธ์์ด}",
"certPassword": "{RSA์ํธํ๋ ์ธ์ฆ์ ๋น๋ฐ๋ฒํธ}",
"birthDate": "{์๋
์์ผ}",
"identity": "{์ฌ์ฉ์ ์ฃผ๋ฏผ๋ฒํธ}",
"userName": "{์ฌ์ฉ์ ์ด๋ฆ}",
"issueDate": "{๋ฐ๊ธ์ผ์}", (YYYYMMDD ํ์)
}
{
"resUserNm": "{์ฑ๋ช
}",
"resUserIdentiyNo": "{์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ}", (๋ค 7์๋ฆฌ๋ * ๋ก ํ์๋จ)
"resAuthenticity": "{์ง์ํ์ธ}", ("0": false, "1": true)
"resAuthenticityDesc": "{์ง์ํ์ธ ๋ด์ฉ}"
}
์ฌ๊ถ ์ ํจ์ฑ ๋ฐ ์ธ์ฆ ํ ์คํธ๋ ์ฌ์ฉ์์ ์ฌ๊ถ ์ ๋ณด๊ฐ ์ ํจํ์ง๋ฅผ ํ์ธํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ณผ์ ์ ์ธ๋ถ API๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ฉฐ, ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ฌ๊ถ ์ ๋ณด๊ฐ ์ค์ ๋ก ์ ํจํ์ง ๊ฒ์ฆํฉ๋๋ค.
- API ์ ๊ณต์ฒ: Codef
- API Endpoint: https://development.codef.io/v1/kr/public/mw/passport-data/status
- ์ธ์ฆ ๋ฐฉ์: OAuth 2.0 (ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ๋ฐฉ์)
- ์์ฒญ ๋ฐ์ดํฐ: ์ฌ๊ถ ์ ๋ณด์ ์ธ์ฆ์ ๋ฐ์ดํฐ
-
์ก์ธ์ค ํ ํฐ ์์ฒญ: Codef API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ก์ธ์ค ํ ํฐ์ ์์ฒญํฉ๋๋ค.
- ์์ฒญ URL: https://oauth.codef.io/oauth/token
- ์์ฒญ ํค๋: Basic ์ธ์ฆ ๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ์ ํฌํจํฉ๋๋ค.
- ์์ฒญ ๋ณธ๋ฌธ:
grant_type=client_credentials&scope=read
-
์ฌ๊ถ ์ ๋ณด ์์ฒญ: ํ๋ํ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ฌ๊ถ์ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
- ์์ฒญ URL: https://development.codef.io/v1/kr/public/mw/passport-data/status
- ์์ฒญ ํค๋:
Authorization
:Bearer {access_token}
Content-Type
:application/json
- ์์ฒญ ๋ณธ๋ฌธ: ์ฌ์ฉ์์ ์ฌ๊ถ ์ ๋ณด ๋ฐ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
{
"organization": "0002",
"loginType": "2",
"certType": "1",
"certFile": "{cert_file_encoded}",
"keyFile": "{key_file_encoded}",
"certPassword": "{encrypted_cert_password}",
"userName": "{user_name}",
"identity": "{identity_number}",
"passportNo": "{passport_number}",
"issueDate": "{issue_date}",
"expirationDate": "{expiration_date}",
"birthDate": "{birth_date}"
}
"certFile": "{cert_file_encoded}", "keyFile": "{key_file_encoded}" ์ค์ ๊ณต๋์ธ์ฆ์๋ฅผ ์ฌ์ฉ
์๋ฒ์์ ์ธ์ฝ๋ฉ ๋ฐ ๋์ฝ๋ฉ์ ์ํํ์ฌ ํด๋น ๊ฐ์ ์ถ์ถํ์ฌ Codef์๊ฒ ์ ๋ฌ
{
"result": {
"code": "CF-00000", // ํด๋น ์ฝ๋์ ์ฑ๊ณต ์ ๋ฌด ๊ฐ์ด๋ https://developer.codef.io/common-guide/error-code
"extraMessage": "",
"message": "์ฑ๊ณต",
"transactionId": "6715130b28e65e51c0d13262"
},
"data": {
"resAuthenticity": 1,
"resAuthenticityDesc": ""
}
}
์ธ๋ถ API๋ฅผ ์ฐ๋ํ์ฌ ์ฌ์ฉ์์ ์ด์ ๋ฉดํ์ฆ ์ง์๋ฅผ ๊ฒ์ฆํ๋ ์์ ์ ์ํํ์์ต๋๋ค.
- API ์ ๊ณต์ฒ: Codef
- API Endpoint: https://development.codef.io/v1/kr/public/ef/driver-license/status
- ์ธ์ฆ ๋ฐฉ์: OAuth 2.0 (ํด๋ผ์ด์ธํธ ์๊ฒฉ ์ฆ๋ช ๋ฐฉ์)
- ์์ฒญ ๋ฐ์ดํฐ: ์ฌ์ฉ์, ์ด์ ๋ฉดํ์ฆ ์ ๋ณด์ ๊ณต๋ ์ธ์ฆ์ ๋ฐ์ดํฐ
- ์ก์ธ์ค ํ ํฐ ์์ฒญ: Codef API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ์ก์ธ์ค ํ ํฐ์ ์์ฒญํฉ๋๋ค.
- ์์ฒญ URL: https://oauth.codef.io/oauth/token
- ์์ฒญ ํค๋: Basic ์ธ์ฆ ๋ฐฉ์์ผ๋ก ํด๋ผ์ด์ธํธ ID์ ํด๋ผ์ด์ธํธ ์ํฌ๋ฆฟ์ ํฌํจํฉ๋๋ค.
- ์์ฒญ ๋ณธ๋ฌธ:
grant_type=client_credentials&scope=read
- ์ด์ ๋ฉดํ ์ ๋ณด ์์ฒญ: ํ๋ํ ์ก์ธ์ค ํ ํฐ์ ์ฌ์ฉํ์ฌ ์ด์ ๋ฉดํ์ฆ์ ์ ํจ์ฑ์ ํ์ธํฉ๋๋ค.
- ์์ฒญ URL: https://development.codef.io/v1/kr/public/ef/driver-license/status
- ์์ฒญ ํค๋:
Authorization
:Bearer {access_token}
Content-Type
:application/json
- ์์ฒญ ๋ณธ๋ฌธ: ์ฌ์ฉ์์ ์ด์ ๋ฉดํ์ฆ ์ ๋ณด ๋ฐ ์ธ์ฆ์ ์ ๋ณด๋ฅผ ํฌํจํฉ๋๋ค.
{
"organization": "0001",
"loginType": "2",
"certType": "1",
"certFile": "{BASE64๋ก Encoding๋ ์ธ์ฆ์ derํ์ผ ๋ฌธ์์ด}",
"keyFile": "{BASE64๋ก Encoding๋ ์ธ์ฆ์ keyํ์ผ ๋ฌธ์์ด}",
"certPassword": "{RSA์ํธํ๋ ๊ณต๋์ธ์ฆ์ ๋น๋ฐ๋ฒํธ}",
"loginUserName": "{์ฌ์ฉ์์ด๋ฆ}",
"identity": "{์ฌ์ฉ์ ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ}",
"birthDate": "{์๋
์์ผYYYYMMDD}",
"licenseNo01": "{์ด์ ๋ฉดํ๋ฒํธ01 (์ง์ญ)}",
"licenseNo02": "{์ด์ ๋ฉดํ๋ฒํธ02 (๋
๋)}",
"licenseNo03": "{์ด์ ๋ฉดํ๋ฒํธ03}",
"licenseNo04": "{์ด์ ๋ฉดํ๋ฒํธ04}",
"serialNo": "{์ํธ์ผ๋ จ๋ฒํธ}",
"userName": "{์ฌ์ฉ์์ด๋ฆ}",
}
{
"resUserNm": "{์ฑ๋ช
}",
"commBirthDate": "{์๋
์์ผ}",
"resAuthenticity": "{์ง์ํ์ธ}", ("0": false, "1": true, "2": ์ ์ฐ์ ๋ณด๋ง ์ผ์น)
"resLicenseNumber": "{์ด์ ๋ฉดํ ๋ฒํธ}",
"resAuthenticityDesc1": "{์ ์ฐ์๋ฃ์์ผ์นํฉ๋๋ค.}",
"resAuthenticityDesc2": "{์๋ณ๋ฒํธ๊ฐ์ผ์นํฉ๋๋ค.}"
}
์ด ํ๋ก์ ํธ๋ ๋ค์์ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ Apache License 2.0์ ๋ฐ๋ผ ๋ผ์ด์ผ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
-
Hyperledger Fabric
- ๋ผ์ด์ ์ค: Apache License 2.0
- ํ๋ก์ ํธ ๋งํฌ
-
Apache PDFBox
- ๋ผ์ด์ ์ค: Apache License 2.0
- ํ๋ก์ ํธ ๋งํฌ
-
UnivCert (ํ์ ์ธ์ฆ)
- ๋ผ์ด์ ์ค: Apache License 2.0
- ํ๋ก์ ํธ ๋งํฌ