大家好,欢迎来到IT知识分享网。
目录
欢迎关注微信公众号:数据科学与艺术 作者WX:superhe199
Keycloak概述
Keycloak是一个开源的身份和访问管理解决方案,它提供了OIDC(OpenID Connect)、OAuth 2.0和SAML 2.0等通用认证和授权协议的支持。下面将解释这些概念和相关知识。
OIDC(OpenID Connect)是一个构建在OAuth 2.0之上的认证协议,它允许用户使用一个统一的身份标识(OpenID)进行身份验证和授权。OIDC在OAuth 2.0的基础上添加了身份验证的能力,使得应用程序可以获得用户信息,并且可以验证这些信息的真实性。Keycloak使用OIDC作为默认的认证协议。
OAuth 2.0是一个用于授权的开放标准协议,它允许应用程序通过授权服务器获取访问权限。在OAuth 2.0中,用户可以授权第三方应用程序代表自己访问受保护的资源,而无需将其密码分享给第三方应用程序。Keycloak支持OAuth 2.0协议,允许应用程序通过Keycloak获取访问令牌(access token)来访问受保护的资源。
SSO(Single Sign-On)是一种身份认证机制,允许用户使用一组凭据(例如用户名和密码)登录到一个系统,并且可以在同一个会话中无需重新认证访问其他系统。Keycloak提供了SSO的能力,使得用户只需要登录一次就可以访问多个应用程序。
Keycloak是由Jboss开发的,它使用Java编写,并提供了基于Web界面的管理和配置工具。Keycloak的源代码可以在GitHub上找到,你可以在这里查看和修改源代码以满足自己的需求。
启动
Calling “C:\keycloak-15.0.2\bin\standalone.conf.bat”
Setting JAVA property to “C:\Program Files\Java\jdk-21\bin\java”
JBoss Bootstrap Environment
JBOSS_HOME: “C:\keycloak-15.0.2”
JAVA: “C:\Program Files\Java\jdk-21\bin\java”
JAVA_OPTS: “-Dprogram.name=standalone.bat -Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true –add-exports=java.base/sun.nio.ch=ALL-UNNAMED –add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED –add-exports=jdk.unsupported/sun.reflect=ALL-UNNAMED”
===============================================================================
新建realm
- 登录到 Keycloak 管理控制台。通常,默认的 URL 是
http://localhost:8080/auth/admin
,但可能在您的配置中有所不同。 - 在左侧导航栏中,选择 “Clients”(客户端)。
- 点击右上角的 “Create”(创建)按钮。
- 在 “Client ID”(客户端标识符)字段中,输入一个唯一的标识符,用于标识您的客户端。
- 在 “Client Protocol”(客户端协议)字段中,选择要使用的协议,如 “openid-connect” 或 “saml”。
- 单击 “Save”(保存)按钮来保存客户端。
- 在左侧导航栏中,选择 “Clients”(客户端)。
- 在客户端列表中找到您刚刚创建的客户端,并单击它。
- 在客户端配置页面中,配置您的客户端的其他属性,包括重定向 URL、访问令牌的有效期等。
- 确保保存您的更改。
新建用户
设置客户端
访问
http://localhost:8080/auth/realms/devrealm/.well-known/uma2-configuration
返回{"issuer":"http://127.0.0.1:8080/realms/devrealm","authorization_endpoint":"http://127.0.0.1:8080/realms/devrealm/protocol/openid-connect/auth","token_endpoint":"http://localhost:8080/auth/realms/devrealm/protocol/openid-connect/token","introspection_endpoint":"http://localhost:8080/auth/realms/devrealm/protocol/openid-connect/token/introspect","end_session_endpoint":"http://127.0.0.1:8080/realms/devrealm/protocol/openid-connect/logout","jwks_uri":"http://localhost:8080/auth/realms/devrealm/protocol/openid-connect/certs","grant_types_supported":["authorization_code","implicit","refresh_token","password","client_credentials","urn:ietf:params:oauth:grant-type:device_code","urn:openid:params:grant-type:ciba"],"response_types_supported":["code","none","id_token","token","id_token token","code id_token","code token","code id_token token"],"response_modes_supported":["query","fragment","form_post","query.jwt","fragment.jwt","form_post.jwt","jwt"],"registration_endpoint":"http://localhost:8080/auth/realms/devrealm/clients-registrations/openid-connect","token_endpoint_auth_methods_supported":["private_key_jwt","client_secret_basic","client_secret_post","tls_client_auth","client_secret_jwt"],"token_endpoint_auth_signing_alg_values_supported":["PS384","ES384","RS384","HS256","HS512","ES256","RS256","HS384","ES512","PS256","PS512","RS512"],"scopes_supported":["openid","address","email","phone","profile","roles","microprofile-jwt","offline_access","web-origins"],"resource_registration_endpoint":"http://127.0.0.1:8080/realms/devrealm/authz/protection/resource_set","permission_endpoint":"http://127.0.0.1:8080/realms/devrealm/authz/protection/permission","policy_endpoint":"http://127.0.0.1:8080/realms/devrealm/authz/protection/uma-policy"}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/123081.html