【发布时间】:2018-04-21 00:49:24
【问题描述】:
规格:
- .net core 2
- 身份服务器 4
当我通过 Postman http://127.0.0.1:5000/.well-known/openid-configuration 访问本地开发机器时,我可以找到例如 "jwks_uri",地址为 http://127.0.0.1:5000/.well-known/openid-configuration /jwks
我可以访问 http://127.0.0.1:5000/.well-known/openid-configuration/jwks 并查看如下结果:
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "6ca39c3dd4ffda97d502243e25fa4e54",
"e": "AQAB",
"n": "sZthlS0HE1pkbSnMlPyKNDkAqkQryeKG7YSRMeUbrDQARu-9f11iUFUblAdXUhuFRu0R77AQ-mhjy7kfjQMOT58gp3aMa17HTKcMxZRZEi-zcXZuxVA7Q0nuWrWp4_-0VAMV4OhGromZCFtUb26kRJXyKMNlHSM2irSJ9LWnx6NtSkHMrC_kv3kpciZWLx__9DkVM7wmYuGz9DMezoz7-FuwcJcGJHmVz7RNRwGNhdcvEG8nJE3fl8QQ16CjOim2X845gaIc9dWKi1MAA_LS1M2EK4aU8FZjVqgQgY472zrwGtUtwz25aUEZu130fthZabvOiWTDbztuYtOmrxP7BQ",
"alg": "RS256"
}
]
}
端口5000是最重要的
当我通过 Postman http://192.168.168.13:81/.well-known/openid-configuration 访问本地开发机器时,我可以找到例如 "jwks_uri",地址为 http://192.168.168.13/.well-known/openid-configuration/jwks
我无法访问http://192.168.168.13/.well-known/openid-configuration/jwks,因为我收到错误 404:
nginx error!
The page you are looking for is not found.
没有端口81
我可以访问 http://192.168.168.13:81/.well-known/openid-configuration/jwks 并查看如下结果:
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "6ca39c3dd4ffda97d502243e25fa4e54",
"e": "AQAB",
"n": "sZthlS0HE1pkbSnMlPyKNDkAqkQryeKG7YSRMeUbrDQARu-9f11iUFUblAdXUhuFRu0R77AQ-mhjy7kfjQMOT58gp3aMa17HTKcMxZRZEi-zcXZuxVA7Q0nuWrWp4_-0VAMV4OhGromZCFtUb26kRJXyKMNlHSM2irSJ9LWnx6NtSkHMrC_kv3kpciZWLx__9DkVM7wmYuGz9DMezoz7-FuwcJcGJHmVz7RNRwGNhdcvEG8nJE3fl8QQ16CjOim2X845gaIc9dWKi1MAA_LS1M2EK4aU8FZjVqgQgY472zrwGtUtwz25aUEZu130fthZabvOiWTDbztuYtOmrxP7BQ",
"alg": "RS256"
}
]
}
这是我的 Centos 防火墙设置:
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: ssh dhcpv6-client
ports: 80/tcp 443/tcp 81/tcp 82/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
这是我的反向代理的 nginx 配置:
server {
listen 81;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
据我调查,问题是在 .well-known/openid-configuration 中服务器机器上没有合适的端口(在这种情况下为 81)。
端点存在,因为当我手动将端口 81 添加到端点时,端点可用。
因为我的应用程序依赖 .well-known/openid-configuration 来自动发现端点,所以我的身份验证不起作用。我不知道问题是在 IdentityServer 4 配置上还是在 Centos 配置上。
【问题讨论】:
标签: nginx centos identityserver4 asp.net-core-2.0