我们正在尝试将Keycloak评估为SSO解决方案,并且它在许多方面看起来都很好,但是文档在基础知识方面却很缺乏.
对于一个给定Keycloak安装http://localhost:8080/的境界test,有什么的OAuth2授权端点,OAuth2用户令牌端点和ID连接的UserInfo终点?
我们对使用Keycloak自己的客户端库不感兴趣,我们希望使用标准的OAuth2/OpenID Connect客户端库,因为使用keycloak服务器的客户端应用程序将使用多种语言编写(PHP,Ruby,Node,Java,C# ,Angular).因此,使用Keycloak客户端的示例对我们来说并不适用.
var loadData = function () {
var url = 'http://localhost:3000/users';
var req = new XMLHttpRequest();
req.open('GET', url, true);
req.setRequestHeader('Accept', 'application/json');
req.setRequestHeader('Authorization', 'Bearer ' + keycloak.token);
req.onreadystatechange = function () {
if (req.readyState == 4) {
if (req.status == 200) {
console.log('Success');
} else if (req.status == 403) {
console.log('Forbidden');
}
}
}
req.send();
};
Run Code Online (Sandbox Code Playgroud)
上面是我的前端代码,请求 REST API 并在授权标头中传递 keycloak 令牌,这是在 Node js 服务器端进行身份验证所需的。
现在我想知道如何使用 Keycloak 保护我的 Rest Api 并根据从前端收到的令牌对其进行身份验证,并判断真实用户是否正在请求 Rest api 资源。
我在node js中创建了一个rest api并使用了keycloak-connect npm packge。我已经将nodejs中间件与keycloak中间件进行了映射。
var express = …Run Code Online (Sandbox Code Playgroud) 我有一个 Keycloak 领域,其中一些用户作为 Nodejs + Typescript 项目的 IdP。
如果我按“全部注销”,它们就会从这里消失,但它们仍然有效。
例子:
1) I create a new session. I get its JWT token as a response
2) I do a GET req on one of the protected routes with the token attached. It works.
4) I logout all sessions by pressing the button in that photo
5) I do the same GET req on the same protected route. It still works.
I expect it NOT to work, because I previously logged …Run Code Online (Sandbox Code Playgroud)