Day31 - 【概念篇】Open-ID Connect & Social Login(2)

本系列文之後也会置於个人网站


Keycloak Open-Id Connect

其实除了使用GitHub等社群帐号登入外,Keycloak也可以作爲Open-Id登入的提供者(Provider)。接着需要使用Keycloak本身来实现社群帐号登入,因爲这样子可以看到更多细节。

建立新的Realm

现在,需要一个新的帐号系统。你可以在建立一个Keycloak服务器,或是建立一个新的Realm。不同Realm的帐号系统是独立不相干扰的,所以这里就先建议一个新的Realm -- G00gle

像似处理以GitHub帐号登入时,需要在新的Realm下,建立一个新的Client:

  • Open Id: oauth-quick-start
  • Root URL: http://localhost:8080/auth/realms/quick-start/

留意URL里的realm是quick-start

将Access Type改成confidential

储存後,到Credentials页签,记住Client Secret

建立新的帐号

这里,故意同样建立帐号--bob,这次要将不同帐号系统的帐号,连接到已经存在的帐号下。然後同样在 「Credentials」页签下建立登入密码。此外,你还可以先设定好email、First Name、Last Name等讯息。

绑定登入方式

接着回到「quick-start」的realm。同样到「Identity Providers」设定页面,添加「Keycloak OpenId Connect」的Provider。

然後拉到下面与OpenID Connect相关的设定

  • Authorization URL: http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/auth
  • Token URL: http://localhost:8080/auth/realms/G00gle/protocol/openid-connect/token
  • Client Authentication: Client secret sent as post
  • Client ID: oauth-quick-start
  • Client Secret: <方才记录下来到Client Secret>

留意URL里的realm是G00gle

登入「快速开始」

到「快速开始」应用登入。这次可以再发现多一个「keycloak-oidc」的选项。

接着可以用刚刚建立的帐号登入到「G00gle」。

然後会要求填入一些基本讯息:

不同的是,犹豫帐号相同,所以有所冲突。点选「Add to existing account」将新建立的帐号连接到已存在的帐号。

然後会要求验证拥有已存在的帐号的权限。

留意这次登入的是「quick-start」

Keycloak的相关改变

同样在「Identity Providers」的设定页面多了keycloak-oidc

而已存在的帐号--bob,同样在帐号设定下的「Identity Provider Links」页签也多了一些与keycloak-oidc有关的讯息。

虽然还有一些细节没有探讨,但是已铁人赛来说,Open-Id Connect也就到这边爲止了。
对技术相关内容有兴趣的话,欢迎关注我的网站


<<:  课堂笔记 - 深度学习 Deep Learning (1)

>>:  Extra02 - Ignore - 配置忽略的档案与目录

firefox ftp enable 功能开启

FireFox 网址列输入 about:config 搜寻 ftp network.ftp.enab...

Day 21. Unity 介面与Unreal Engine介面比较

我Day 2有关於Unity介面的介绍,一般来说,学习顺序是Unity -> Unreal,因...

JS 30 - 将 JSON 资料应用到统计学!

大家好! 今天我们要实作解析 JSON 资料,并计算资料的变异数。 我们进入今天的主题吧! 公式 母...

Day 17 Swap

在Java中传递参数的方法只有一种那就是传值,所以在交换数值A B时假如直接用 A = B 的话,会...

完赛日,心得与阶段学习验收

今年度的铁人赛於今天即将完赛,终於要告一段落啦!!! 回顾这三十天的的学习,给自己打了个差强人意的分...