Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: add API7 Authentication #24

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

doc: add API7 Authentication #24

wants to merge 4 commits into from

Conversation

Hazel6869
Copy link
Contributor

No description provided.

@vercel
Copy link

vercel bot commented Aug 22, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
docs-zh ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 28, 2023 2:43am


## 一、认证方案架构说明

API7 认证用于 API7 Portal 系统中,给 Developer 访问 Provider 提供的上游服务提供身份认证能力。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
API7 认证用于 API7 Portal 系统中,给 Developer 访问 Provider 提供的上游服务提供身份认证能力。
API7 认证用于 API7 Portal 系统中,给 Developer 访问 Provider 提供的上游服务提供身份认证能力。

这一句话我不是很理解,是给 Developer 访问我们数据面提供的身份认证能力吧。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

用户关心的是developer到provider。我们要在这篇文档说清楚我们是拆成两节了,中间做了一层中转

## 三、API Key 的安全性保障

### API7 Portal 提供 API Key 的发放和回收机制
1. Developer 可以自己创建 API key,并且自己命名,方便后续使用时分辨,不过 API key 是由 API7 Portal 的后端服务按照一定的规则主动生成的,Developer 不可编辑;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. Developer 可以自己创建 API key,并且自己命名,方便后续使用时分辨,不过 API key 是由 API7 Portal 的后端服务按照一定的规则主动生成的,Developer 不可编辑;
1. Developer 可以自己创建 API key,并且自己命名,方便后续使用时分辨,不过 API key 的内容是由 API7 Portal 的后端服务按照一定的规则主动生成的,Developer 不可编辑;

1. 密钥使用 HTTP Header 传递,不出现在 URL 中,从而增加了 API key 的安全性;
2. 提供了 API Key 的发放和回收机制,保障了密钥可以定期轮换,防止被盗用;
3. 提供了针对 API key 使用情况的运行分析能力,方便 Developer 追踪 API key 的使用情况;
4. 有多种 key 的认证机制可以选择,比如 key-auth、JWT 等,用户可以选择自己信任的机制进行认证;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

我们现在还不支持 key 的认证机制选择吧。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sijingzhangzsj0604 斯静确认一下。

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

将来要支持多种的,暂时只有key-auth

### 认证流程和原理

1. Provider 在 API7 Portal 创建 API Source 时,可以选择 API7 Portal 与 API Endpoints 之间的认证方式,包括:No Auth、API Key、Basic Auth、JWT;
2. API7 Portal 对这些认证机制的实现采用的是 Apache APISIX 的 [key-auth](https://apisix.apache.org/docs/apisix/plugins/key-auth/)、[basic-auth](https://apisix.apache.org/docs/apisix/plugins/basic-auth/)、[jwt-auth](https://apisix.apache.org/docs/apisix/plugins/jwt-auth/) 插件;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这些认证都是 client => APISIX 的,不是 APISIX -> Upstream 的。

### 优点

1. API7 与 API Endpoint 之间认证方式对 Developer 并没有暴露,因此大大降低攻击风险。
2. API7 Portal 与 API Endpoints 之间通过 API 密钥认证机制进行互信和访问控制,保证 API 调用的安全性,同时结合API Key 对安全性的保障,可以形成完善的安全体系。
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里说的是 API Portal => API Endpoints 的吧。


## 一、认证方案架构说明

API7 认证用于 API7 Portal 系统中,给 Developer 访问 Provider 提供的上游服务提供身份认证能力。
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

用户关心的是developer到provider。我们要在这篇文档说清楚我们是拆成两节了,中间做了一层中转

1. 密钥使用 HTTP Header 传递,不出现在 URL 中,从而增加了 API key 的安全性;
2. 提供了 API Key 的发放和回收机制,保障了密钥可以定期轮换,防止被盗用;
3. 提供了针对 API key 使用情况的运行分析能力,方便 Developer 追踪 API key 的使用情况;
4. 有多种 key 的认证机制可以选择,比如 key-auth、JWT 等,用户可以选择自己信任的机制进行认证;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

将来要支持多种的,暂时只有key-auth

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants