Redian新闻
>
一个server如果想把一些api作为public,一些作为private,一般都有什么办法?
avatar
一个server如果想把一些api作为public,一些作为private,一般都有什么办法?# Java - 爪哇娇娃
p*2
1
如果两个server就比较容易了,一台放在内网就好了。
如果只是一台server,是不是只能是authenticate了?
一般主要采取什么办法呢?
1. username, password
2. token id
还有什么吗?
avatar
g*g
2
You can use basic access authentication on https for your secure API. Any
security framework provides that out of box. e.g. Spring security.
Another way is put the secure APIs inside the VPN. And front it with a
reserve proxy server to go to different hosts. It looks like one domain from
outside.

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
w*z
3
靠,一个server 多少钱,搞那么麻烦?

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
g*e
4
OAuth + permission control

办法?

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
s*r
5
tomcat 都在firewall里面,可以config apache acl
avatar
p*c
6
跑两个虚拟机嘛
或者不同的port,不就行了
avatar
e*t
7
private API可以直接设置access list。

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
c*e
8
一般公司都是把2个server,2个firewall的,这钱不能省。

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
p*2
9

我感觉也是,这样最省事,安全。不过如果HA的话就要4太机器了。

【在 c*********e 的大作中提到】
: 一般公司都是把2个server,2个firewall的,这钱不能省。
avatar
p*2
10

access list里边是什么东西呢?

【在 e*****t 的大作中提到】
: private API可以直接设置access list。
avatar
p*2
11

不同的port到可能是个好办法。外网firewall挡住, 内网的话不走firewall。理论上
来说就是一台机器跑两个server。感觉可行。

【在 p***c 的大作中提到】
: 跑两个虚拟机嘛
: 或者不同的port,不就行了

avatar
p*2
12

tomcat不懂呀。我用的node。

【在 s*****r 的大作中提到】
: tomcat 都在firewall里面,可以config apache acl
avatar
P*i
13
两个instance不就得了

【在 p*****2 的大作中提到】
:
: tomcat不懂呀。我用的node。

avatar
p*2
14

from
可以配置reverse proxy根据内网外网发送到不同的host吗?这个一般是根据IP来判断
吗?

【在 g*****g 的大作中提到】
: You can use basic access authentication on https for your secure API. Any
: security framework provides that out of box. e.g. Spring security.
: Another way is put the secure APIs inside the VPN. And front it with a
: reserve proxy server to go to different hosts. It looks like one domain from
: outside.

avatar
p*2
15

OAuth好搭建吗?我还要管理identity吧?

【在 g**e 的大作中提到】
: OAuth + permission control
:
: 办法?

avatar
p*2
16

对。这个是最好的办法了。还省了machine了。

【在 P****i 的大作中提到】
: 两个instance不就得了
avatar
g*e
17
我们另外一种用法是起一个routing service,外面来的请求从这进来,自动去掉一些
特殊的header。内部的API调用加上对应的header就行了。缺点不是没有
1. single point failure
2. 要求REST

Any

【在 p*****2 的大作中提到】
:
: 对。这个是最好的办法了。还省了machine了。

avatar
g*e
18
OAuth不难,主流的social network公司的API都是走OAuth认证。管理identity有很多
现成的东西吧,LDAP, Kerbros都行。要高并发估计得自己整,也可以用AWS的IAM。

【在 p*****2 的大作中提到】
:
: 对。这个是最好的办法了。还省了machine了。

avatar
p*2
19

这个办法也很有趣。学习了。多谢大牛。

【在 g**e 的大作中提到】
: 我们另外一种用法是起一个routing service,外面来的请求从这进来,自动去掉一些
: 特殊的header。内部的API调用加上对应的header就行了。缺点不是没有
: 1. single point failure
: 2. 要求REST
:
: Any

avatar
w*z
20
我们internal service 在firewall 里,不需要auth 的,具体网络怎么设,不了解。

【在 g**e 的大作中提到】
: 我们另外一种用法是起一个routing service,外面来的请求从这进来,自动去掉一些
: 特殊的header。内部的API调用加上对应的header就行了。缺点不是没有
: 1. single point failure
: 2. 要求REST
:
: Any

avatar
e*t
21
internal service既然在firewall里面,直接任何人都可以访问就可以了,关键是对外
的service。应该有另外一台放在DMZ的机器来relay,然后那台机器再访问内网的机器
就好了。
当然relay machine就只能relay public api calls。
不过这么搞,IT一定很紧张security。这个machine一旦compromise就麻烦,所以这台
机器只能通过tunnel访问内网那台机器的那个port和那个协议。
anyway,所有涉外的服务,security都是第一要注意的。

【在 w**z 的大作中提到】
: 我们internal service 在firewall 里,不需要auth 的,具体网络怎么设,不了解。
avatar
p*2
22

还是挺麻烦的。

【在 g**e 的大作中提到】
: OAuth不难,主流的social network公司的API都是走OAuth认证。管理identity有很多
: 现成的东西吧,LDAP, Kerbros都行。要高并发估计得自己整,也可以用AWS的IAM。

avatar
g*e
23
load balancer上可以设置iptable类似的东西,定义哪些domain不跟外部网络相连

【在 w**z 的大作中提到】
: 我们internal service 在firewall 里,不需要auth 的,具体网络怎么设,不了解。
avatar
e*t
24
要和人家发生关系,从来就没容易过嘛。LOL

【在 p*****2 的大作中提到】
:
: 还是挺麻烦的。

avatar
g*e
25
对,port, protocol, tps, bandwidth都有严格限制。citrix/cisco的LB都有设置,也
有metrics可以设置alarm

解。

【在 e*****t 的大作中提到】
: internal service既然在firewall里面,直接任何人都可以访问就可以了,关键是对外
: 的service。应该有另外一台放在DMZ的机器来relay,然后那台机器再访问内网的机器
: 就好了。
: 当然relay machine就只能relay public api calls。
: 不过这么搞,IT一定很紧张security。这个machine一旦compromise就麻烦,所以这台
: 机器只能通过tunnel访问内网那台机器的那个port和那个协议。
: anyway,所有涉外的服务,security都是第一要注意的。

avatar
p*2
26

这个说的很详细。赞一个。

【在 e*****t 的大作中提到】
: internal service既然在firewall里面,直接任何人都可以访问就可以了,关键是对外
: 的service。应该有另外一台放在DMZ的机器来relay,然后那台机器再访问内网的机器
: 就好了。
: 当然relay machine就只能relay public api calls。
: 不过这么搞,IT一定很紧张security。这个machine一旦compromise就麻烦,所以这台
: 机器只能通过tunnel访问内网那台机器的那个port和那个协议。
: anyway,所有涉外的服务,security都是第一要注意的。

avatar
w*z
27
internal service 好像是这么弄, different subnet , controlled by LB . 至于怎
么很外面连,有techop handle, 俺不知道, 好像用apache redirect .

【在 g**e 的大作中提到】
: load balancer上可以设置iptable类似的东西,定义哪些domain不跟外部网络相连
avatar
t*e
28
一般都是这么搞,public api最好wrap成http web services, tunnel很少在EAI里面运
用,DMZ里面的就是个reverse proxy server, 比如apache。

【在 e*****t 的大作中提到】
: internal service既然在firewall里面,直接任何人都可以访问就可以了,关键是对外
: 的service。应该有另外一台放在DMZ的机器来relay,然后那台机器再访问内网的机器
: 就好了。
: 当然relay machine就只能relay public api calls。
: 不过这么搞,IT一定很紧张security。这个machine一旦compromise就麻烦,所以这台
: 机器只能通过tunnel访问内网那台机器的那个port和那个协议。
: anyway,所有涉外的服务,security都是第一要注意的。

avatar
c*e
29
可以用role.比如有些method只允许有vip role的user使用。

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
d*d
30
who consumes the internal api? application running on the same box or other
boxes?
if only needs to be accessed locally, bind service port on localhost only.
also you can run things over ssl/tls with client certicate validation
enabled. only consumers with properly signed certificate will be allowed.....
....
avatar
c*e
31
想了一下,其实还是可能的。
比如如果你是用rest web services,在controller里的每个method的参数里,如果你要
這個method是private的,就加2个参数:username, password.用戶提供的这2个参数如
果是错的,返回一個error或者null.

【在 p*****2 的大作中提到】
: 如果两个server就比较容易了,一台放在内网就好了。
: 如果只是一台server,是不是只能是authenticate了?
: 一般主要采取什么办法呢?
: 1. username, password
: 2. token id
: 还有什么吗?

avatar
w*z
32
you need ssl/tls for external service.

【在 c*********e 的大作中提到】
: 想了一下,其实还是可能的。
: 比如如果你是用rest web services,在controller里的每个method的参数里,如果你要
: 這個method是private的,就加2个参数:username, password.用戶提供的这2个参数如
: 果是错的,返回一個error或者null.

avatar
c*e
33
为啥,如果是external service,一样让external用戶输入username,password.
比如api uri变成http://mysite.com/api/users/5?username=abc&password=zzz
忘了说了,我的web services是用c# REST做的。

【在 w**z 的大作中提到】
: you need ssl/tls for external service.
avatar
c*e
34
试了下,非常不错,能把一些api作为public,一些作为private。
如果要ssl的话,就用https好了。不過这个在aws要加钱。

为啥,如果是external service,一样让external用戶输入username,password.
比如api uri变成http://mysite.com/api/users/5?username=abc&password=zzz
忘了说了,我的web services是用c# REST做的。

【在 c*********e 的大作中提到】
: 为啥,如果是external service,一样让external用戶输入username,password.
: 比如api uri变成http://mysite.com/api/users/5?username=abc&password=zzz
: 忘了说了,我的web services是用c# REST做的。

avatar
g*g
35
You should never use get for authentication, even for ssl.
Your firewall/proxy may log url, and your password is exposed.
As I said, simple https authentication is the way to go for rest api, which
uses post.

【在 c*********e 的大作中提到】
: 试了下,非常不错,能把一些api作为public,一些作为private。
: 如果要ssl的话,就用https好了。不過这个在aws要加钱。
:
: 为啥,如果是external service,一样让external用戶输入username,password.
: 比如api uri变成http://mysite.com/api/users/5?username=abc&password=zzz
: 忘了说了,我的web services是用c# REST做的。

avatar
c*e
36
ok.用https来试试。aws免费account里,用https要加钱吗?

which

【在 g*****g 的大作中提到】
: You should never use get for authentication, even for ssl.
: Your firewall/proxy may log url, and your password is exposed.
: As I said, simple https authentication is the way to go for rest api, which
: uses post.

avatar
m*r
37
you meant to say "basic authentication", right?

which

【在 g*****g 的大作中提到】
: You should never use get for authentication, even for ssl.
: Your firewall/proxy may log url, and your password is exposed.
: As I said, simple https authentication is the way to go for rest api, which
: uses post.

avatar
g*g
38
right, basic access authentication. All web service frameworks have it built
-in.

【在 m****r 的大作中提到】
: you meant to say "basic authentication", right?
:
: which

avatar
c*e
39
你是说在application header里加上basic xxxxx:xxxx, username和password都是
base64 encoded? 那这个不用https,username,password会被hacker截获吗?

built

【在 g*****g 的大作中提到】
: right, basic access authentication. All web service frameworks have it built
: -in.

avatar
g*e
40
why not oauth for external auth, kerberos + LDAP for internal use?

【在 c*********e 的大作中提到】
: 你是说在application header里加上basic xxxxx:xxxx, username和password都是
: base64 encoded? 那这个不用https,username,password会被hacker截获吗?
:
: built

avatar
g*g
41
There's no security whenever you use http to send something sensitive.
It doesn't matter which mechanism you are using.

【在 c*********e 的大作中提到】
: 你是说在application header里加上basic xxxxx:xxxx, username和password都是
: base64 encoded? 那这个不用https,username,password会被hacker截获吗?
:
: built

avatar
c*e
42
用https for both external and internal use,安全吗?

【在 g**e 的大作中提到】
: why not oauth for external auth, kerberos + LDAP for internal use?
avatar
c*e
43
https已经实现了,basic authentication也在header里加了,差一点点就可以在
google app store上发布了。同类产品,无cloud存储,无log in,register服务的,卖
到2块钱了。我这个卖1块钱,应该有人用吧?full-time工作之余,卖这个被老板发现
了怎么办?

【在 g*****g 的大作中提到】
: There's no security whenever you use http to send something sensitive.
: It doesn't matter which mechanism you are using.

avatar
g*g
44
他会要求给你做手下?

【在 c*********e 的大作中提到】
: https已经实现了,basic authentication也在header里加了,差一点点就可以在
: google app store上发布了。同类产品,无cloud存储,无log in,register服务的,卖
: 到2块钱了。我这个卖1块钱,应该有人用吧?full-time工作之余,卖这个被老板发现
: 了怎么办?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。